Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

EmbedderMinDepth.h
Go to the documentation of this file.
1 
32 #pragma once
33 
34 #include <ogdf/basic/Graph.h>
35 #include <ogdf/basic/List.h>
36 #include <ogdf/basic/Observer.h>
37 #include <ogdf/basic/basic.h>
39 
40 namespace ogdf {
41 class StaticSPQRTree;
42 
44 
51 public:
58  virtual void doCall(Graph& G, adjEntry& adjExternal) override;
59 
60  EmbedderMinDepth() = default;
61 
62  /* needs to be deleted explicitly for MSVC<=16 and classes containing a NodeArrayP */
64 
65 private:
72  void computeBlockGraphs(const node& bT, const node& cH);
73 
84  int bottomUpTraversal(const node& bT, const node& cH);
85 
97  void topDownTraversal(const node& bT);
98 
105  void embedBlock(const node& bT);
106 
117  void embedBlock(const node& bT, const node& cT, ListIterator<adjEntry>& after);
118 
119 private:
122 
125 
128 
131 
134 
137 
140 
143 
149 
156 
159 
163 
166 };
167 
168 }
ogdf
The namespace for all OGDF objects.
Definition: multilevelmixer.cpp:39
Graph.h
Includes declaration of graph class.
ogdf::EmbedderMinDepth::nH_to_nBlockEmbedding
NodeArray< NodeArray< node > > nH_to_nBlockEmbedding
a mapping of nodes in the auxiliaryGraph of the BC-tree to blockG
Definition: EmbedderMinDepth.h:124
Observer.h
Simple, safe base classes for C++ observables and observers.
ogdf::embedder::EmbedderBCTreeBase
Common base for embedder algorithms based on BC trees.
Definition: EmbedderBCTreeBase.h:49
ogdf::EmbedderMinDepth::nodeLength
NodeArray< NodeArray< int > > nodeLength
saving for each node in the block graphs its length
Definition: EmbedderMinDepth.h:136
ogdf::EmbedderMinDepth
Embedder that minimizes block-nesting depth.
Definition: EmbedderMinDepth.h:50
ogdf::EmbedderMinDepth::nBlockEmbedding_to_nH
NodeArray< NodeArray< node > > nBlockEmbedding_to_nH
a mapping of nodes in blockG to the auxiliaryGraph of the BC-tree
Definition: EmbedderMinDepth.h:130
ogdf::AdjElement
Class for adjacency list elements.
Definition: Graph_d.h:142
ogdf::EmbedderMinDepth::M2
NodeArray< List< node > > M2
M2 is empty, if |M_B| != 1, otherwise M_B = {cH} M2 = {cH' in V_B \ {v} | m_B(cH') = m2} with m2 = ma...
Definition: EmbedderMinDepth.h:155
ogdf::EmbedderMinDepth::minDepth
NodeArray< int > minDepth
an array containing the minimum depth of each block
Definition: EmbedderMinDepth.h:139
ogdf::EmbedderMinDepth::M_B
NodeArray< List< node > > M_B
M_B = {cH in B | m_B(cH) = m_B} with m_B = max_{m_B(c) : c in B} and m_B(c) = max( {0} cup {m_{c,...
Definition: EmbedderMinDepth.h:148
ogdf::Direction::after
@ after
ogdf::EmbedderMinDepth::spqrTrees
NodeArray< StaticSPQRTree * > spqrTrees
The SPQR-trees of the blocks.
Definition: EmbedderMinDepth.h:165
OGDF_NO_COPY
#define OGDF_NO_COPY(cls)
Explicitly disables (deletes) copy construction and assignment for class cls.
Definition: copy_move.h:37
ogdf::EmbedderMinDepth::m_cB
EdgeArray< int > m_cB
an array saving the length for each edge in the BC-tree
Definition: EmbedderMinDepth.h:142
ogdf::EmbedderMinDepth::blockG
NodeArrayP< Graph > blockG
all blocks
Definition: EmbedderMinDepth.h:121
ogdf::internal::GraphRegisteredArray
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition: Graph_d.h:658
ogdf::Graph
Data type for general directed graphs (adjacency list representation).
Definition: Graph_d.h:869
ogdf::EmbedderMinDepth::eBlockEmbedding_to_eH
NodeArray< EdgeArray< edge > > eBlockEmbedding_to_eH
a mapping of edges in blockG to the auxiliaryGraph of the BC-tree
Definition: EmbedderMinDepth.h:133
ogdf::EmbedderMinDepth::treeNodeTreated
NodeArray< bool > treeNodeTreated
treeNodeTreated saves for all block nodes in the BC-tree if it has already been treated or not.
Definition: EmbedderMinDepth.h:162
ogdf::EmbedderMinDepth::newOrder
NodeArray< List< adjEntry > > newOrder
saves for every node of G the new adjacency list
Definition: EmbedderMinDepth.h:158
ogdf::EmbedderMinDepth::eH_to_eBlockEmbedding
NodeArray< EdgeArray< edge > > eH_to_eBlockEmbedding
a mapping of edges in the auxiliaryGraph of the BC-tree to blockG
Definition: EmbedderMinDepth.h:127
EmbedderBCTreeBase.h
Definition of ogdf::EmbedderBCTreeBase.
basic.h
Basic declarations, included by all source files.
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
List.h
Declaration of doubly linked lists and iterators.
ogdf::ListIteratorBase
Encapsulates a pointer to a list element.
Definition: List.h:51
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:240
ogdf::internal::EdgeArrayBase2
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition: Graph_d.h:716