PostGIS  3.0.6dev-r@@SVN_REVISION@@

◆ lwcollection_ngeoms()

int lwcollection_ngeoms ( const LWCOLLECTION col)

Definition at line 319 of file lwcollection.c.

320 {
321  uint32_t i;
322  int ngeoms = 0;
323 
324  if ( ! col )
325  {
326  lwerror("Null input geometry.");
327  return 0;
328  }
329 
330  for ( i = 0; i < col->ngeoms; i++ )
331  {
332  if ( col->geoms[i])
333  {
334  switch (col->geoms[i]->type)
335  {
336  case POINTTYPE:
337  case LINETYPE:
338  case CIRCSTRINGTYPE:
339  case POLYGONTYPE:
340  ngeoms += 1;
341  break;
342  case MULTIPOINTTYPE:
343  case MULTILINETYPE:
344  case MULTICURVETYPE:
345  case MULTIPOLYGONTYPE:
346  ngeoms += col->ngeoms;
347  break;
348  case COLLECTIONTYPE:
349  ngeoms += lwcollection_ngeoms((LWCOLLECTION*)col->geoms[i]);
350  break;
351  }
352  }
353  }
354  return ngeoms;
355 }
#define COLLECTIONTYPE
Definition: liblwgeom.h:122
#define MULTILINETYPE
Definition: liblwgeom.h:120
#define LINETYPE
Definition: liblwgeom.h:117
#define MULTIPOINTTYPE
Definition: liblwgeom.h:119
#define POINTTYPE
LWTYPE numbers, used internally by PostGIS.
Definition: liblwgeom.h:116
#define MULTIPOLYGONTYPE
Definition: liblwgeom.h:121
#define POLYGONTYPE
Definition: liblwgeom.h:118
#define CIRCSTRINGTYPE
Definition: liblwgeom.h:123
#define MULTICURVETYPE
Definition: liblwgeom.h:126
int lwcollection_ngeoms(const LWCOLLECTION *col)
Definition: lwcollection.c:319
void lwerror(const char *fmt,...)
Write a notice out to the error handler.
Definition: lwutil.c:190
uint32_t ngeoms
Definition: liblwgeom.h:566
LWGEOM ** geoms
Definition: liblwgeom.h:561
uint8_t type
Definition: liblwgeom.h:448

References CIRCSTRINGTYPE, COLLECTIONTYPE, LWCOLLECTION::geoms, LINETYPE, lwcollection_ngeoms(), lwerror(), MULTICURVETYPE, MULTILINETYPE, MULTIPOINTTYPE, MULTIPOLYGONTYPE, LWCOLLECTION::ngeoms, POINTTYPE, POLYGONTYPE, and LWGEOM::type.

Referenced by lwcollection_ngeoms().

Here is the call graph for this function:
Here is the caller graph for this function: