GEOS 3.14.0dev
|
A DirectedEdgeStar is an ordered list of outgoing DirectedEdges around a node. More...
#include <DirectedEdgeStar.h>
Public Member Functions | |
void | insert (EdgeEnd *ee) override |
Insert a directed edge in the list. | |
Label & | getLabel () |
int | getOutgoingDegree () |
int | getOutgoingDegree (EdgeRing *er) |
DirectedEdge * | getRightmostEdge () |
void | computeLabelling (const std::vector< std::unique_ptr< GeometryGraph > > &geom) override |
Compute the labelling for all dirEdges in this star, as well as the overall labelling. | |
void | mergeSymLabels () |
For each dirEdge in the star, merge the label from the sym dirEdge into the label. | |
void | updateLabelling (const Label &nodeLabel) |
Update incomplete dirEdge labels from the labelling for the node. | |
void | linkResultDirectedEdges () |
Traverse the star of DirectedEdges, linking the included edges together. | |
void | linkMinimalDirectedEdges (EdgeRing *er) |
void | linkAllDirectedEdges () |
void | findCoveredLineEdges () |
Traverse the star of edges, maintaining the current location in the result area at this node (if any). | |
void | computeDepths (DirectedEdge *de) |
Compute the DirectedEdge depths for a subsequence of the edge array. | |
std::string | print () const override |
Public Member Functions inherited from geos::geomgraph::EdgeEndStar | |
geom::Coordinate & | getCoordinate () |
const geom::Coordinate & | getCoordinate () const |
std::size_t | getDegree () |
iterator | begin () |
iterator | end () |
reverse_iterator | rbegin () |
reverse_iterator | rend () |
const_iterator | begin () const |
const_iterator | end () const |
container & | getEdges () |
EdgeEnd * | getNextCW (EdgeEnd *ee) |
bool | isAreaLabelsConsistent (const GeometryGraph &geomGraph) |
void | propagateSideLabels (uint32_t geomIndex) |
iterator | find (EdgeEnd *eSearch) |
Additional Inherited Members | |
Public Types inherited from geos::geomgraph::EdgeEndStar | |
typedef std::set< EdgeEnd *, EdgeEndLT > | container |
typedef container::iterator | iterator |
typedef container::const_iterator | const_iterator |
typedef container::reverse_iterator | reverse_iterator |
Protected Member Functions inherited from geos::geomgraph::EdgeEndStar | |
void | insertEdgeEnd (EdgeEnd *e) |
Insert an EdgeEnd into the map. | |
Protected Attributes inherited from geos::geomgraph::EdgeEndStar | |
EdgeEndStar::container | edgeMap |
A map which maintains the edges in sorted order around the node. | |
A DirectedEdgeStar is an ordered list of outgoing DirectedEdges around a node.
It supports labelling the edges as well as linking the edges to form both MaximalEdgeRings and MinimalEdgeRings.
|
overridevirtual |
Compute the labelling for all dirEdges in this star, as well as the overall labelling.
Reimplemented from geos::geomgraph::EdgeEndStar.
void geos::geomgraph::DirectedEdgeStar::findCoveredLineEdges | ( | ) |
Traverse the star of edges, maintaining the current location in the result area at this node (if any).
If any L edges are found in the interior of the result, mark them as covered.
|
overridevirtual |
Insert a directed edge in the list.
Implements geos::geomgraph::EdgeEndStar.
void geos::geomgraph::DirectedEdgeStar::linkResultDirectedEdges | ( | ) |
Traverse the star of DirectedEdges, linking the included edges together.
To link two dirEdges, the next
pointer for an incoming dirEdge is set to the next outgoing edge.
DirEdges are only linked if:
Edges are linked in CCW order (the order they are stored). This means that rings have their face on the Right (in other words, the topological location of the face is given by the RHS label of the DirectedEdge)
PRECONDITION: No pair of dirEdges are both marked as being in the result
Referenced by geos::geomgraph::PlanarGraph::linkResultDirectedEdges().
|
overridevirtual |
Reimplemented from geos::geomgraph::EdgeEndStar.