PostGIS  2.5.0beta2dev-r@@SVN_REVISION@@

◆ collectFacesWithEvenAncestors()

static GEOSGeometry* collectFacesWithEvenAncestors ( Face **  faces,
int  nfaces 
)
static

Definition at line 1084 of file liblwgeom/lwgeom_geos.c.

References countParens(), Face_t::geom, lwalloc(), and lwfree().

Referenced by LWGEOM_GEOS_buildArea().

1085 {
1086  GEOSGeometry** geoms = lwalloc(sizeof(GEOSGeometry*) * nfaces);
1087  GEOSGeometry* ret;
1088  unsigned int ngeoms = 0;
1089  int i;
1090 
1091  for (i = 0; i < nfaces; ++i)
1092  {
1093  Face* f = faces[i];
1094  if (countParens(f) % 2) continue; /* we skip odd parents geoms */
1095  geoms[ngeoms++] = GEOSGeom_clone(f->geom);
1096  }
1097 
1098  ret = GEOSGeom_createCollection(GEOS_MULTIPOLYGON, geoms, ngeoms);
1099  lwfree(geoms);
1100  return ret;
1101 }
void lwfree(void *mem)
Definition: lwutil.c:244
const GEOSGeometry * geom
static unsigned int countParens(const Face *f)
void * lwalloc(size_t size)
Definition: lwutil.c:229
Here is the call graph for this function:
Here is the caller graph for this function: