PostGIS  2.4.9dev-r@@SVN_REVISION@@

◆ _lwt_FirstDistinctVertex2D()

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

Definition at line 1410 of file lwgeom_topo.c.

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

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

1411 {
1412  int i, toofar, inc;
1413  POINT2D fp;
1414 
1415  if ( dir > 0 )
1416  {
1417  toofar = pa->npoints;
1418  inc = 1;
1419  }
1420  else
1421  {
1422  toofar = -1;
1423  inc = -1;
1424  }
1425 
1426  LWDEBUGF(1, "first point is index %d", from);
1427  fp = *ref; /* getPoint2d_p(pa, from, &fp); */
1428  for ( i = from+inc; i != toofar; i += inc )
1429  {
1430  LWDEBUGF(1, "testing point %d", i);
1431  getPoint2d_p(pa, i, op); /* pick next point */
1432  if ( p2d_same(op, &fp) ) continue; /* equal to startpoint */
1433  /* this is a good one, neither same of start nor of end point */
1434  return 1; /* found */
1435  }
1436 
1437  /* no distinct vertices found */
1438  return 0;
1439 }
int npoints
Definition: liblwgeom.h:371
int p2d_same(const POINT2D *p1, const POINT2D *p2)
Definition: lwalgorithm.c:49
int getPoint2d_p(const POINTARRAY *pa, int n, POINT2D *point)
Definition: lwgeom_api.c:347
#define LWDEBUGF(level, msg,...)
Definition: lwgeom_log.h:88
Here is the call graph for this function:
Here is the caller graph for this function: