geos::operation::polygonize::PolygonizeGraph Class Reference

Represents a planar graph of edges that can be used to compute a polygonization, and implements the algorithms to compute the EdgeRings formed by the graph. More...

#include <PolygonizeGraph.h>

Inheritance diagram for geos::operation::polygonize::PolygonizeGraph:

geos::planargraph::PlanarGraph

List of all members.

Public Member Functions

 PolygonizeGraph (const geom::GeometryFactory *newFactory)
 Create a new polygonization graph.
 ~PolygonizeGraph ()
 Destroy a polygonization graph.
void addEdge (const geom::LineString *line)
 Add a LineString forming an edge of the polygon graph.
std::vector< EdgeRing * > * getEdgeRings ()
 Computes the EdgeRings formed by the edges in this graph.
std::vector< const
geom::LineString * > * 
deleteCutEdges ()
 Finds and removes all cut edges from the graph.
std::vector< const
geom::LineString * > * 
deleteDangles ()
 Marks all edges from the graph which are "dangles".

Static Public Member Functions

static void deleteAllEdges (planargraph::Node *node)
 Deletes all edges at a node.


Detailed Description

Represents a planar graph of edges that can be used to compute a polygonization, and implements the algorithms to compute the EdgeRings formed by the graph.

The marked flag on DirectedEdge is used to indicate that a directed edge has be logically deleted from the graph.


Member Function Documentation

void geos::operation::polygonize::PolygonizeGraph::addEdge ( const geom::LineString line  ) 

Add a LineString forming an edge of the polygon graph.

Parameters:
line the line to add

std::vector<EdgeRing*>* geos::operation::polygonize::PolygonizeGraph::getEdgeRings (  ) 

Computes the EdgeRings formed by the edges in this graph.

Returns:
a list of the EdgeRing found by the polygonization process.

std::vector<const geom::LineString*>* geos::operation::polygonize::PolygonizeGraph::deleteCutEdges (  ) 

Finds and removes all cut edges from the graph.

Returns:
a list of the LineString forming the removed cut edges

std::vector<const geom::LineString*>* geos::operation::polygonize::PolygonizeGraph::deleteDangles (  ) 

Marks all edges from the graph which are "dangles".

Dangles are which are incident on a node with degree 1. This process is recursive, since removing a dangling edge may result in another edge becoming a dangle. In order to handle large recursion depths efficiently, an explicit recursion stack is used

Returns:
a List containing the LineStrings that formed dangles


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