21#include <geos/export.h>
29#include <geos/noding/SegmentNode.h>
33#pragma warning(disable: 4251)
39class CoordinateSequence;
43class 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();
211 addSplitEdges(std::vector<SegmentString*>* edgeList)
214 addSplitEdges(*edgeList);
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
A list of the SegmentNode present along a NodedSegmentString.
Definition: SegmentNodeList.h:54
std::vector< geom::Coordinate > getSplitCoordinates()
void add(const geom::Coordinate &intPt, std::size_t segmentIndex)
void addSplitEdges(std::vector< SegmentString * > &edgeList)
size_t size() const
Return the number of nodes in this list.
Definition: SegmentNodeList.h:171
Represents an intersection point between two NodedSegmentString.
Definition: SegmentNode.h:45
Basic namespace for all GEOS functionalities.
Definition: geos.h:39