465 POSTGIS_DEBUG(2,
"LWGEOM_interiorringn_polygon called.");
467 wanted_index = PG_GETARG_INT32(1);
468 if ( wanted_index < 1 )
473 geom = PG_GETARG_GSERIALIZED_P(0);
478 PG_FREE_IF_COPY(geom, 0);
486 PG_FREE_IF_COPY(geom, 0);
495 if ( wanted_index >= poly->
nrings )
498 PG_FREE_IF_COPY(geom, 0);
502 ring = poly->
rings[wanted_index];
523 if (wanted_index >= curvepoly->
nrings)
525 PG_FREE_IF_COPY(geom, 0);
534 PG_FREE_IF_COPY(geom, 0);
535 PG_RETURN_POINTER(result);
int ptarray_calculate_gbox_cartesian(const POINTARRAY *pa, GBOX *gbox)
Calculate box (x/y) and add values to gbox.
uint32_t gserialized_get_type(const GSERIALIZED *s)
Extract the geometry type from the serialized form (it hides in the anonymous data area...
LWGEOM * lwgeom_from_gserialized(const GSERIALIZED *g)
Allocate a new LWGEOM from a GSERIALIZED.
void lwgeom_free(LWGEOM *geom)
LWCURVEPOLY * lwgeom_as_lwcurvepoly(const LWGEOM *lwgeom)
LWPOLY * lwgeom_as_lwpoly(const LWGEOM *lwgeom)
void lwpoly_free(LWPOLY *poly)
LWLINE * lwline_construct(int srid, GBOX *bbox, POINTARRAY *points)
GSERIALIZED * geometry_serialize(LWGEOM *lwgeom)
void lwgeom_release(LWGEOM *lwgeom)
Free the containing LWGEOM and the associated BOX.
void * lwalloc(size_t size)
int lwgeom_is_empty(const LWGEOM *geom)
Return true or false depending on whether a geometry is an "empty" geometry (no vertices members) ...
void lwline_release(LWLINE *lwline)