#include <PolygonizeGraph.h>
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. |
The marked flag on DirectedEdge is used to indicate that a directed edge has be logically deleted from the graph.
void geos::operation::polygonize::PolygonizeGraph::addEdge | ( | const geom::LineString * | line | ) |
Add a LineString forming an edge of the polygon graph.
line | the line to add |
std::vector<EdgeRing*>* geos::operation::polygonize::PolygonizeGraph::getEdgeRings | ( | ) |
Computes the EdgeRings formed by the edges in this graph.
std::vector<const geom::LineString*>* geos::operation::polygonize::PolygonizeGraph::deleteCutEdges | ( | ) |
Finds and removes all cut edges from the graph.
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