24#include <geos/export.h>
25#include <geos/geomgraph/GraphComponent.h>
26#include <geos/geom/Coordinate.h>
29#include <geos/geomgraph/EdgeEndStar.h>
30#include <geos/geomgraph/EdgeEnd.h>
38#pragma warning(disable: 4251)
44class IntersectionMatrix;
60 using GraphComponent::setLabel;
64 friend std::ostream& operator<< (std::ostream& os,
const Node& node);
74 bool isIsolated()
const override;
81 virtual void mergeLabel(
const Node& n);
92 virtual void setLabel(uint8_t argIndex,
geom::Location onLocation);
110 virtual std::string print();
112 virtual const std::vector<double>& getZ()
const;
114 virtual void addZ(
double);
131 void testInvariant()
const;
145 std::vector<double> zvals;
151std::ostream& operator<< (std::ostream& os,
const Node& node);
154Node::testInvariant()
const
160 for(EdgeEndStar::iterator
161 it = edges->begin(), itEnd = edges->end();
165 assert(e->getCoordinate().equals2D(coord));
172 double ztot_check = 0.0;
173 for(std::vector<double>::const_iterator
174 i = zvals.begin(), e = zvals.end();
179 assert(ztot_check == ztot);
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:58
Implementation of Dimensionally Extended Nine-Intersection Model (DE-9IM) matrix.
Definition: IntersectionMatrix.h:51
A EdgeEndStar is an ordered list of EdgeEnds around a node.
Definition: EdgeEndStar.h:62
Models the end of an edge incident on a node.
Definition: EdgeEnd.h:54
A GraphComponent is the parent class for the objects' that form a graph.
Definition: geomgraph/GraphComponent.h:45
A Label indicates the topological relationship of a component of a topology graph to a given Geometry...
Definition: Label.h:57
The node component of a geometry graph.
Definition: geomgraph/Node.h:59
virtual void mergeLabel(const Label &label2)
To merge labels for two nodes, the merged location for each LabelElement is computed.
virtual void add(EdgeEnd *e)
Add the edge to the list of edges at this node.
virtual bool isIncidentEdgeInResult() const
Tests whether any incident edge is flagged as being in the result.
virtual void setLabelBoundary(uint8_t argIndex)
Updates the label of a node to BOUNDARY, obeying the mod-2 boundaryDetermination rule.
virtual geom::Location computeMergedLocation(const Label &label2, uint8_t eltIndex)
void computeIM(geom::IntersectionMatrix &) override
Basic nodes do not compute IMs.
Definition: geomgraph/Node.h:141
Location
Constants representing the location of a point relative to a geometry.
Definition: Location.h:32
Basic namespace for all GEOS functionalities.
Definition: geos.h:39