PostGIS 3.0.6dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ _lwt_FirstDistinctVertex2D()

static int _lwt_FirstDistinctVertex2D ( const POINTARRAY pa,
POINT2D ref,
int  from,
int  dir,
POINT2D op 
)
static

Definition at line 1392 of file lwgeom_topo.c.

1393{
1394 int i, toofar, inc;
1395 POINT2D fp;
1396
1397 if ( dir > 0 )
1398 {
1399 toofar = pa->npoints;
1400 inc = 1;
1401 }
1402 else
1403 {
1404 toofar = -1;
1405 inc = -1;
1406 }
1407
1408 LWDEBUGF(1, "first point is index %d", from);
1409 fp = *ref; /* getPoint2d_p(pa, from, &fp); */
1410 for ( i = from+inc; i != toofar; i += inc )
1411 {
1412 LWDEBUGF(1, "testing point %d", i);
1413 getPoint2d_p(pa, i, op); /* pick next point */
1414 if ( p2d_same(op, &fp) ) continue; /* equal to startpoint */
1415 /* this is a good one, neither same of start nor of end point */
1416 return 1; /* found */
1417 }
1418
1419 /* no distinct vertices found */
1420 return 0;
1421}
int getPoint2d_p(const POINTARRAY *pa, uint32_t n, POINT2D *point)
Definition lwgeom_api.c:349
int p2d_same(const POINT2D *p1, const POINT2D *p2)
Definition lwalgorithm.c:50
#define LWDEBUGF(level, msg,...)
Definition lwgeom_log.h:88
uint32_t npoints
Definition liblwgeom.h:413

References getPoint2d_p(), LWDEBUGF, POINTARRAY::npoints, and p2d_same().

Referenced by _lwt_AddEdge(), _lwt_FindAdjacentEdges(), and _lwt_InitEdgeEndByLine().

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