21 #include <geos/export.h> 29 #include <geos/noding/SegmentNode.h> 33 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class 39 class CoordinateSequence;
43 class NodedSegmentString;
60 mutable std::vector<SegmentNode> nodeMap;
61 mutable bool ready =
false;
74 void checkSplitEdgesCorrectness(
const std::vector<SegmentString*>& splitEdges)
const;
96 std::unique_ptr<geom::CoordinateSequence> createSplitEdgePts(
const SegmentNode* ei0,
const SegmentNode* ei1)
const;
106 void addCollapsedNodes();
112 void findCollapsesFromExistingVertices(
113 std::vector<std::size_t>& collapsedVertexIndexes)
const;
122 void findCollapsesFromInsertedNodes(
123 std::vector<std::size_t>& collapsedVertexIndexes)
const;
126 size_t& collapsedVertexIndex);
128 void addEdgeCoordinates(
const SegmentNode* ei0,
const SegmentNode* ei1, std::vector<geom::Coordinate>& coordList)
const;
136 friend std::ostream& operator<< (std::ostream& os,
const SegmentNodeList& l);
138 using container = decltype(nodeMap);
139 using iterator = container::iterator;
140 using const_iterator = container::const_iterator;
166 add(*intPt, segmentIndex);
174 return nodeMap.size();
179 return nodeMap.begin();
182 const_iterator begin()
const {
184 return nodeMap.begin();
189 return nodeMap.end();
192 const_iterator end()
const {
194 return nodeMap.end();
208 void addSplitEdges(std::vector<SegmentString*>& edgeList);
211 addSplitEdges(std::vector<SegmentString*>* edgeList)
214 addSplitEdges(*edgeList);
226 std::vector<geom::Coordinate> getSplitCoordinates();
231 std::ostream& operator<< (std::ostream& os,
const SegmentNodeList& l);
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:58
Represents a list of contiguous line segments, and supports noding the segments.
Definition: NodedSegmentString.h:59
size_t size() const
Return the number of nodes in this list.
Definition: SegmentNodeList.h:171
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25
A list of the SegmentNode present along a NodedSegmentString.
Definition: SegmentNodeList.h:54
Represents an intersection point between two NodedSegmentString.
Definition: SegmentNode.h:45