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

◆ lwgeom_subdivide_prec()

LWCOLLECTION * lwgeom_subdivide_prec ( const LWGEOM geom,
uint32_t  maxvertices,
double  gridSize 
)

Definition at line 2591 of file lwgeom.c.

2592{
2593 static uint32_t startdepth = 0;
2594 static uint32_t minmaxvertices = 5;
2595 LWCOLLECTION *col;
2596
2598
2599 if ( lwgeom_is_empty(geom) )
2600 return col;
2601
2602 if ( maxvertices < minmaxvertices )
2603 {
2604 lwcollection_free(col);
2605 lwerror("%s: cannot subdivide to fewer than %d vertices per output", __func__, minmaxvertices);
2606 }
2607
2608 lwgeom_subdivide_recursive(geom, lwgeom_dimension(geom), maxvertices, startdepth, col, gridSize);
2609 lwgeom_set_srid((LWGEOM*)col, geom->srid);
2610 return col;
2611}
#define COLLECTIONTYPE
Definition liblwgeom.h:108
void lwcollection_free(LWCOLLECTION *col)
LWCOLLECTION * lwcollection_construct_empty(uint8_t type, int32_t srid, char hasz, char hasm)
void lwgeom_set_srid(LWGEOM *geom, int32_t srid)
Set the SRID on an LWGEOM For collections, only the parent gets an SRID, all the children get SRID_UN...
Definition lwgeom.c:1610
int lwgeom_has_z(const LWGEOM *geom)
Return LW_TRUE if geometry has Z ordinates.
Definition lwgeom.c:934
int lwgeom_dimension(const LWGEOM *geom)
For an LWGEOM, returns 0 for points, 1 for lines, 2 for polygons, 3 for volume, and the max dimension...
Definition lwgeom.c:1361
static void lwgeom_subdivide_recursive(const LWGEOM *geom, uint8_t dimension, uint32_t maxvertices, uint32_t depth, LWCOLLECTION *col, double gridSize)
Definition lwgeom.c:2410
int lwgeom_has_m(const LWGEOM *geom)
Return LW_TRUE if geometry has M ordinates.
Definition lwgeom.c:941
void void lwerror(const char *fmt,...) __attribute__((format(printf
Write a notice out to the error handler.
static int lwgeom_is_empty(const LWGEOM *geom)
Return true or false depending on whether a geometry is an "empty" geometry (no vertices members)
Definition lwinline.h:199
int32_t srid
Definition liblwgeom.h:460

References COLLECTIONTYPE, lwcollection_construct_empty(), lwcollection_free(), lwerror(), lwgeom_dimension(), lwgeom_has_m(), lwgeom_has_z(), lwgeom_is_empty(), lwgeom_set_srid(), lwgeom_subdivide_recursive(), and LWGEOM::srid.

Referenced by lwgeom_subdivide(), and ST_Subdivide().

Here is the call graph for this function:
Here is the caller graph for this function: