PostGIS  2.2.7dev-r@@SVN_REVISION@@
static LWCOLLECTION* lwmultipoly_from_twkb_state ( twkb_parse_state s)
static

MULTIPOLYGON.

Definition at line 399 of file lwin_twkb.c.

References twkb_parse_state::has_idlist, twkb_parse_state::has_m, twkb_parse_state::has_z, twkb_parse_state::is_empty, lwcollection_add_lwgeom(), lwcollection_construct_empty(), LWDEBUG, LWDEBUGF, lwerror(), lwpoly_as_lwgeom(), lwpoly_from_twkb_state(), twkb_parse_state::lwtype, SRID_UNKNOWN, twkb_parse_state_uvarint(), and twkb_parse_state_varint_skip().

Referenced by lwgeom_from_twkb_state().

400 {
401  int ngeoms, i;
402  LWGEOM *geom = NULL;
404 
405  LWDEBUG(2,"Entering lwmultipolygon_from_twkb_state");
406 
407  if ( s->is_empty )
408  return col;
409 
410  /* Read number of geometries */
411  ngeoms = twkb_parse_state_uvarint(s);
412  LWDEBUGF(4,"Number of geometries %d",ngeoms);
413 
414  /* It has an idlist, we need to skip that */
415  if ( s->has_idlist )
416  {
417  for ( i = 0; i < ngeoms; i++ )
419  }
420 
421  for ( i = 0; i < ngeoms; i++ )
422  {
424  if ( lwcollection_add_lwgeom(col, geom) == NULL )
425  {
426  lwerror("Unable to add geometry (%p) to collection (%p)", geom, col);
427  return NULL;
428  }
429  }
430 
431  return col;
432 }
uint8_t has_z
Definition: lwin_twkb.c:35
uint8_t is_empty
Definition: lwin_twkb.c:37
uint8_t has_m
Definition: lwin_twkb.c:36
static LWPOLY * lwpoly_from_twkb_state(twkb_parse_state *s)
POLYGON.
Definition: lwin_twkb.c:258
#define LWDEBUG(level, msg)
Definition: lwgeom_log.h:50
uint8_t has_idlist
Definition: lwin_twkb.c:34
LWGEOM * lwpoly_as_lwgeom(const LWPOLY *obj)
Definition: lwgeom.c:239
uint32_t lwtype
Definition: lwin_twkb.c:30
#define SRID_UNKNOWN
Unknown SRID value.
Definition: liblwgeom.h:172
static uint64_t twkb_parse_state_uvarint(twkb_parse_state *s)
Definition: lwin_twkb.c:87
LWCOLLECTION * lwcollection_construct_empty(uint8_t type, int srid, char hasz, char hasm)
Definition: lwcollection.c:81
#define LWDEBUGF(level, msg,...)
Definition: lwgeom_log.h:55
LWCOLLECTION * lwcollection_add_lwgeom(LWCOLLECTION *col, const LWGEOM *geom)
Appends geom to the collection managed by col.
Definition: lwcollection.c:174
static void twkb_parse_state_varint_skip(twkb_parse_state *s)
Definition: lwin_twkb.c:103
void lwerror(const char *fmt,...)
Write a notice out to the error handler.
Definition: lwutil.c:74

Here is the call graph for this function:

Here is the caller graph for this function: