PostGIS 3.7.0dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ 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:108
#define MULTILINETYPE
Definition liblwgeom.h:106
#define LINETYPE
Definition liblwgeom.h:103
#define MULTIPOINTTYPE
Definition liblwgeom.h:105
#define POINTTYPE
LWTYPE numbers, used internally by PostGIS.
Definition liblwgeom.h:102
#define MULTIPOLYGONTYPE
Definition liblwgeom.h:107
#define POLYGONTYPE
Definition liblwgeom.h:104
#define CIRCSTRINGTYPE
Definition liblwgeom.h:109
#define MULTICURVETYPE
Definition liblwgeom.h:112
int lwcollection_ngeoms(const LWCOLLECTION *col)
void void lwerror(const char *fmt,...) __attribute__((format(printf
Write a notice out to the error handler.
uint32_t ngeoms
Definition liblwgeom.h:580
LWGEOM ** geoms
Definition liblwgeom.h:575
uint8_t type
Definition liblwgeom.h:462

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: