17 #include <geos/export.h>
18 #include <geos/geom/Location.h>
19 #include <geos/operation/overlayng/OverlayGraph.h>
44 class GEOS_DLL OverlayLabeller {
50 InputGeometry* inputGeometry;
51 std::vector<OverlayEdge*>& edges;
56 static OverlayEdge* findPropagationStartEdge(OverlayEdge* nodeEdge,
int geomIndex);
83 void labelCollapsedEdges();
84 void labelCollapsedEdge(OverlayEdge* edge,
int geomIndex);
91 void labelConnectedLinearEdges();
92 void propagateLinearLocations(
int geomIndex);
93 static void propagateLinearLocationAtNode(OverlayEdge* eNode,
int geomIndex,
bool isInputLine, std::deque<OverlayEdge*>& edgeStack);
100 static std::vector<OverlayEdge*> findLinearEdgesWithLocation(std::vector<OverlayEdge*>& edges,
int geomIndex);
116 void labelDisconnectedEdges();
126 void labelDisconnectedEdge(OverlayEdge* edge,
int geomIndex);
150 geom::Location locateEdgeBothEnds(
int geomIndex, OverlayEdge* edge);
157 void labelAreaNodeEdges(std::vector<OverlayEdge*>& nodes);
163 OverlayLabeller(OverlayGraph* p_graph, InputGeometry* p_inputGeometry)
165 , inputGeometry(p_inputGeometry)
166 , edges(p_graph->getEdges())
172 void computeLabelling();
179 void propagateAreaLocations(OverlayEdge* nodeEdge,
int geomIndex);
181 void markResultAreaEdges(
int overlayOpCode);
190 void markInResultArea(OverlayEdge* e,
int overlayOpCode);
198 void unmarkDuplicateEdgesFromResultArea();
Location
Constants representing the location of a point relative to a geometry.
Definition: Location.h:34
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:26