GEOS
3.9.1dev
|
#include <OverlayGraph.h>
Public Member Functions | |
OverlayGraph () | |
OverlayGraph (const OverlayGraph &g)=delete | |
OverlayGraph & | operator= (const OverlayGraph &g)=delete |
OverlayEdge * | addEdge (Edge *edge) |
std::vector< OverlayEdge * > & | getEdges () |
std::vector< OverlayEdge * > | getNodeEdges () |
OverlayEdge * | getNodeEdge (const Coordinate &nodePt) const |
std::vector< OverlayEdge * > | getResultAreaEdges () |
OverlayLabel * | createOverlayLabel (const Edge *edge) |
Private Member Functions | |
OverlayEdge * | createEdgePair (const CoordinateSequence *pts, OverlayLabel *lbl) |
OverlayEdge * | createOverlayEdge (const CoordinateSequence *pts, OverlayLabel *lbl, bool direction) |
void | insert (OverlayEdge *e) |
Private Attributes | |
std::map< Coordinate, OverlayEdge * > | nodeMap |
std::vector< OverlayEdge * > | edges |
std::deque< OverlayEdge > | ovEdgeQue |
std::deque< OverlayLabel > | ovLabelQue |
std::vector< std::unique_ptr< const geom::CoordinateSequence > > | csQue |
Friends | |
std::ostream & | operator<< (std::ostream &os, const OverlayGraph &og) |
A planar graph of OverlayEdge, representing the topology resulting from an overlay operation. Each source Edge is represented by two OverlayEdges, with opposite orientation. A single OverlayLabel is created for each symmetric pair of OverlayEdges.
Definition at line 54 of file OverlayGraph.h.
geos::operation::overlayng::OverlayGraph::OverlayGraph | ( | ) |
Creates a new graph for a set of noded, labelled Edges.
|
delete |
OverlayEdge* geos::operation::overlayng::OverlayGraph::addEdge | ( | Edge * | edge | ) |
Adds an edge between the coordinates orig and dest to this graph. Only valid edges can be added (in particular, zero-length segments cannot be added)
|
private |
Create and add HalfEdge pairs to map and vector containers, using local std::deque storage for objects.
|
private |
Create a single OverlayEdge in local std::deque storage, and return the pointer.
OverlayLabel* geos::operation::overlayng::OverlayGraph::createOverlayLabel | ( | const Edge * | edge | ) |
Create a single OverlayLabel in local std::deque storage and return a pointer to the stored object.
std::vector<OverlayEdge*>& geos::operation::overlayng::OverlayGraph::getEdges | ( | ) |
Gets the set of edges in this graph. Only one of each symmetric pair of OverlayEdges is included. The opposing edge can be found by using OverlayEdge#sym().
OverlayEdge* geos::operation::overlayng::OverlayGraph::getNodeEdge | ( | const Coordinate & | nodePt | ) | const |
Gets an edge originating at the given node point.
std::vector<OverlayEdge*> geos::operation::overlayng::OverlayGraph::getNodeEdges | ( | ) |
Gets the collection of edges representing the nodes in this graph. For each star of edges originating at a node a single representative edge is included. The other edges around the node can be found by following the next and prev links.
std::vector<OverlayEdge*> geos::operation::overlayng::OverlayGraph::getResultAreaEdges | ( | ) |
Gets the representative edges marked as being in the result area.
|
private |
|
delete |
|
friend |
|
private |
Definition at line 66 of file OverlayGraph.h.
|
private |
Definition at line 60 of file OverlayGraph.h.
|
private |
Definition at line 59 of file OverlayGraph.h.
|
private |
Definition at line 63 of file OverlayGraph.h.
|
private |
Definition at line 64 of file OverlayGraph.h.