PostGIS  3.7.0dev-r@@SVN_REVISION@@

◆ _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 }
LWLINE * lwgeom_as_lwline(const LWGEOM *lwgeom)
Definition: lwgeom.c:179
#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
#define MULTIPOLYGONTYPE
Definition: liblwgeom.h:107
#define POLYGONTYPE
Definition: liblwgeom.h:104
const char * lwtype_name(uint8_t type)
Return the type name string associated with a type number (e.g.
Definition: lwutil.c:216
LWPOLY * lwgeom_as_lwpoly(const LWGEOM *lwgeom)
Definition: lwgeom.c:215
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)
Definition: lwgeom_topo.c:7510
static void lwt_LoadLine(LWT_TOPOLOGY *topo, LWLINE *line, double tol)
Definition: lwgeom_topo.c:7516
void _lwt_LoadGeometryRecursive(LWT_TOPOLOGY *topo, LWGEOM *geom, double tol)
Definition: lwgeom_topo.c:8029
static void lwt_LoadPolygon(LWT_TOPOLOGY *topo, const LWPOLY *poly, double tol)
Definition: lwgeom_topo.c:7527
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 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_LoadGeometry().

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