23#include <geos/export.h>
29#include <geos/geom/Coordinate.h>
30#include <geos/geomgraph/Node.h>
35#pragma warning(disable: 4251)
50class GEOS_DLL NodeMap final {
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);
68 Node* addNode(
const geom::Coordinate& coord);
70 Node* addNode(Node* n);
81 void add(std::unique_ptr<EdgeEnd>&& e);
83 Node* find(
const geom::Coordinate& coord)
const;
88 return nodeMap.begin();
100 return nodeMap.begin();
106 return nodeMap.end();
109 void getBoundaryNodes(uint8_t geomIndex,
110 std::vector<Node*>& bdyNodes)
const;
112 std::string print()
const;
119 for(
const auto& nodeIt: nodeMap) {
120 const auto* n = nodeIt.second.get();
121 geom::Coordinate* c =
const_cast<geom::Coordinate*
>(
122 &(n->getCoordinate())
124 assert(nodeIt.first == c);
133 NodeMap(
const NodeMap& other) =
delete;
134 NodeMap& operator=(
const NodeMap& rhs) =
delete;
Basic namespace for all GEOS functionalities.
Definition geos.h:39