Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

ogdf::EmbedderMaxFaceBiconnectedGraphsLayers< T > Class Template Reference

Embedder that maximizes the external face (plus layers approach). More...

#include <ogdf/planarity/embedder/EmbedderMaxFaceBiconnectedGraphsLayers.h>

+ Inheritance diagram for ogdf::EmbedderMaxFaceBiconnectedGraphsLayers< T >:

Static Public Member Functions

static void embed (Graph &G, adjEntry &adjExternal, const NodeArray< T > &nodeLength, const EdgeArray< T > &edgeLength, const node &n=nullptr)
 Embeds G by computing and extending a maximum face in G containing n. More...
 

Static Private Member Functions

static void adjEntryForNode (adjEntry &ae, ListIterator< adjEntry > &before, const StaticSPQRTree &spqrTree, NodeArray< bool > &treeNodeTreated, const node &mu, const node &leftNode, const NodeArray< T > &nodeLength, const NodeArray< EdgeArray< T >> &edgeLength, const NodeArray< T > &thickness, NodeArray< List< adjEntry >> &newOrder, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArraySource, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArrayTarget, const T &delta_u, const T &delta_d, adjEntry &adjExternal)
 
static void bottomUpThickness (const StaticSPQRTree &spqrTree, const node &mu, NodeArray< T > &thickness, const NodeArray< T > &nodeLength, const NodeArray< EdgeArray< T >> &edgeLength)
 
static void expandEdge (const StaticSPQRTree &spqrTree, NodeArray< bool > &treeNodeTreated, const node &mu, const node &leftNode, const NodeArray< T > &nodeLength, const NodeArray< EdgeArray< T >> &edgeLength, const NodeArray< T > &thickness, NodeArray< List< adjEntry >> &newOrder, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArraySource, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArrayTarget, const T &delta_u, const T &delta_d, adjEntry &adjExternal, const node &n=nullptr)
 
static void expandEdgePNode (const StaticSPQRTree &spqrTree, NodeArray< bool > &treeNodeTreated, const node &mu, const node &leftNode, const NodeArray< T > &nodeLength, const NodeArray< EdgeArray< T >> &edgeLength, const NodeArray< T > &thickness, NodeArray< List< adjEntry >> &newOrder, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArraySource, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArrayTarget, const T &delta_u, const T &delta_d, adjEntry &adjExternal)
 
static void expandEdgeRNode (const StaticSPQRTree &spqrTree, NodeArray< bool > &treeNodeTreated, const node &mu, const node &leftNode, const NodeArray< T > &nodeLength, const NodeArray< EdgeArray< T >> &edgeLength, const NodeArray< T > &thickness, NodeArray< List< adjEntry >> &newOrder, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArraySource, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArrayTarget, const T &delta_u, const T &delta_d, adjEntry &adjExternal, const node &n=nullptr)
 
static void expandEdgeSNode (const StaticSPQRTree &spqrTree, NodeArray< bool > &treeNodeTreated, const node &mu, const node &leftNode, const NodeArray< T > &nodeLength, const NodeArray< EdgeArray< T >> &edgeLength, const NodeArray< T > &thickness, NodeArray< List< adjEntry >> &newOrder, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArraySource, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArrayTarget, const T &delta_u, const T &delta_d, adjEntry &adjExternal)
 
static bool sssp (const Graph &G, const node &s, const EdgeArray< T > &length, NodeArray< T > &d)
 
- Static Private Member Functions inherited from ogdf::EmbedderMaxFaceBiconnectedGraphs< T >
static void compute (const Graph &G, const NodeArray< T > &nodeLength, const EdgeArray< T > &edgeLength, StaticSPQRTree *spqrTree, NodeArray< EdgeArray< T >> &edgeLengthSkel)
 Computes the component lengths of all virtual edges in spqrTree. More...
 
static T computeSize (const Graph &G, const node &n, const NodeArray< T > &nodeLength, const EdgeArray< T > &edgeLength)
 Returns the size of a maximum external face in G containing the node n. More...
 
static T computeSize (const Graph &G, const node &n, const NodeArray< T > &nodeLength, const EdgeArray< T > &edgeLength, StaticSPQRTree *spqrTree)
 Returns the size of a maximum external face in G containing the node n. More...
 
static T computeSize (const Graph &G, const node &n, const NodeArray< T > &nodeLength, const EdgeArray< T > &edgeLength, StaticSPQRTree *spqrTree, const NodeArray< EdgeArray< T >> &edgeLengthSkel)
 Returns the size of a maximum external face in G containing the node n. More...
 
static T computeSize (const Graph &G, const NodeArray< T > &nodeLength, const EdgeArray< T > &edgeLength)
 Returns the size of a maximum external face in G. More...
 
static T computeSize (const Graph &G, const NodeArray< T > &nodeLength, const EdgeArray< T > &edgeLength, StaticSPQRTree *spqrTree, NodeArray< EdgeArray< T >> &edgeLengthSkel)
 Returns the size of a maximum external face in G. More...
 
static void embed (Graph &G, adjEntry &adjExternal, const NodeArray< T > &nodeLength, const EdgeArray< T > &edgeLength, const node &n=nullptr)
 Embeds G by computing and extending a maximum face in G containing n. More...
 
static void adjEntryForNode (adjEntry &ae, ListIterator< adjEntry > &before, const StaticSPQRTree &spqrTree, NodeArray< bool > &treeNodeTreated, const node &mu, const node &leftNode, const NodeArray< T > &nodeLength, const NodeArray< EdgeArray< T >> &edgeLength, NodeArray< List< adjEntry >> &newOrder, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArraySource, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArrayTarget, adjEntry &adjExternal)
 
static void bottomUpTraversal (StaticSPQRTree &spqrTree, const node &mu, const NodeArray< T > &nodeLength, NodeArray< EdgeArray< T >> &edgeLength)
 Bottom up traversal of SPQR-tree computing the component length of all non-reference edges. More...
 
static void expandEdge (const StaticSPQRTree &spqrTree, NodeArray< bool > &treeNodeTreated, const node &mu, const node &leftNode, const NodeArray< T > &nodeLength, const NodeArray< EdgeArray< T >> &edgeLength, NodeArray< List< adjEntry >> &newOrder, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArraySource, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArrayTarget, adjEntry &adjExternal, const node &n=nullptr)
 
static void expandEdgePNode (const StaticSPQRTree &spqrTree, NodeArray< bool > &treeNodeTreated, const node &mu, const node &leftNode, const NodeArray< T > &nodeLength, const NodeArray< EdgeArray< T >> &edgeLength, NodeArray< List< adjEntry >> &newOrder, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArraySource, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArrayTarget, adjEntry &adjExternal)
 
static void expandEdgeRNode (const StaticSPQRTree &spqrTree, NodeArray< bool > &treeNodeTreated, const node &mu, const node &leftNode, const NodeArray< T > &nodeLength, const NodeArray< EdgeArray< T >> &edgeLength, NodeArray< List< adjEntry >> &newOrder, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArraySource, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArrayTarget, adjEntry &adjExternal, const node &n)
 
static void expandEdgeSNode (const StaticSPQRTree &spqrTree, NodeArray< bool > &treeNodeTreated, const node &mu, const node &leftNode, const NodeArray< T > &nodeLength, const NodeArray< EdgeArray< T >> &edgeLength, NodeArray< List< adjEntry >> &newOrder, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArraySource, NodeArray< ListIterator< adjEntry >> &adjBeforeNodeArrayTarget, adjEntry &adjExternal)
 
static T largestFaceContainingNode (const StaticSPQRTree &spqrTree, const node &mu, const node &n, const NodeArray< T > &nodeLength, const NodeArray< EdgeArray< T >> &edgeLength)
 Computes the size of a maximum face in the skeleton graph of mu containing n. More...
 
static T largestFaceInSkeleton (const StaticSPQRTree &spqrTree, const node &mu, const NodeArray< T > &nodeLength, const NodeArray< EdgeArray< T >> &edgeLength)
 Computes the size of a maximum face in the skeleton graph of mu. More...
 
static void topDownTraversal (StaticSPQRTree &spqrTree, const node &mu, const NodeArray< T > &nodeLength, NodeArray< EdgeArray< T >> &edgeLength)
 Top down traversal of SPQR-tree computing the component length of all reference edges. More...
 

Detailed Description

template<class T>
class ogdf::EmbedderMaxFaceBiconnectedGraphsLayers< T >

Embedder that maximizes the external face (plus layers approach).

Precondition
Input graphs need to be biconnected.

See the paper "Graph Embedding with Minimum Depth and Maximum External Face" by C. Gutwenger and P. Mutzel (2004) for details. The algorithm for maximum external face is combined with the algorithm for maximum external layers which defines how to embed blocks into inner faces. See diploma thesis "Algorithmen zur Bestimmung von guten Graph-Einbettungen für orthogonale Zeichnungen" (in German) by Thorsten Kerkhof (2007) for details.

Definition at line 63 of file EmbedderMaxFaceBiconnectedGraphsLayers.h.

Member Function Documentation

◆ adjEntryForNode()

template<class T >
void ogdf::EmbedderMaxFaceBiconnectedGraphsLayers< T >::adjEntryForNode ( adjEntry ae,
ListIterator< adjEntry > &  before,
const StaticSPQRTree spqrTree,
NodeArray< bool > &  treeNodeTreated,
const node mu,
const node leftNode,
const NodeArray< T > &  nodeLength,
const NodeArray< EdgeArray< T >> &  edgeLength,
const NodeArray< T > &  thickness,
NodeArray< List< adjEntry >> &  newOrder,
NodeArray< ListIterator< adjEntry >> &  adjBeforeNodeArraySource,
NodeArray< ListIterator< adjEntry >> &  adjBeforeNodeArrayTarget,
const T &  delta_u,
const T &  delta_d,
adjEntry adjExternal 
)
staticprivate

(ae->theEdge() == referenceEdge)

(S.isVirtual(ae->theEdge()))

Definition at line 369 of file EmbedderMaxFaceBiconnectedGraphsLayers.h.

◆ bottomUpThickness()

template<class T >
void ogdf::EmbedderMaxFaceBiconnectedGraphsLayers< T >::bottomUpThickness ( const StaticSPQRTree spqrTree,
const node mu,
NodeArray< T > &  thickness,
const NodeArray< T > &  nodeLength,
const NodeArray< EdgeArray< T >> &  edgeLength 
)
staticprivate

Definition at line 1377 of file EmbedderMaxFaceBiconnectedGraphsLayers.h.

◆ embed()

template<class T >
void ogdf::EmbedderMaxFaceBiconnectedGraphsLayers< T >::embed ( Graph G,
adjEntry adjExternal,
const NodeArray< T > &  nodeLength,
const EdgeArray< T > &  edgeLength,
const node n = nullptr 
)
static

Embeds G by computing and extending a maximum face in G containing n.

Parameters
Gis the original graph.
adjExternalis assigned an adjacency entry of the external face.
nodeLengthstores for each vertex in G its length.
edgeLengthstores for each edge in G its length.
nis a vertex of the original graph. If n is given, a maximum face containing n is computed, otherwise any maximum face.

Definition at line 292 of file EmbedderMaxFaceBiconnectedGraphsLayers.h.

◆ expandEdge()

template<class T >
void ogdf::EmbedderMaxFaceBiconnectedGraphsLayers< T >::expandEdge ( const StaticSPQRTree spqrTree,
NodeArray< bool > &  treeNodeTreated,
const node mu,
const node leftNode,
const NodeArray< T > &  nodeLength,
const NodeArray< EdgeArray< T >> &  edgeLength,
const NodeArray< T > &  thickness,
NodeArray< List< adjEntry >> &  newOrder,
NodeArray< ListIterator< adjEntry >> &  adjBeforeNodeArraySource,
NodeArray< ListIterator< adjEntry >> &  adjBeforeNodeArrayTarget,
const T &  delta_u,
const T &  delta_d,
adjEntry adjExternal,
const node n = nullptr 
)
staticprivate

Definition at line 446 of file EmbedderMaxFaceBiconnectedGraphsLayers.h.

◆ expandEdgePNode()

template<class T >
void ogdf::EmbedderMaxFaceBiconnectedGraphsLayers< T >::expandEdgePNode ( const StaticSPQRTree spqrTree,
NodeArray< bool > &  treeNodeTreated,
const node mu,
const node leftNode,
const NodeArray< T > &  nodeLength,
const NodeArray< EdgeArray< T >> &  edgeLength,
const NodeArray< T > &  thickness,
NodeArray< List< adjEntry >> &  newOrder,
NodeArray< ListIterator< adjEntry >> &  adjBeforeNodeArraySource,
NodeArray< ListIterator< adjEntry >> &  adjBeforeNodeArrayTarget,
const T &  delta_u,
const T &  delta_d,
adjEntry adjExternal 
)
staticprivate

(S.isVirtual(e))

(delta_u + sum_E_a <= delta_d + sum_E_b)

Definition at line 590 of file EmbedderMaxFaceBiconnectedGraphsLayers.h.

◆ expandEdgeRNode()

template<class T >
void ogdf::EmbedderMaxFaceBiconnectedGraphsLayers< T >::expandEdgeRNode ( const StaticSPQRTree spqrTree,
NodeArray< bool > &  treeNodeTreated,
const node mu,
const node leftNode,
const NodeArray< T > &  nodeLength,
const NodeArray< EdgeArray< T >> &  edgeLength,
const NodeArray< T > &  thickness,
NodeArray< List< adjEntry >> &  newOrder,
NodeArray< ListIterator< adjEntry >> &  adjBeforeNodeArraySource,
NodeArray< ListIterator< adjEntry >> &  adjBeforeNodeArrayTarget,
const T &  delta_u,
const T &  delta_d,
adjEntry adjExternal,
const node n = nullptr 
)
staticprivate

Definition at line 865 of file EmbedderMaxFaceBiconnectedGraphsLayers.h.

◆ expandEdgeSNode()

template<class T >
void ogdf::EmbedderMaxFaceBiconnectedGraphsLayers< T >::expandEdgeSNode ( const StaticSPQRTree spqrTree,
NodeArray< bool > &  treeNodeTreated,
const node mu,
const node leftNode,
const NodeArray< T > &  nodeLength,
const NodeArray< EdgeArray< T >> &  edgeLength,
const NodeArray< T > &  thickness,
NodeArray< List< adjEntry >> &  newOrder,
NodeArray< ListIterator< adjEntry >> &  adjBeforeNodeArraySource,
NodeArray< ListIterator< adjEntry >> &  adjBeforeNodeArrayTarget,
const T &  delta_u,
const T &  delta_d,
adjEntry adjExternal 
)
staticprivate

Definition at line 477 of file EmbedderMaxFaceBiconnectedGraphsLayers.h.

◆ sssp()

template<class T >
bool ogdf::EmbedderMaxFaceBiconnectedGraphsLayers< T >::sssp ( const Graph G,
const node s,
const EdgeArray< T > &  length,
NodeArray< T > &  d 
)
staticprivate

Definition at line 1596 of file EmbedderMaxFaceBiconnectedGraphsLayers.h.


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