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)
62class GEOS_DLL Node:
public GraphComponent {
63using 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);
95 virtual void setLabel(
int argIndex,
int onLocation);
113 virtual std::string print();
115 virtual const std::vector<double> &getZ()
const;
117 virtual void addZ(
double);
134 void testInvariant()
const;
147 std::vector<double> zvals;
153std::ostream& operator<< (std::ostream& os,
const Node& node);
156Node::testInvariant()
const
163 for (EdgeEndStar::iterator
164 it=edges->begin(), itEnd=edges->end();
169 assert(e->getCoordinate().equals2D(coord));
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);
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
A EdgeEndStar is an ordered list of EdgeEnds around a node.
Definition EdgeEndStar.h:63
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
Definition geomgraph/Node.h:62
virtual void setLabelBoundary(int argIndex)
Updates the label of a node to BOUNDARY, obeying the mod-2 boundaryDetermination rule.
virtual void mergeLabel(const Label &label2)
To merge labels for two nodes, the merged location for each LabelElement is computed.
virtual int computeMergedLocation(const Label &label2, int eltIndex)
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 computeIM(geom::IntersectionMatrix &)
Basic nodes do not compute IMs.
Definition geomgraph/Node.h:143
Contains the Geometry interface hierarchy and supporting classes.
Definition IndexedNestedRingTester.h:26
Contains classes that implement topology graphs.
Definition IndexedNestedRingTester.h:34
Basic namespace for all GEOS functionalities.
Definition IndexedNestedRingTester.h:25