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

◆ _lwt_LoadGeometryRecursive()

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

Definition at line 8029 of file lwgeom_topo.c.

8030{
8031 switch (geom->type)
8032 {
8033 case POINTTYPE:
8034 lwt_LoadPoint(topo, lwgeom_as_lwpoint(geom), tol);
8035 return;
8036
8037 case LINETYPE:
8038 lwt_LoadLine(topo, lwgeom_as_lwline(geom), tol);
8039 return;
8040
8041 case POLYGONTYPE:
8042 lwt_LoadPolygon(topo, lwgeom_as_lwpoly(geom), tol);
8043 return;
8044
8045 case MULTILINETYPE:
8046 case MULTIPOLYGONTYPE:
8047 case MULTIPOINTTYPE:
8048 case COLLECTIONTYPE:
8049 {
8050 LWCOLLECTION *coll;
8051 uint32_t i;
8052 coll = (LWCOLLECTION *)geom;
8053 for (i=0; i<coll->ngeoms; i++)
8054 _lwt_LoadGeometryRecursive(topo, coll->geoms[i], tol);
8055 return;
8056 }
8057
8058 default:
8059 {
8060 lwerror("%s: Unsupported geometry type: %s", __func__,
8061 lwtype_name(geom->type));
8062 return;
8063 }
8064
8065 }
8066}
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:215
#define MULTIPOLYGONTYPE
Definition liblwgeom.h:107
#define POLYGONTYPE
Definition liblwgeom.h:104
LWLINE * lwgeom_as_lwline(const LWGEOM *lwgeom)
Definition lwgeom.c:179
void void lwerror(const char *fmt,...) __attribute__((format(printf
Write a notice out to the error handler.
static void lwt_LoadPoint(LWT_TOPOLOGY *topo, LWPOINT *point, double tol)
static void lwt_LoadLine(LWT_TOPOLOGY *topo, LWLINE *line, 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: