94 , highest_with_edges(spqr.spqrTree(), nullptr)
95 , edges(spqr.spqrTree())
96 , children(spqr.spqrTree()) {
103 m_incidentEdgeForLeaf.init(*
this,
nullptr);
104 m_graphNodeForInnerNode.init(*
this,
nullptr);
105 apex = findSPQRApex(n);
110 if (spqr.
typeOfGNode(o) == BCTree::GNodeType::Normal) {
122 const std::function<
edge(
edge)>& edge_map) {
127 node& gn = m_graphNodeForInnerNode[n];
133 edge& ie = m_incidentEdgeForLeaf[l];
137 if (knowsPartnerEdges()) {
138 for (
edge& e : m_bundleEdgesForLeaf[l]) {
Declaration of class BCTree.
Declaration of class DynamicSPQRForest.
Includes declaration of graph class.
Declaration of graph copy classes.
Decralation of GraphElement and GraphList classes.
An intrusive list for the leaves of a PCTree.
Declaration of doubly linked lists and iterators.
An embedding tree representing, for a single node, all orders of incident edges in all planar embeddi...
A node in a PC-tree that is either a P-node, C-node or leaf.
A registry that allows labelling the nodes of a PC-tree.
Utils for PCTree::allNodes(), PCTree::innerNodes(), PCNode::children() and PCNode::neighbors().
Basic declarations, included by all source files.
Class for adjacency list elements.
edge theEdge() const
Returns the edge associated with this adjacency entry.
node original(node vH) const
const Graph & auxiliaryGraph() const
Returns the biconnected components graph.
GNodeType typeOfGNode(node vG) const
node bccomp(node vH) const override
node spqrroot(node vB) const
Returns the root of the SPQR-tree for a given B-component of the BC-tree.
node spqrproper(edge eH) const
const Graph & spqrTree() const
Returns the SPQR-tree graph.
Class for the representation of edges.
Data type for general directed graphs (adjacency list representation).
internal::GraphObjectContainer< NodeElement > nodes
The container containing all node objects.
Centralized global and local logging facility working on streams like std::cout.
Class for the representation of nodes.
int degree() const
Returns the degree of the node (indegree + outdegree).
adjEntry firstAdj() const
Returns the first entry in the adjaceny list.
const Graph * graphOf() const
Returns the graph containing this node (debug only).
RegisteredArray for nodes, edges and adjEntries of a graph.
A DFS or BFS through a PCTree.
This class represents the embedding tree of a single node in a biconnected component.
A node in a PC-tree that is either a P-node, C-node or leaf.
Derive embedding trees from an DynamicSPQRForest. Warning: breaks on certain parallel edge configurat...
void mapGraph(const Graph *G, const std::function< node(node)> &node_map, const std::function< edge(edge)> &edge_map)
NodeArray< SList< adjEntry > > edges
NodeSPQRRotation(const DynamicSPQRForest &_spqr, node n, const NodeArray< GraphCopySimple * > &_rigids)
NodeArray< SList< node > > children
const NodeArray< GraphCopySimple * > & rigids
pc_tree::PCNode * addLeaf(pc_tree::PCNode *n, adjEntry adj)
pc_tree::PCNode * makePCNode(node t, node t_parent, pc_tree::PCNode *parent)
NodeArray< node > highest_with_edges
node findSPQRApex(node n, bool clear=false)
const DynamicSPQRForest & spqr
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF dynamic library (shared object / DLL),...
#define OGDF_ASSERT(expr)
Assert condition expr. See doc/build.md for more information.
The namespace for all OGDF objects.
const DynamicSPQRForest spqr
NodeArray< GraphCopySimple * > rigids