6739 if ( numfaces != 0 ) {
6740 if ( numfaces > 0 ) {
6742 lwerror(
"Polygonize: face table is not empty.");
6750 if ( ! edgetable.
edges ) {
6751 if (edgetable.
size == 0) {
6763 for (i=0; i<edgetable.
size; ++i)
6771 edge = &(edgetable.
edges[i]);
6775 LWDEBUGF(1,
"Next face-missing edge has id:%d, face_left:%d, face_right:%d",
6780 &holes, &shells, &newface);
6782 LWDEBUGF(1,
"New face on the left of edge %d is %d",
6789 &holes, &shells, &newface);
6791 LWDEBUGF(1,
"New face on the right of edge %d is %d",
6802 lwerror(
"Errors fetching or registering face-missing edges: %s",
6812 for (i=0; i<holes.
size; ++i)
6819 if ( containing_face == -1 )
6824 lwerror(
"Errors finding face containing ring: %s",
6834 lwerror(
"Errors updating edgering side face: %s",
6840 LWDEBUG(1,
"All holes assigned, cleaning up");
void lwgeom_geos_error(const char *fmt,...)
LWT_INT64 LWT_ELEMID
Identifier of topology element.
#define LWDEBUG(level, msg)
#define LWDEBUGF(level, msg,...)
void lwerror(const char *fmt,...)
Write a notice out to the error handler.
void lwnotice(const char *fmt,...)
Write a notice out to the notice handler.
const char * lwt_be_lastErrorMessage(const LWT_BE_IFACE *be)
static int _lwt_UpdateEdgeRingSideFace(LWT_TOPOLOGY *topo, LWT_EDGERING *ring, LWT_ELEMID face)
static int _lwt_CheckFacesExist(LWT_TOPOLOGY *topo)
#define LWT_EDGERING_ARRAY_INIT(a)
static int _lwt_RegisterFaceOnEdgeSide(LWT_TOPOLOGY *topo, LWT_ISO_EDGE *edge, int side, LWT_ISO_EDGE_TABLE *edges, LWT_EDGERING_ARRAY *holes, LWT_EDGERING_ARRAY *shells, LWT_ELEMID *registered)
static LWT_ELEMID _lwt_FindFaceContainingRing(LWT_TOPOLOGY *topo, LWT_EDGERING *ring, LWT_EDGERING_ARRAY *shells)
#define LWT_EDGERING_ARRAY_CLEAN(a)
static LWT_ISO_EDGE * _lwt_FetchAllEdges(LWT_TOPOLOGY *topo, int *numedges)
static int compare_iso_edges_by_id(const void *si1, const void *si2)
static int _lwt_FetchNextUnvisitedEdge(__attribute__((__unused__)) LWT_TOPOLOGY *topo, LWT_ISO_EDGE_TABLE *etab, int from)
static void _lwt_release_edges(LWT_ISO_EDGE *edges, int num_edges)
const LWT_BE_IFACE * be_iface