Planar graph embedding with minimum block-nesting depth for given embedded blocks. More...
#include <ogdf/planarity/EmbedderMinDepthPiTa.h>
Inheritance diagram for ogdf::EmbedderMinDepthPiTa:Public Member Functions | |
| EmbedderMinDepthPiTa () | |
| void | call (Graph &G, adjEntry &adjExternal) |
| Computes an embedding of G. | |
| bool | useExtendedDepthDefinition () const |
| void | useExtendedDepthDefinition (bool b) |
Public Member Functions inherited from ogdf::EmbedderModule | |
| EmbedderModule () | |
| Initializes an embedder module. | |
| virtual | ~EmbedderModule () |
| void | operator() (Graph &G, adjEntry &adjExternal) |
| Calls the embedder algorithm for planarized representation PG. | |
Public Member Functions inherited from ogdf::Module | |
| Module () | |
| Initializes a module. | |
| virtual | ~Module () |
Public Member Functions inherited from ogdf::Timeouter | |
| Timeouter () | |
| timeout is turned of by default | |
| Timeouter (double t) | |
| timeout is set to the given value (seconds) | |
| Timeouter (bool t) | |
| timeout is turned off (false) or on (true) (with 0 second) | |
| Timeouter (const Timeouter &t) | |
| ~Timeouter () | |
| bool | isTimeLimit () const |
| returns whether any time limit is set or not | |
| void | timeLimit (double t) |
| sets the time limit for the call (in seconds); <0 means no limit. | |
| void | timeLimit (bool t) |
| shorthand to turn timelimit off or on (with 0 seconds) | |
| double | timeLimit () const |
| returns the current time limit for the call | |
Private Member Functions | |
| int | computeBlockCutfaceTreeEdgeLengths (const node &n) |
| Computes recursively edge lengths for the block-cutface tree. The length of an edge from n to a leaf is 1, from n' to n 2 etc. | |
| node | computeBlockMapping (const node &bDG, const node &parent, List< node > &blocksNodes, List< node > &childBlocks) |
| Computes for a block bDG of the dual graph the associated block in the original graph. | |
| void | computeTdiam (const node &n) |
| Computes recursively the diametral tree. | |
| void | deleteDummyNodes (Graph &G, adjEntry &adjExternal) |
| Deletes inserted dummy nodes. If adjExternal is an adjacency entry of a dummy edge it is reset. | |
| int | depthBlock (const node &bT) |
| Computes the depth of an embedding Gamma(B). | |
| int | depthCutvertex (const node &cT) |
| Computes the depth of an embedding Gamma(c). | |
| int | eccentricityBottomUp (const node &nT) |
| Computes the eccentricity of a node nT in the block-cutface tree to all nodes further down in the tree and recursively the eccentricity to all nodes yet further down its children. | |
| void | eccentricityTopDown (const node &nT) |
| Computes the eccentricity of a node nT in the block-cutface tree and recursively the eccentricity of its children. | |
| void | embedBlocks (const node &bT, const node &cH) |
| Computes recursively an embedding for every block by using the planarEmbed function. | |
| void | embedBlockVertex (const node &bT, const node &parent_cT) |
| Computes entries in newOrder for nodes in a block. | |
| void | embedCutVertex (const node &vT, bool root=false) |
| Computes entry in newOrder for a cutvertex. | |
| void | invertPath (Graph &G, const node &n, const edge &e) |
| Directs all edges to n and recursively all edges of its children - except the edge to n - to the child. | |
Planar graph embedding with minimum block-nesting depth for given embedded blocks.
For details see the paper "Minimum Depth Graph Drawing" by M. Pizzonia and R. Tamassia.
Definition at line 62 of file EmbedderMinDepthPiTa.h.
|
inline |
Definition at line 66 of file EmbedderMinDepthPiTa.h.
Computes an embedding of G.
| G | is the original graph. |
| adjExternal | is assigned an adjacency entry on the external face. |
Implements ogdf::EmbedderModule.
|
private |
Computes recursively edge lengths for the block-cutface tree. The length of an edge from n to a leaf is 1, from n' to n 2 etc.
| n | is a node in the block-cutface tree. |
|
private |
Computes for a block bDG of the dual graph the associated block in the original graph.
| bDG | is a node in the block-cutface tree. |
| parent | is the parent of bDG in the block-cutface tree. |
| blocksNodes | is assigned a list containing all nodes of the original graph of the associated block of bDG. |
| childBlocks |
|
private |
Computes recursively the diametral tree.
| n | is a node in the block-cutface tree. |
Deletes inserted dummy nodes. If adjExternal is an adjacency entry of a dummy edge it is reset.
| G | is the graph. |
| adjExternal | is an adjacency entry on the external face. |
|
private |
Computes the depth of an embedding Gamma(B).
| bT | is a block-node of the BC-tree. |
|
private |
Computes the depth of an embedding Gamma(c).
| cT | is a cutvertex-node of the BC-tree. |
|
private |
Computes the eccentricity of a node nT in the block-cutface tree to all nodes further down in the tree and recursively the eccentricity to all nodes yet further down its children.
| nT | is a node in the block-cutface tree. |
|
private |
Computes the eccentricity of a node nT in the block-cutface tree and recursively the eccentricity of its children.
| nT | is a node in the block-cutface tree. |
Computes recursively an embedding for every block by using the planarEmbed function.
| bT | is a block node in the BC-tree. |
| cH | is a node of bT in the auxiliary graph. |
|
private |
Computes entries in newOrder for nodes in a block.
| bT | is a node in the BC-tree. |
| parent_cT | is a node in the BC-tree. |
|
private |
Computes entry in newOrder for a cutvertex.
| vT | is a cut vertex node in the BC-tree. |
| root | is true if vT is the root node of the block-cutface tree. |
Directs all edges to n and recursively all edges of its children - except the edge to n - to the child.
| G | is the tree with the inverted edges. |
| n | is a node in the original tree. |
| e | is an edge in the original tree. |
|
inline |
Definition at line 76 of file EmbedderMinDepthPiTa.h.
|
inline |
Definition at line 77 of file EmbedderMinDepthPiTa.h.
|
private |
the tree of pBCTree rooted at a cutface.
Definition at line 193 of file EmbedderMinDepthPiTa.h.
a mapping of blocks of the dual graph DG to its original graph G
Definition at line 280 of file EmbedderMinDepthPiTa.h.
|
private |
the block-cutface tree of G (only the graph, rooted at the external face
Definition at line 265 of file EmbedderMinDepthPiTa.h.
all blocks
Definition at line 205 of file EmbedderMinDepthPiTa.h.
a mapping of blocks of the graph G to its dual graph DG
Definition at line 277 of file EmbedderMinDepthPiTa.h.
this list is saving the dummy nodes which were inserted to produce a face in one-edge-blocks
Definition at line 298 of file EmbedderMinDepthPiTa.h.
a mapping of edges in blockG to the auxiliaryGraph of the BC-tree
Definition at line 217 of file EmbedderMinDepthPiTa.h.
|
private |
saving eccentricity for every node of the block-cutface tree
Definition at line 286 of file EmbedderMinDepthPiTa.h.
|
private |
saving second highest eccentricity for every node of the block-cutface tree
Definition at line 283 of file EmbedderMinDepthPiTa.h.
|
private |
Saving edge lengths for the block-cutface tree.
Definition at line 232 of file EmbedderMinDepthPiTa.h.
a mapping of edges in G_nT to edges in G
Definition at line 316 of file EmbedderMinDepthPiTa.h.
a mapping of edges in the auxiliaryGraph of the BC-tree to blockG
Definition at line 211 of file EmbedderMinDepthPiTa.h.
a mapping of edges in G to edges in G_nT
Definition at line 319 of file EmbedderMinDepthPiTa.h.
a list of all faces in G, a face in this list is containing a list of all adjacency entries
Definition at line 256 of file EmbedderMinDepthPiTa.h.
mapping faces in G to nodes in DG
Definition at line 259 of file EmbedderMinDepthPiTa.h.
given a node nT (cutvertex or block), G_nT is the subgraph of G associated with the subtree of the BC-tree T rooted at nT
Definition at line 307 of file EmbedderMinDepthPiTa.h.
adjacency entry of the external face of G_nT[nT]
Definition at line 322 of file EmbedderMinDepthPiTa.h.
|
private |
The knot of the diametrical tree
Definition at line 247 of file EmbedderMinDepthPiTa.h.
\(M_B = {cH \in B | m_B(cH) = m_B}\) with \(m_B = \max_{c \in B} m_B(c)\) and \(m_B(c) = \max {0} \cup {m_{c, B'} | c \in B', B' \neq B}\).
Definition at line 229 of file EmbedderMinDepthPiTa.h.
|
private |
an array saving the length for each edge in the BC-tree
Definition at line 223 of file EmbedderMinDepthPiTa.h.
|
private |
Definition at line 80 of file EmbedderMinDepthPiTa.h.
a mapping of nodes in bcTreePG to nodes in pBCTree->bcTree()
Definition at line 196 of file EmbedderMinDepthPiTa.h.
mapping of nodes from the graph blockCutfaceTree to the BC-tree m_blockCutfaceTree
Definition at line 271 of file EmbedderMinDepthPiTa.h.
Mapping nodes from block-cutvertex tree to the diametrical tree
Definition at line 241 of file EmbedderMinDepthPiTa.h.
a mapping of nodes in blockG to the auxiliaryGraph of the BC-tree
Definition at line 214 of file EmbedderMinDepthPiTa.h.
|
private |
mapping nodes in DG to faces in DG
Definition at line 262 of file EmbedderMinDepthPiTa.h.
saves for every node of G the new adjacency list
Definition at line 301 of file EmbedderMinDepthPiTa.h.
a mapping of nodes in G_nT to nodes in G
Definition at line 310 of file EmbedderMinDepthPiTa.h.
a mapping of nodes in the auxiliaryGraph of the BC-tree to blockG
Definition at line 208 of file EmbedderMinDepthPiTa.h.
mapping of nodes from the BC-tree m_blockCutfaceTree to the graph blockCutfaceTree
Definition at line 274 of file EmbedderMinDepthPiTa.h.
saving for each node in the block graphs its length
Definition at line 220 of file EmbedderMinDepthPiTa.h.
a mapping of nodes in pBCTree->bcTree() to nodes in bcTreePG
Definition at line 199 of file EmbedderMinDepthPiTa.h.
a mapping of nodes in G to nodes in G_nT
Definition at line 313 of file EmbedderMinDepthPiTa.h.
Mapping nodes from the diametrical tree to block-cutvertex tree
Definition at line 244 of file EmbedderMinDepthPiTa.h.
list of nodes which are only in one block which exists of extactly this node plus a cutvertex
Definition at line 292 of file EmbedderMinDepthPiTa.h.
|
private |
an adjacency entry on the external face
Definition at line 202 of file EmbedderMinDepthPiTa.h.
|
private |
the BC-tree of G
Definition at line 190 of file EmbedderMinDepthPiTa.h.
|
private |
the block-cutface tree of G (the BC-tree of the dual graph)
Definition at line 268 of file EmbedderMinDepthPiTa.h.
|
private |
The diametrical tree of the block-cutface tree.
Definition at line 235 of file EmbedderMinDepthPiTa.h.
|
private |
Needed in computeTdiam function to know if first vertex was already inserted
Definition at line 238 of file EmbedderMinDepthPiTa.h.
|
private |
adjacency entry of the external face of the embedding of G
Definition at line 250 of file EmbedderMinDepthPiTa.h.