GEOS 3.6.2
geos::geomgraph::GeometryGraph Class Reference

#include <GeometryGraph.h>

Inheritance diagram for geos::geomgraph::GeometryGraph:
geos::geomgraph::PlanarGraph

Public Member Functions

 GeometryGraph (int newArgIndex, const geom::Geometry *newParentGeom)
 GeometryGraph (int newArgIndex, const geom::Geometry *newParentGeom, const algorithm::BoundaryNodeRule &boundaryNodeRule)
const geom::GeometrygetGeometry ()
std::vector< Node * > * getBoundaryNodes ()
 Returned object is owned by this GeometryGraph.
void getBoundaryNodes (std::vector< Node * > &bdyNodes)
geom::CoordinateSequencegetBoundaryPoints ()
 Returned object is owned by this GeometryGraph.
EdgefindEdge (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).
index::SegmentIntersector * computeSelfNodes (algorithm::LineIntersector *li, bool computeRingSelfNodes, bool isDoneIfProperInt, const geom::Envelope *env=0)
index::SegmentIntersector * computeSelfNodes (algorithm::LineIntersector &li, bool computeRingSelfNodes, const geom::Envelope *env=0)
index::SegmentIntersector * computeSelfNodes (algorithm::LineIntersector &li, bool computeRingSelfNodes, bool isDoneIfProperInt, 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::CoordinategetInvalidPoint ()
const algorithm::BoundaryNodeRulegetBoundaryNodeRule () 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 NodeMap::iterator getNodeIterator ()
virtual void getNodes (std::vector< Node * > &)
virtual NodeaddNode (Node *node)
virtual NodeaddNode (const geom::Coordinate &coord)
virtual Nodefind (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 EdgeEndfindEdgeEnd (Edge *e)
 Returns the EdgeEnd which has edge e as its base edge (MD 18 Feb 2002 - this should return a pair of edges).
virtual EdgefindEdgeInSameDirection (const geom::Coordinate &p0, const geom::Coordinate &p1)
 Returns the edge which starts at p0 and whose first segment is parallel to p1.
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.

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

◆ computeSelfNodes()

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
lithe LineIntersector to use
computeRingSelfNodesif <false>, intersection checks are optimized to not test rings for self-intersection
Returns
the SegmentIntersector used, containing information about the intersections found

References computeSelfNodes().

Referenced by computeSelfNodes().


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