geos::operation::buffer::BufferSubgraph Class Reference

A connected subset of the graph of DirectedEdges and geomgraph::Node. More...

#include <BufferSubgraph.h>

List of all members.

Public Member Functions

 BufferSubgraph (algorithm::CGAlgorithms *cga=NULL)
 algorithm::CGAlgorithms arg kept for backward-compatibility. It is unused.
std::vector
< geomgraph::DirectedEdge * > * 
getDirectedEdges ()
std::vector< geomgraph::Node * > * getNodes ()
geom::CoordinategetRightmostCoordinate ()
 Gets the rightmost coordinate in the edges of the subgraph.
void create (geomgraph::Node *node)
 Creates the subgraph consisting of all edges reachable from this node.
void computeDepth (int outsideDepth)
void findResultEdges ()
 Find all edges whose depths indicates that they are in the result area(s).
int compareTo (BufferSubgraph *)
 BufferSubgraphs are compared on the x-value of their rightmost Coordinate.
geom::EnvelopegetEnvelope ()
 Computes the envelope of the edges in the subgraph. The envelope is cached after being computed.

Friends

std::ostream & operator<< (std::ostream &os, const BufferSubgraph &bs)


Detailed Description

A connected subset of the graph of DirectedEdges and geomgraph::Node.

Its edges will generate either


Member Function Documentation

void geos::operation::buffer::BufferSubgraph::create ( geomgraph::Node *  node  ) 

Creates the subgraph consisting of all edges reachable from this node.

Finds the edges in the graph and the rightmost coordinate.

Parameters:
node a node to start the graph traversal from

void geos::operation::buffer::BufferSubgraph::findResultEdges (  ) 

Find all edges whose depths indicates that they are in the result area(s).

Since we want polygon shells to be oriented CW, choose dirEdges with the interior of the result on the RHS. Mark them as being in the result. Interior Area edges are the result of dimensional collapses. They do not form part of the result area boundary.

int geos::operation::buffer::BufferSubgraph::compareTo ( BufferSubgraph  ) 

BufferSubgraphs are compared on the x-value of their rightmost Coordinate.

This defines a partial ordering on the graphs such that:

g1 >= g2 <==> Ring(g2) does not contain Ring(g1)

where Polygon(g) is the buffer polygon that is built from g.

This relationship is used to sort the BufferSubgraphs so that shells are guaranteed to be built before holes.

geom::Envelope* geos::operation::buffer::BufferSubgraph::getEnvelope (  ) 

Computes the envelope of the edges in the subgraph. The envelope is cached after being computed.

Returns:
the envelope of the graph.


The documentation for this class was generated from the following file:
Generated on Fri Mar 27 04:53:49 2009 for GEOS by  doxygen 1.5.4