PostGIS  3.7.0dev-r@@SVN_REVISION@@

◆ lwt_edgeEndStar_getNextCW()

const LWT_EDGEEND* lwt_edgeEndStar_getNextCW ( LWT_EDGEEND_STAR star,
LWT_ISO_EDGE edge,
int  outgoing 
)

Definition at line 174 of file lwt_edgeend_star.c.

175 {
177 
178  uint64_t i=0;
179  LWT_EDGEEND *thisEdgeEnd = NULL;
180  for ( i=0; i<star->numEdgeEnds; ++i )
181  {
182  LWT_EDGEEND *ee = star->edgeEnds[i];
183  if ( ee->edge == edge && ee->outgoing == outgoing ) {
184  thisEdgeEnd = ee;
185  break;
186  }
187  }
188  if ( ! thisEdgeEnd ) {
189  lwerror("Could not find %s edge %" LWTFMT_ELEMID " in the star",
190  outgoing ? "outgoing" : "incoming", edge->edge_id);
191  return NULL;
192  }
193  LWT_EDGEEND *nextEdgeEnd = i < star->numEdgeEnds-1 ? star->edgeEnds[i+1] : star->edgeEnds[0];
194  return nextEdgeEnd;
195 }
#define LWTFMT_ELEMID
void void lwerror(const char *fmt,...) __attribute__((format(printf
Write a notice out to the error handler.
static void lwt_edgeEndStar_ensureSorted(LWT_EDGEEND_STAR *star)
LWT_EDGEEND ** edgeEnds
const LWT_ISO_EDGE * edge
Definition: lwt_edgeend.h:33
LWT_ELEMID edge_id

References LWT_EDGEEND_t::edge, LWT_ISO_EDGE::edge_id, LWT_EDGEEND_STAR_t::edgeEnds, lwerror(), lwt_edgeEndStar_ensureSorted(), LWTFMT_ELEMID, LWT_EDGEEND_STAR_t::numEdgeEnds, and LWT_EDGEEND_t::outgoing.

Referenced by _lwt_SnapEdgeToExistingNode().

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