23 #include <geos/export.h>
29 #include <geos/geom/Coordinate.h>
30 #include <geos/geomgraph/Node.h>
35 #pragma warning(disable: 4251)
50 class GEOS_DLL NodeMap {
53 typedef std::map<geom::Coordinate*, std::unique_ptr<Node>, geom::CoordinateLessThan> container;
55 typedef container::iterator iterator;
57 typedef container::const_iterator const_iterator;
61 const NodeFactory& nodeFact;
66 NodeMap(
const NodeFactory& newNodeFact);
70 Node* addNode(
const geom::Coordinate& coord);
72 Node* addNode(Node* n);
83 void add(std::unique_ptr<EdgeEnd>&& e);
85 Node* find(
const geom::Coordinate& coord)
const;
90 return nodeMap.begin();
102 return nodeMap.begin();
108 return nodeMap.end();
111 void getBoundaryNodes(uint8_t geomIndex,
112 std::vector<Node*>& bdyNodes)
const;
114 std::string print()
const;
121 for(
const auto& nodeIt: nodeMap) {
122 const auto* n = nodeIt.second.get();
123 geom::Coordinate* c =
const_cast<geom::Coordinate*
>(
124 &(n->getCoordinate())
126 assert(nodeIt.first == c);
135 NodeMap(
const NodeMap& other) =
delete;
136 NodeMap& operator=(
const NodeMap& rhs) =
delete;
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25