next up previous contents index
Next: Pre- and Postconditions Up: SPQR-Trees Previous: Skeletons ( Skeleton )   Contents   Index


Pertinent Graphs ( PertinentGraph )

Definition

The class PertinentGraph represents the pertinent graph G(v$\scriptstyle \protectT$) of a node v$\scriptstyle \protectT$ in an SPQR-tree $ \protectT$ with original graph G.

The expansion graph E(e) of a virtual skeleton edge e is the skeleton graph of the twin e' of e without e', where each virtual edge ev again is replaced by its expansion graph E(ev). The pertinent graph G(v$\scriptstyle \protectT$) of a tree node v$\scriptstyle \protectT$ is obtained from the skeleton S of v$\scriptstyle \protectT$, where each edge except for the reference edge of S is replaced by its expansion graph. Hence, if v$\scriptstyle \protectT$ is not the root node of $ \protectT$, all but one edge (and its reversal) in G(v$\scriptstyle \protectT$) correspond to real edges, otherwise all edges correspond to real edges.

The underlying graph, which is returned by get_graph(), represents a map, that is, for each edge (u, v) also the reversal (v, u) exists. If P is the pertinent graph of a PlanarSPQRTree, the underlying graph is a planar map, whose embedding is implied by the embeddings of the skeletons of $ \protectT$.

#include < AGD/PertinentGraph.h >

Creation

Pertinent graphs are created by the pertinent_graph() function of SPQRTree.

PertinentGraph P creates an empty instance of type PertinentGraph.

Operations

leda_node P.tree_node() returns the tree node v$\scriptstyle \protectT$ in $ \protectT$ whose pertinent graph is P.

leda_graph& P.get_graph() returns a reference to G(v$\scriptstyle \protectT$).

leda_edge P.reference_edge() returns the edge in G(v$\scriptstyle \protectT$) that corresponds to the reference edge in skeleton of v$\scriptstyle \protectT$ if v$\scriptstyle \protectT$ is not the root of $ \protectT$, nil otherwise.

leda_edge P.skeleton_reference_edge()
    returns the reference edge in skeleton of v$\scriptstyle \protectT$. Notice that this edge may differ from the current reference edge in skeleton of v$\scriptstyle \protectT$ if $ \protectT$ has been rerooted after the construction of P.

leda_node P.original(leda_node v) returns the vertex in G that corresponds to v. Precondition: v $ \in$ G(v$\scriptstyle \protectT$)

leda_edge P.original(leda_edge e) returns the edge in G that corresponds to e, or nil if e is the reference edge (or its reversal). Precondition: e $ \in$ G(v$\scriptstyle \protectT$)

Implementation

All operations take constant time. The data structure uses $ \protectO$(| G(v$\scriptstyle \protectT$)|) space.


next up previous contents index
Next: Pre- and Postconditions Up: SPQR-Trees Previous: Skeletons ( Skeleton )   Contents   Index

© Copyright 1998-2001, Algorithmic Solutions Software GmbH. All rights reserved.
2001-08-13