Clip an input LWPOLY between two values, on any ordinate input.
Definition at line 727 of file lwlinearreferencing.c.
734 for (uint32_t i = 0; i < poly->
nrings; i++)
int lwpoly_add_ring(LWPOLY *poly, POINTARRAY *pa)
Add a ring, allocating extra space if necessary.
#define FLAGS_GET_Z(flags)
LWCOLLECTION * lwcollection_construct_empty(uint8_t type, int32_t srid, char hasz, char hasm)
#define FLAGS_GET_M(flags)
void ptarray_free(POINTARRAY *pa)
LWCOLLECTION * lwcollection_add_lwgeom(LWCOLLECTION *col, const LWGEOM *geom)
Appends geom to the collection managed by col.
void lwpoly_free(LWPOLY *poly)
#define LW_TRUE
Return types for functions with status returns.
LWPOLY * lwpoly_construct_empty(int32_t srid, char hasz, char hasm)
static POINTARRAY * ptarray_clamp_to_ordinate_range(const POINTARRAY *ipa, char ordinate, double from, double to, uint8_t is_closed)
References LWPOLY::flags, FLAGS_GET_M, FLAGS_GET_Z, LW_TRUE, lwcollection_add_lwgeom(), lwcollection_construct_empty(), lwpoly_add_ring(), lwpoly_construct_empty(), lwpoly_free(), MULTIPOLYGONTYPE, POINTARRAY::npoints, LWPOLY::nrings, ptarray_clamp_to_ordinate_range(), ptarray_free(), LWPOLY::rings, and LWPOLY::srid.
Referenced by lwgeom_clip_to_ordinate_range().