21 #include <geos/export.h> 23 #include <geos/inline.h> 31 #include <geos/noding/SegmentNode.h> 35 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class 41 class CoordinateSequence;
45 class NodedSegmentString;
62 mutable std::vector<SegmentNode> nodeMap;
63 mutable bool ready =
false;
76 void checkSplitEdgesCorrectness(
const std::vector<SegmentString*>& splitEdges)
const;
98 std::unique_ptr<geom::CoordinateSequence> createSplitEdgePts(
const SegmentNode* ei0,
const SegmentNode* ei1)
const;
108 void addCollapsedNodes();
114 void findCollapsesFromExistingVertices(
115 std::vector<std::size_t>& collapsedVertexIndexes)
const;
124 void findCollapsesFromInsertedNodes(
125 std::vector<std::size_t>& collapsedVertexIndexes)
const;
128 size_t& collapsedVertexIndex);
130 void addEdgeCoordinates(
const SegmentNode* ei0,
const SegmentNode* ei1, std::vector<geom::Coordinate>& coordList)
const;
138 friend std::ostream& operator<< (std::ostream& os,
const SegmentNodeList& l);
140 using container = decltype(nodeMap);
141 using iterator = container::iterator;
142 using const_iterator = container::const_iterator;
171 add(*intPt, segmentIndex);
179 return nodeMap.size();
184 return nodeMap.begin();
187 const_iterator begin()
const {
189 return nodeMap.begin();
194 return nodeMap.end();
197 const_iterator end()
const {
199 return nodeMap.end();
213 void addSplitEdges(std::vector<SegmentString*>& edgeList);
216 addSplitEdges(std::vector<SegmentString*>* edgeList)
219 addSplitEdges(*edgeList);
231 std::vector<geom::Coordinate> getSplitCoordinates();
236 std::ostream& operator<< (std::ostream& os,
const SegmentNodeList& l);
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:60
Represents a list of contiguous line segments, and supports noding the segments.
Definition: NodedSegmentString.h:58
size_t size() const
Return the number of nodes in this list.
Definition: SegmentNodeList.h:176
Basic namespace for all GEOS functionalities.
Definition: Angle.h:26
A list of the SegmentNode present along a NodedSegmentString.
Definition: SegmentNodeList.h:56
Represents an intersection point between two NodedSegmentString.
Definition: SegmentNode.h:47