60 if (adj->theEdge()->target() == v) {
67 forEachIngoingNeighbor(
bT, [&](
node vT) {
72 forEachIngoingNeighbor(
vT, [&](
node bT2) {
73 node cutVertex = pBCTree->cutVertex(
vT,
bT2);
96 forEachIngoingNeighbor(
bT, [&](
node cT) {
113 forEachIngoingNeighbor(
cT, [&](
node bT2) {
118 forEachIngoingNeighbor(
cT, [&](
node pT) {
154 face f =
CE.leftFace(m_adjExternal);
156 if (*pAdjExternal ==
nullptr) {
161 *pAdjExternal =
ae->twin();
174 if (pBCTree->typeOfGNode(
nG) == BCTree::GNodeType::CutVertex) {
183 if (adj->theEdge()->source() ==
cT2) {
208 if (!treeNodeTreated[
bT2]) {
Definition of ogdf::EmbedderBCTreeBase.
Declares ogdf::EmbedderMaxFaceBiconnectedGraphs.
Declaration of class StaticSPQRTree.
Class for adjacency list elements.
adjEntry succ() const
Returns the successor in the adjacency list.
edge theEdge() const
Returns the edge associated with this adjacency entry.
node theNode() const
Returns the node whose adjacency list contains this element.
Combinatorial embeddings of planar graphs with modification functionality.
Dynamic arrays indexed with edges.
void init()
Reinitializes the array. Associates the array with no graph.
Class for the representation of edges.
adjEntry adjSource() const
Returns the corresponding adjacancy entry at source node.
edge succ() const
Returns the successor in the list of all edges.
adjEntry adjTarget() const
Returns the corresponding adjacancy entry at target node.
node source() const
Returns the source node of the edge.
Embedder that maximizing the external face.
Embedder that maximizes the external face.
void embedBlock(const node &bT)
Computes the adjacency list for all nodes in a block and calls recursively the function for all block...
void computeBlockGraphs(const node &bT, const node &cH)
Computes recursively the block graph for every block.
NodeArray< NodeArray< int > > nodeLength
saving for each node in the block graphs its length
NodeArray< NodeArray< int > > cstrLength
is saving for each node in the block graphs its cstrLength
void forEachIngoingNeighbor(node v, std::function< void(node)> fun)
Calls fun for every ingoing edge (w,v).
NodeArray< Graph > blockG
all blocks
virtual void maximumFaceRec(const node &bT, node &bT_opt, int &ell_opt)
Top down traversal of BC-tree.
NodeArray< NodeArray< node > > nBlockEmbedding_to_nH
a mapping of nodes in blockG to the auxiliaryGraph of the BC-tree
NodeArray< EdgeArray< edge > > eBlockEmbedding_to_eH
a mapping of edges in blockG to the auxiliaryGraph of the BC-tree
NodeArray< bool > treeNodeTreated
treeNodeTreated saves for all block nodes in the BC-tree if it has already been treated or not.
void internalEmbedBlock(const node bT, const node cT, ListIterator< adjEntry > &after, Graph &blockGraph, NodeArray< T > ¶mNodeLength, EdgeArray< T > ¶mEdgeLength, NodeArray< node > &mapNodeToH, EdgeArray< edge > &mapEdgeToH, const node nodeInBlock)
NodeArray< EdgeArray< edge > > eH_to_eBlockEmbedding
a mapping of edges in the auxiliaryGraph of the BC-tree to blockG
NodeArray< NodeArray< node > > nH_to_nBlockEmbedding
a mapping of nodes in the auxiliaryGraph of the BC-tree to blockG
void computeNodeLength(node bT, std::function< int &(node)> setter)
virtual int constraintMaxFace(const node &bT, const node &cH)
Bottom up traversal of BC-tree.
NodeArray< List< adjEntry > > newOrder
saves for every node of PG the new adjacency list
virtual void doCall(Graph &G, adjEntry &adjExternal) override
Computes an embedding of G with maximum external face.
virtual void embedBlock(const node &bT, const node &cT, ListIterator< adjEntry > &after)
Computes the adjacency list for all nodes in a block and calls recursively the function for all block...
void internalMaximumFaceRec(const node &bT, node &bT_opt, int &ell_opt, Graph &blockGraph, NodeArray< int > ¶mNodeLength, StaticSPQRTree *spqrTree, std::function< node &(node)> getBENode, std::function< int &(node, node)> getCstrLength, std::function< int &(node, node)> getNodeLength, int *const maxFaceSizeToUpdate=nullptr)
NodeArray< StaticSPQRTree * > spqrTrees
The SPQR-trees of the blocks.
Faces in a combinatorial embedding.
Data type for general directed graphs (adjacency list representation).
Encapsulates a pointer to a list element.
Dynamic arrays indexed with nodes.
Class for the representation of nodes.
internal::GraphObjectContainer< AdjElement > adjEntries
The container containing all entries in the adjacency list of this node.
Linear-time implementation of static SPQR-trees.
Common base for embedder algorithms based on BC trees.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
#define OGDF_ASSERT(expr)
Assert condition expr. See doc/build.md for more information.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.