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

◆ _lwt_LoadGeometryRecursive()

void _lwt_LoadGeometryRecursive ( LWT_TOPOLOGY topo,
LWGEOM geom,
double  tol 
)

Definition at line 8188 of file lwgeom_topo.c.

8189{
8190 switch (geom->type)
8191 {
8192 case POINTTYPE:
8193 lwt_LoadPoint(topo, lwgeom_as_lwpoint(geom), tol);
8194 return;
8195
8196 case LINETYPE:
8197 lwt_LoadLine(topo, lwgeom_as_lwline(geom), tol, -1);
8198 return;
8199
8200 case POLYGONTYPE:
8201 lwt_LoadPolygon(topo, lwgeom_as_lwpoly(geom), tol);
8202 return;
8203
8204 case MULTILINETYPE:
8205 case MULTIPOLYGONTYPE:
8206 case MULTIPOINTTYPE:
8207 case COLLECTIONTYPE:
8208 {
8209 LWCOLLECTION *coll;
8210 uint32_t i;
8211 coll = (LWCOLLECTION *)geom;
8212 for (i=0; i<coll->ngeoms; i++)
8213 _lwt_LoadGeometryRecursive(topo, coll->geoms[i], tol);
8214 return;
8215 }
8216
8217 default:
8218 {
8219 lwerror("%s: Unsupported geometry type: %s", __func__,
8220 lwtype_name(geom->type));
8221 return;
8222 }
8223
8224 }
8225}
const char * lwtype_name(uint8_t type)
Return the type name string associated with a type number (e.g.
Definition lwutil.c:216
#define COLLECTIONTYPE
Definition liblwgeom.h:108
#define MULTILINETYPE
Definition liblwgeom.h:106
#define LINETYPE
Definition liblwgeom.h:103
#define MULTIPOINTTYPE
Definition liblwgeom.h:105
#define POINTTYPE
LWTYPE numbers, used internally by PostGIS.
Definition liblwgeom.h:102
LWPOLY * lwgeom_as_lwpoly(const LWGEOM *lwgeom)
Definition lwgeom.c:243
#define MULTIPOLYGONTYPE
Definition liblwgeom.h:107
#define POLYGONTYPE
Definition liblwgeom.h:104
LWLINE * lwgeom_as_lwline(const LWGEOM *lwgeom)
Definition lwgeom.c:207
void void lwerror(const char *fmt,...) __attribute__((format(printf
Write a notice out to the error handler.
static void lwt_LoadLine(LWT_TOPOLOGY *topo, LWLINE *line, double tol, int max_new_edges)
static void lwt_LoadPoint(LWT_TOPOLOGY *topo, LWPOINT *point, double tol)
void _lwt_LoadGeometryRecursive(LWT_TOPOLOGY *topo, LWGEOM *geom, double tol)
static void lwt_LoadPolygon(LWT_TOPOLOGY *topo, const LWPOLY *poly, double tol)
static LWPOINT * lwgeom_as_lwpoint(const LWGEOM *lwgeom)
Definition lwinline.h:127
uint32_t ngeoms
Definition liblwgeom.h:580
LWGEOM ** geoms
Definition liblwgeom.h:575
uint8_t type
Definition liblwgeom.h:462

References _lwt_LoadGeometryRecursive(), COLLECTIONTYPE, LWCOLLECTION::geoms, LINETYPE, lwerror(), lwgeom_as_lwline(), lwgeom_as_lwpoint(), lwgeom_as_lwpoly(), lwt_LoadLine(), lwt_LoadPoint(), lwt_LoadPolygon(), lwtype_name(), MULTILINETYPE, MULTIPOINTTYPE, MULTIPOLYGONTYPE, LWCOLLECTION::ngeoms, POINTTYPE, POLYGONTYPE, and LWGEOM::type.

Referenced by _lwt_LoadGeometryRecursive(), and lwt_LoadGeometry().

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