Definition at line 2866 of file lwgeom_topo.c.
2868{
2869 int i;
2871
2872
2874
2875 LWDEBUGF(1,
"Ring's 'from' point (%d) is %g,%g", from, p1.
x, p1.
y);
2876
2877
2878
2879 for ( i=0; i<numedges; ++i )
2880 {
2885 int match = 0;
2886 uint32_t j;
2887
2888
2890 {
2893 ") on both sides, skipping",
2895 continue;
2896 }
2897
2899 {
2901 " has only %"PRIu32" points",
2903 continue;
2904 }
2905
2906#if 0
2907 size_t sz;
2911#endif
2912
2913
2914
2918 LWDEBUGF(1,
"Rings's 'from' point is still %g,%g", p1.
x, p1.
y);
2920 {
2921 LWDEBUG(1,
"p2d_same(p1,p2) returned true");
2923 " matches ring vertex %d", isoe->
edge_id, from);
2924
2925 for ( j=1; j<epa->
npoints; ++j )
2926 {
2930
2931 if (
p2d_same(&p1, &p2) )
continue;
2932
2934 LWDEBUGF(1,
"Ring's point %d is %g,%g",
2935 from+1, pt.
x, pt.
y);
2937 break;
2938 }
2939#if POSTGIS_DEBUG_LEVEL > 0
2940 if ( match ) {
2942 " matches ring vertex %d", isoe->
edge_id, from+1);
2943 } else {
2945 " does not match ring vertex %d", isoe->
edge_id, from+1);
2946 }
2947#endif
2948 }
2949
2950 if ( ! match )
2951 {
2958 {
2960 " matches ring vertex %d", isoe->
edge_id, from);
2961
2962 for ( j=2; j<=epa->
npoints; j++ )
2963 {
2967
2968 if (
p2d_same(&p1, &p2) )
continue;
2969
2971 LWDEBUGF(1,
"Ring's point %d is %g,%g",
2972 from+1, pt.
x, pt.
y);
2974 break;
2975 }
2976 }
2977#if POSTGIS_DEBUG_LEVEL > 0
2978 if ( match ) {
2980 " matches ring vertex %d", isoe->
edge_id, from+1);
2981 } else {
2983 " does not match ring vertex %d", isoe->
edge_id, from+1);
2984 }
2985#endif
2986 }
2987
2988 if ( match ) return i;
2989
2990 }
2991
2992 return -1;
2993}
char * lwgeom_to_wkt(const LWGEOM *geom, uint8_t variant, int precision, size_t *size_out)
WKT emitter function.
int getPoint2d_p(const POINTARRAY *pa, uint32_t n, POINT2D *point)
LWGEOM * lwline_as_lwgeom(const LWLINE *obj)
int p2d_same(const POINT2D *p1, const POINT2D *p2)
#define LWDEBUG(level, msg)
#define LWDEBUGF(level, msg,...)
References LWT_ISO_EDGE::edge_id, LWT_ISO_EDGE::face_left, LWT_ISO_EDGE::face_right, LWT_ISO_EDGE::geom, getPoint2d_p(), LWDEBUG, LWDEBUGF, lwgeom_to_wkt(), lwline_as_lwgeom(), LWTFMT_ELEMID, POINTARRAY::npoints, p2d_same(), LWLINE::points, WKT_EXTENDED, POINT2D::x, and POINT2D::y.
Referenced by lwt_GetFaceEdges().