GEOS: geos::geomgraph::GeometryGraph Class Reference

GEOS 3.5.0

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Public Member Functions | Static Public Member Functions | List of all members
geos::geomgraph::GeometryGraph Class Reference

`#include <GeometryGraph.h>`

Inheritance diagram for geos::geomgraph::GeometryGraph:

## Public Member Functions
| GeometryGraph (int newArgIndex, const geom::Geometry *newParentGeom)
| GeometryGraph (int newArgIndex, const geom::Geometry *newParentGeom, const algorithm::BoundaryNodeRule &boundaryNodeRule)
const geom::Geometry * | getGeometry ()
std::vector< Node * > * | getBoundaryNodes ()
| Returned object is owned by this GeometryGraph.
void | getBoundaryNodes (std::vector< Node * > &bdyNodes)
geom::CoordinateSequence * | getBoundaryPoints ()
| Returned object is owned by this GeometryGraph.
Edge * | findEdge (const geom::LineString *line)
void | computeSplitEdges (std::vector< Edge * > *edgelist)
void | addEdge (Edge *e)
void | addPoint (geom::Coordinate &pt)
index::SegmentIntersector * | computeSelfNodes (algorithm::LineIntersector *li, bool computeRingSelfNodes, const geom::Envelope *env=0)
| Compute self-nodes, taking advantage of the Geometry type to minimize the number of intersection tests. (E.g. rings are not tested for self-intersection, since they are assumed to be valid). More...
index::SegmentIntersector * | computeSelfNodes (algorithm::LineIntersector &li, bool computeRingSelfNodes, const geom::Envelope *env=0)
index::SegmentIntersector * | computeEdgeIntersections (GeometryGraph *g, algorithm::LineIntersector *li, bool includeProper, const geom::Envelope *env=0)
std::vector< Edge * > * | getEdges ()
bool | hasTooFewPoints ()
const geom::Coordinate & | getInvalidPoint ()
const algorithm::BoundaryNodeRule & | getBoundaryNodeRule () const
Public Member Functions inherited from geos::geomgraph::PlanarGraph
| PlanarGraph (const NodeFactory &nodeFact)
virtual std::vector< Edge * >::iterator | getEdgeIterator ()
virtual std::vector< EdgeEnd * > * | getEdgeEnds ()
virtual bool | isBoundaryNode (int geomIndex, const geom::Coordinate &coord)
virtual void | add (EdgeEnd *e)
virtual NodeMap::iterator | getNodeIterator ()
virtual void | getNodes (std::vector< Node * > &)
virtual Node * | addNode (Node *node)
virtual Node * | addNode (const geom::Coordinate &coord)
virtual Node * | find (geom::Coordinate &coord)
virtual void | addEdges (const std::vector< Edge * > &edgesToAdd)
| Add a set of edges to the graph. For each edge two DirectedEdges will be created. DirectedEdges are NOT linked by this method.
virtual void | linkResultDirectedEdges ()
virtual void | linkAllDirectedEdges ()
virtual EdgeEnd * | findEdgeEnd (Edge *e)
| Returns the EdgeEnd which has edge e as its base edge (MD 18 Feb 2002 - this should return a pair of edges) More...
virtual Edge * | findEdge (const geom::Coordinate &p0, const geom::Coordinate &p1)
| Returns the edge whose first two coordinates are p0 and p1. More...
virtual Edge * | findEdgeInSameDirection (const geom::Coordinate &p0, const geom::Coordinate &p1)
| Returns the edge which starts at p0 and whose first segment is parallel to p1. More...
virtual std::string | printEdges ()
virtual NodeMap * | getNodeMap ()

## Static Public Member Functions
static bool | isInBoundary (int boundaryCount)
static int | determineBoundary (int boundaryCount)
static int | determineBoundary (const algorithm::BoundaryNodeRule &boundaryNodeRule, int boundaryCount)
Static Public Member Functions inherited from geos::geomgraph::PlanarGraph
template<typename It >
static void | linkResultDirectedEdges (It first, It last)
| For nodes in the collection (first..last), link the DirectedEdges at the node that are in the result. More...

## Additional Inherited Members
Protected Member Functions inherited from geos::geomgraph::PlanarGraph
virtual void | insertEdge (Edge *e)
Protected Attributes inherited from geos::geomgraph::PlanarGraph
std::vector< Edge * > * | edges
NodeMap * | nodes
std::vector< EdgeEnd * > * | edgeEndList

## Detailed Description

A GeometryGraph is a graph that models a given Geometry

## Member Function Documentation

index::SegmentIntersector* geos::geomgraph::GeometryGraph::computeSelfNodes | ( | algorithm::LineIntersector * | li,
|  | bool | computeRingSelfNodes,
|  | const geom::Envelope * | env = `0`
| ) |  |
| inline

Compute self-nodes, taking advantage of the Geometry type to minimize the number of intersection tests. (E.g. rings are not tested for self-intersection, since they are assumed to be valid).

Parameters

  li | the LineIntersector to use
  computeRingSelfNodes | if <false>, intersection checks are optimized to not test rings for self-intersection

Returns
  the SegmentIntersector used, containing information about the intersections found

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

- GeometryGraph.h