GEOS  3.9.1dev
Public Member Functions | Private Member Functions | Private Attributes | List of all members
geos::operation::relate::RelateNodeGraph Class Reference

Implements the simple graph of Nodes and geomgraph::EdgeEnd which is all that is required to determine topological relationships between Geometries. More...

#include <RelateNodeGraph.h>

Collaboration diagram for geos::operation::relate::RelateNodeGraph:
[legend]

Public Member Functions

 RelateNodeGraph ()
 
virtual ~RelateNodeGraph ()
 
geomgraph::NodeMap::containergetNodeMap ()
 
void build (geomgraph::GeometryGraph *geomGraph)
 
void computeIntersectionNodes (geomgraph::GeometryGraph *geomGraph, int argIndex)
 
void copyNodesAndLabels (geomgraph::GeometryGraph *geomGraph, int argIndex)
 
void insertEdgeEnds (std::vector< geomgraph::EdgeEnd * > *ee)
 

Private Member Functions

 RelateNodeGraph (const RelateNodeGraph &)=delete
 
RelateNodeGraphoperator= (const RelateNodeGraph &)=delete
 

Private Attributes

geomgraph::NodeMapnodes
 

Detailed Description

Implements the simple graph of Nodes and geomgraph::EdgeEnd which is all that is required to determine topological relationships between Geometries.

Also supports building a topological graph of a single Geometry, to allow verification of valid topology.

It is not necessary to create a fully linked PlanarGraph to determine relationships, since it is sufficient to know how the Geometries interact locally around the nodes. In fact, this is not even feasible, since it is not possible to compute exact intersection points, and hence the topology around those nodes cannot be computed robustly. The only Nodes that are created are for improper intersections; that is, nodes which occur at existing vertices of the Geometries. Proper intersections (e.g. ones which occur between the interior of line segments) have their topology determined implicitly, without creating a geomgraph::Node object to represent them.

Definition at line 68 of file RelateNodeGraph.h.

Constructor & Destructor Documentation

geos::operation::relate::RelateNodeGraph::RelateNodeGraph ( )
virtual geos::operation::relate::RelateNodeGraph::~RelateNodeGraph ( )
virtual
geos::operation::relate::RelateNodeGraph::RelateNodeGraph ( const RelateNodeGraph )
privatedelete

Member Function Documentation

void geos::operation::relate::RelateNodeGraph::build ( geomgraph::GeometryGraph geomGraph)
void geos::operation::relate::RelateNodeGraph::computeIntersectionNodes ( geomgraph::GeometryGraph geomGraph,
int  argIndex 
)
void geos::operation::relate::RelateNodeGraph::copyNodesAndLabels ( geomgraph::GeometryGraph geomGraph,
int  argIndex 
)
geomgraph::NodeMap::container& geos::operation::relate::RelateNodeGraph::getNodeMap ( )
void geos::operation::relate::RelateNodeGraph::insertEdgeEnds ( std::vector< geomgraph::EdgeEnd * > *  ee)
RelateNodeGraph& geos::operation::relate::RelateNodeGraph::operator= ( const RelateNodeGraph )
privatedelete

Member Data Documentation

geomgraph::NodeMap* geos::operation::relate::RelateNodeGraph::nodes
private

Definition at line 89 of file RelateNodeGraph.h.


The documentation for this class was generated from the following file: