839 if ( numfaces != 0 ) {
840 if ( numfaces > 0 ) {
842 lwerror(
"Polygonize: face table is not empty.");
850 if ( ! edgetable.
edges ) {
851 if (edgetable.
size == 0) {
863 for (i=0; i<edgetable.
size; ++i)
871 edge = &(edgetable.
edges[i]);
875 LWDEBUGF(1,
"Next face-missing edge has id:%lld, face_left:%lld, face_right:%lld",
880 &holes, &shells, &newface);
882 LWDEBUGF(1,
"New face on the left of edge %lld is %lld",
889 &holes, &shells, &newface);
891 LWDEBUGF(1,
"New face on the right of edge %lld is %lld",
902 lwerror(
"Errors fetching or registering face-missing edges: %s",
912 for (i=0; i<holes.
size; ++i)
919 if ( containing_face == -1 )
924 lwerror(
"Errors finding face containing ring: %s",
934 lwerror(
"Errors updating edgering side face: %s",
940 LWDEBUG(1,
"All holes assigned, cleaning up");
void lwgeom_geos_error(const char *fmt,...)
LWT_INT64 LWT_ELEMID
Identifier of topology element.
const char * lwt_be_lastErrorMessage(const LWT_BE_IFACE *be)
void _lwt_release_edges(LWT_ISO_EDGE *edges, int num_edges)
#define LWDEBUG(level, msg)
#define LWDEBUGF(level, msg,...)
void lwnotice(const char *fmt,...) __attribute__((format(printf
Write a notice out to the notice handler.
void void lwerror(const char *fmt,...) __attribute__((format(printf
Write a notice out to the error handler.
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)
const LWT_BE_IFACE * be_iface