22 #ifndef GEOS_GEOMGRAPH_NODE_H 23 #define GEOS_GEOMGRAPH_NODE_H 25 #include <geos/export.h> 26 #include <geos/geomgraph/GraphComponent.h> 27 #include <geos/geom/Coordinate.h> 30 #include <geos/geomgraph/EdgeEndStar.h> 31 #include <geos/geomgraph/EdgeEnd.h> 34 #include <geos/inline.h> 41 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class 47 class IntersectionMatrix;
63 using GraphComponent::setLabel;
67 friend std::ostream& operator<< (std::ostream& os,
const Node& node);
77 virtual bool isIsolated()
const;
84 virtual void mergeLabel(
const Node& n);
93 virtual void mergeLabel(
const Label& label2);
95 virtual void setLabel(
int argIndex,
int onLocation);
101 virtual void setLabelBoundary(
int argIndex);
111 virtual int computeMergedLocation(
const Label& label2,
int eltIndex);
113 virtual std::string print();
115 virtual const std::vector<double> &getZ()
const;
117 virtual void addZ(
double);
130 virtual bool isIncidentEdgeInResult()
const;
134 void testInvariant()
const;
147 std::vector<double> zvals;
153 std::ostream& operator<< (std::ostream& os,
const Node& node);
156 Node::testInvariant()
const 163 for (EdgeEndStar::iterator
164 it=edges->begin(), itEnd=edges->end();
169 assert(e->getCoordinate().equals2D(coord));
173 #if 0 // We can't rely on numerical stability with FP computations 175 double ztot_check=0.0;
176 for (std::vector<double>::const_iterator
177 i = zvals.begin(), e = zvals.end();
183 assert(ztot_check == ztot);
201 #endif // ifndef GEOS_GEOMGRAPH_NODE_H A EdgeEndStar is an ordered list of EdgeEnds around a node.
Definition: EdgeEndStar.h:63
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:60
Implementation of Dimensionally Extended Nine-Intersection Model (DE-9IM) matrix. ...
Definition: IntersectionMatrix.h:51
Models the end of an edge incident on a node.
Definition: EdgeEnd.h:56
A Label indicates the topological relationship of a component of a topology graph to a given Geometry...
Definition: Label.h:57
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:25
Definition: geomgraph/Node.h:62
A GraphComponent is the parent class for the objects' that form a graph.
Definition: geomgraph/GraphComponent.h:47
virtual void computeIM(geom::IntersectionMatrix &)
Basic nodes do not compute IMs.
Definition: geomgraph/Node.h:143