GEOS 3.14.0dev
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
geos::planargraph::Subgraph Class Reference

A subgraph of a PlanarGraph. More...

#include <Subgraph.h>

Public Member Functions

 Subgraph (PlanarGraph &parent)
 Creates a new subgraph of the given PlanarGraph.
 
PlanarGraphgetParent () const
 Gets the PlanarGraph which this subgraph is part of.
 
std::pair< std::set< Edge * >::iterator, bool > add (Edge *e)
 Adds an Edge to the subgraph.
 
std::vector< constDirectedEdge * >::iterator getDirEdgeBegin ()
 Returns an iterator over the DirectedEdge in this graph, in the order in which they were added.
 
std::set< Edge * >::iterator edgeBegin ()
 Returns an iterator over the Edges in this graph, in the order in which they were added.
 
std::set< Edge * >::iterator edgeEnd ()
 
NodeMap::container::iterator nodeBegin ()
 Returns a iterators over the planar NodeMap::container in this graph.
 
NodeMap::container::const_iterator nodeEnd () const
 
NodeMap::container::iterator nodeEnd ()
 
NodeMap::container::const_iterator nodeBegin () const
 
bool contains (Edge *e)
 Tests whether an Edge is contained in this subgraph.
 

Protected Member Functions

 Subgraph (const Subgraph &other)=delete
 
Subgraphoperator= (const Subgraph &rhs)=delete
 

Protected Attributes

PlanarGraphparentGraph
 
std::set< Edge * > edges
 
std::vector< const DirectedEdge * > dirEdges
 
NodeMap nodeMap
 

Detailed Description

A subgraph of a PlanarGraph.

A subgraph may contain any subset of Edges from the parent graph. It will also automatically contain all DirectedEdges and Nodes associated with those edges. No new objects are created when edges are added - all associated components must already exist in the parent graph.

Note
Actually we'll be copying Coordinates in NodeMap. I guess that'll need to be changed soon.

Constructor & Destructor Documentation

◆ Subgraph()

geos::planargraph::Subgraph::Subgraph ( PlanarGraph parent)
inline

Creates a new subgraph of the given PlanarGraph.

Parameters
parentthe parent graph

Member Function Documentation

◆ add()

std::pair< std::set< Edge * >::iterator, bool > geos::planargraph::Subgraph::add ( Edge e)

Adds an Edge to the subgraph.

The associated DirectedEdges and Nodes are also added.

Parameters
ethe edge to add
Returns
a pair with first element being an iterator to the Edge in set and second element being a boolean value indicating whether the Edge has been inserted now or was already in the set.

◆ contains()

bool geos::planargraph::Subgraph::contains ( Edge e)
inline

Tests whether an Edge is contained in this subgraph.

Parameters
ethe edge to test
Returns
true if the edge is contained in this subgraph

◆ edgeBegin()

std::set< Edge * >::iterator geos::planargraph::Subgraph::edgeBegin ( )
inline

Returns an iterator over the Edges in this graph, in the order in which they were added.

Returns
an iterator over the edges
See also
Adding methods

◆ getDirEdgeBegin()

std::vector< constDirectedEdge * >::iterator geos::planargraph::Subgraph::getDirEdgeBegin ( )
inline

Returns an iterator over the DirectedEdge in this graph, in the order in which they were added.

Returns
an iterator over the directed edges
See also
Adding methods

◆ getParent()

PlanarGraph & geos::planargraph::Subgraph::getParent ( ) const
inline

Gets the PlanarGraph which this subgraph is part of.

Returns
the parent PlanarGraph

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