67 deleteDummyNodes(G, result);
Definition of ogdf::EmbedderBCTreeBase.
Declares ogdf::EmbedderMaxFaceBiconnectedGraphs.
Class for adjacency list elements.
An array that keeps track of the number of inserted elements; also usable as an efficient stack.
Combinatorial embeddings of planar graphs with modification functionality.
Dynamic arrays indexed with edges.
Class for the representation of edges.
Embedder that minimizes block-nesting depth for given embedded blocks.
Graph bcTreePG
the tree of pBCTree rooted at a cutface.
EdgeArray< int > m_cB
an array saving the length for each edge in the BC-tree
Graph blockCutfaceTree
the block-cutface tree of G (only the graph, rooted at the external face
NodeArray< node > nBlockCutfaceTree_to_nTdiam
Mapping nodes from block-cutvertex tree to the diametrical tree.
ArrayBuffer< node > fPG_to_nDG
mapping faces (by ID) in G to nodes in DG
NodeArray< node > nTdiam_to_nBlockCutfaceTree
Mapping nodes from the diametrical tree to block-cutvertex tree.
NodeArray< node > bDG_to_bPG
a mapping of blocks of the dual graph DG to its original graph G
int eccentricityBottomUp(const node &nT)
Computes the eccentricity of a node nT in the block-cutface tree to all nodes further down in the tre...
int depthCutvertex(const node &cT)
Computes the depth of an embedding Gamma(c).
NodeArray< adjEntry > Gamma_adjExt_nT
adjacency entry of the external face of G_nT[nT]
void deleteDummyNodes(Graph &G, adjEntry &adjExternal)
Deletes inserted dummy nodes.
NodeArray< node > nm_blockCutfaceTree_to_nBlockCutfaceTree
mapping of nodes from the BC-tree m_blockCutfaceTree to the graph blockCutfaceTree
bool useExtendedDepthDefinition() const
void useExtendedDepthDefinition(bool b)
NodeArray< Graph > blockG
all blocks
List< node > dummyNodes
this list is saving the dummy nodes which were inserted to produce a face in one-edge-blocks
NodeArray< int > eccentricity_alt
saving second highest eccentricity for every node of the block-cutface tree
List< node > oneEdgeBlockNodes
list of nodes which are only in one block which exists of extactly this node plus a cutvertex
NodeArray< EdgeArray< edge > > eBlockEmbedding_to_eH
a mapping of edges in blockG to the auxiliaryGraph of the BC-tree
void embedCutVertex(const node &vT, bool root=false)
Computes entry in newOrder for a cutvertex.
bool m_useExtendedDepthDefinition
int computeBlockCutfaceTreeEdgeLengths(const node &n)
Computes recursively edge lengths for the block-cutface tree.
adjEntry trivialInit(Graph &G) override
Initialization code for biconnected input. Returns an adjacency entry that lies on the external face.
int depthBlock(const node &bT)
Computes the depth of an embedding Gamma(B).
NodeArray< int > nDG_to_fPG
mapping nodes in DG to faces in DG
BCTree * pm_blockCutfaceTree
the block-cutface tree of G (the BC-tree of the dual graph)
NodeArray< Graph > G_nT
given a node nT (cutvertex or block), G_nT is the subgraph of G associated with the subtree of the BC...
NodeArray< node > bPG_to_bDG
a mapping of blocks of the graph G to its dual graph DG
NodeArray< EdgeArray< edge > > eH_to_eBlockEmbedding
a mapping of edges in the auxiliaryGraph of the BC-tree to blockG
virtual void doCall(Graph &G, adjEntry &adjExternal) override
Computes an embedding of G.
EdgeArray< int > edgeLength_blockCutfaceTree
Saving edge lengths for the block-cutface tree.
void eccentricityTopDown(const node &nT)
Computes the eccentricity of a node nT in the block-cutface tree and recursively the eccentricity of ...
NodeArray< int > eccentricity
saving eccentricity for every node of the block-cutface tree
NodeArray< NodeArray< node > > nBlockEmbedding_to_nH
a mapping of nodes in blockG to the auxiliaryGraph of the BC-tree
NodeArray< node > nBCTree_to_npBCTree
a mapping of nodes in bcTreePG to nodes in pBCTree->bcTree()
NodeArray< EdgeArray< edge > > ePG_to_eG_nT
a mapping of edges in G to edges in G_nT
node knotTdiam
The knot of the diametrical tree.
NodeArray< NodeArray< node > > nH_to_nBlockEmbedding
a mapping of nodes in the auxiliaryGraph of the BC-tree to blockG
bool Tdiam_initialized
Needed in computeTdiam function to know if first vertex was already inserted.
NodeArray< NodeArray< int > > nodeLength
saving for each node in the block graphs its length
NodeArray< NodeArray< node > > nPG_to_nG_nT
a mapping of nodes in G to nodes in G_nT
NodeArray< node > npBCTree_to_nBCTree
a mapping of nodes in pBCTree->bcTree() to nodes in bcTreePG
NodeArray< node > nBlockCutfaceTree_to_nm_blockCutfaceTree
mapping of nodes from the graph blockCutfaceTree to the BC-tree m_blockCutfaceTree
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 chil...
void embedBlockVertex(const node &bT, const node &parent_cT)
Computes entries in newOrder for nodes in a block.
NodeArray< NodeArray< node > > nG_nT_to_nPG
a mapping of nodes in G_nT to nodes in G
void embedBlocks(const node &bT, const node &cH)
Computes recursively an embedding for every block by using the planarEmbed function.
Graph Tdiam
The diametrical tree of the block-cutface tree.
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,...
void computeTdiam(const node &n)
Computes recursively the diametral tree.
NodeArray< EdgeArray< edge > > eG_nT_to_ePG
a mapping of edges in G_nT to edges in G
List< List< adjEntry > > faces
a list of all faces in G, a face in this list is containing a list of all adjacency entries
NodeArray< List< adjEntry > > newOrder
saves for every node of G the new adjacency list
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.
adjEntry tmpAdjExtFace
adjacency entry of the external face of the embedding of G
Data type for general directed graphs (adjacency list representation).
Doubly linked lists (maintaining the length of the list).
Dynamic arrays indexed with nodes.
Class for the representation of nodes.
Common base for embedder algorithms based on BC trees.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
bool planarEmbed(Graph &G)
Returns true, if G is planar, false otherwise. If true is returned, G will be planarly embedded.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.