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

◆ 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

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: