22 #ifndef GEOS_GEOMGRAPH_DIRECTEDEDGEENDSTAR_H
23 #define GEOS_GEOMGRAPH_DIRECTEDEDGEENDSTAR_H
25 #include <geos/export.h>
30 #include <geos/geomgraph/EdgeEndStar.h>
31 #include <geos/geomgraph/Label.h>
32 #include <geos/geom/Coordinate.h>
34 #include <geos/inline.h>
55 class GEOS_DLL DirectedEdgeStar:
public EdgeEndStar {
63 resultAreaEdgesComputed(false)
66 ~DirectedEdgeStar()
override =
default;
69 void insert(EdgeEnd* ee)
override;
77 int getOutgoingDegree();
79 int getOutgoingDegree(EdgeRing* er);
81 DirectedEdge* getRightmostEdge();
86 void computeLabelling(std::vector<GeometryGraph*>* geom)
override;
91 void mergeSymLabels();
94 void updateLabelling(
const Label& nodeLabel);
114 void linkResultDirectedEdges();
116 void linkMinimalDirectedEdges(EdgeRing* er);
118 void linkAllDirectedEdges();
126 void findCoveredLineEdges();
131 void computeDepths(DirectedEdge* de);
133 std::string print()
const override;
140 std::vector<DirectedEdge*> resultAreaEdgeList;
144 bool resultAreaEdgesComputed;
149 const std::vector<DirectedEdge*>& getResultAreaEdges();
154 SCANNING_FOR_INCOMING = 1,
158 int computeDepths(EdgeEndStar::iterator startIt,
159 EdgeEndStar::iterator endIt,
int startDepth);
170 #endif // ifndef GEOS_GEOMGRAPH_DIRECTEDEDGEENDSTAR_H