PostGIS  3.7.0dev-r@@SVN_REVISION@@

◆ _lwt_LoadGeometryRecursive()

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

Definition at line 8071 of file lwgeom_topo.c.

8072 {
8073  switch (geom->type)
8074  {
8075  case POINTTYPE:
8076  lwt_LoadPoint(topo, lwgeom_as_lwpoint(geom), tol);
8077  return;
8078 
8079  case LINETYPE:
8080  lwt_LoadLine(topo, lwgeom_as_lwline(geom), tol, -1);
8081  return;
8082 
8083  case POLYGONTYPE:
8084  lwt_LoadPolygon(topo, lwgeom_as_lwpoly(geom), tol);
8085  return;
8086 
8087  case MULTILINETYPE:
8088  case MULTIPOLYGONTYPE:
8089  case MULTIPOINTTYPE:
8090  case COLLECTIONTYPE:
8091  {
8092  LWCOLLECTION *coll;
8093  uint32_t i;
8094  coll = (LWCOLLECTION *)geom;
8095  for (i=0; i<coll->ngeoms; i++)
8096  _lwt_LoadGeometryRecursive(topo, coll->geoms[i], tol);
8097  return;
8098  }
8099 
8100  default:
8101  {
8102  lwerror("%s: Unsupported geometry type: %s", __func__,
8103  lwtype_name(geom->type));
8104  return;
8105  }
8106 
8107  }
8108 }
LWLINE * lwgeom_as_lwline(const LWGEOM *lwgeom)
Definition: lwgeom.c:207
#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:243
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)
Definition: lwgeom_topo.c:7558
static void lwt_LoadPoint(LWT_TOPOLOGY *topo, LWPOINT *point, double tol)
Definition: lwgeom_topo.c:7552
void _lwt_LoadGeometryRecursive(LWT_TOPOLOGY *topo, LWGEOM *geom, double tol)
Definition: lwgeom_topo.c:8071
static void lwt_LoadPolygon(LWT_TOPOLOGY *topo, const LWPOLY *poly, double tol)
Definition: lwgeom_topo.c:7569
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: