58 LWDEBUGF(2,
"BOX X range is %g..%g, cutx:%g, amount:%g", box_in->
xmin, box_in->
xmax, cutx, amount);
61 if ( ( amount < 0 && box_in->xmin >= cutx ) || ( amount > 0 && box_in->
xmax <= cutx ) )
65 LWDEBUGG(2, split,
"returning the translated geometry");
70 if ( ( amount < 0 && box_in->xmax <= cutx ) || ( amount > 0 && box_in->
xmin >= cutx ) )
73 LWDEBUGG(2, split,
"returning the cloned geometry");
82 pt.
y = box_in->
ymin - 1;
84 pt.
y = box_in->
ymax + 1;
88 LWDEBUG(2,
"splitting the geometry");
97 LWDEBUGG(2, split,
"split geometry");
104 lwnotice(
"WARNING: unexpected lack of split in lwgeom_split_wrapx");
112 LWDEBUGF(2,
"col_out:%p, unaryunion_out:%p", col_out, out);
char lwgeom_geos_errmsg[LWGEOM_GEOS_ERRMSG_MAXSIZE]
LWGEOM * lwline_as_lwgeom(const LWLINE *obj)
LWGEOM * lwcollection_as_lwgeom(const LWCOLLECTION *obj)
void lwgeom_free(LWGEOM *geom)
LWGEOM * lwgeom_split(const LWGEOM *lwgeom_in, const LWGEOM *blade_in)
LWGEOM * lwgeom_clone_deep(const LWGEOM *lwgeom)
Deep clone an LWGEOM, everything is copied.
POINTARRAY * ptarray_construct(char hasz, char hasm, uint32_t npoints)
Construct an empty pointarray, allocating storage and setting the npoints, but not filling in any inf...
LWGEOM * lwgeom_unaryunion(const LWGEOM *geom1)
void lwgeom_affine(LWGEOM *geom, const AFFINE *affine)
void lwcollection_free(LWCOLLECTION *col)
const GBOX * lwgeom_get_bbox(const LWGEOM *lwgeom)
Get a non-empty geometry bounding box, computing and caching it if not already there.
LWCOLLECTION * lwgeom_as_lwcollection(const LWGEOM *lwgeom)
LWLINE * lwline_construct(int srid, GBOX *bbox, POINTARRAY *points)
void ptarray_set_point4d(POINTARRAY *pa, uint32_t n, const POINT4D *p4d)
#define LWDEBUG(level, msg)
#define LWDEBUGF(level, msg,...)
void lwerror(const char *fmt,...)
Write a notice out to the error handler.
void lwnotice(const char *fmt,...)
Write a notice out to the notice handler.
#define LWDEBUGG(level, geom, msg)
static LWCOLLECTION * lwcollection_wrapx(const LWCOLLECTION *lwcoll_in, double cutx, double amount)