135 if (m_cpV ==
nullptr) {
145 edge e =
Gp.m_skRefEdge =
S.referenceEdge();
151 while (!m_cpVAdded.empty()) {
152 cpV[m_cpVAdded.popFrontRet()] =
nullptr;
177 skeleton(
vT).getGraph().reverseEdge(e);
182 Graph& M = skeleton(
vT).getGraph();
206 m_cpVAdded.pushBack(
vOrig);
Declaration of class PertinentGraph.
Declaration of singly linked lists and iterators.
Declaration of class Skeleton.
Class for the representation of edges.
node target() const
Returns the target node of the edge.
node source() const
Returns the source node of the edge.
Data type for general directed graphs (adjacency list representation).
void reverseEdge(edge e)
Reverses the edge e, i.e., exchanges source and target node.
virtual edge split(edge e)
Splits edge e into two edges introducing a new node.
Doubly linked lists (maintaining the length of the list).
Dynamic arrays indexed with nodes.
void init()
Reinitializes the array. Associates the array with no graph.
Class for the representation of nodes.
Pertinent graphs of nodes in an SPQR-tree.
Singly linked lists (maintaining the length of the list).
Linear-time implementation of static SPQR-trees.
virtual List< node > nodesOfType(NodeType t) const =0
Returns the list of all nodes with type t.
virtual int numberOfSNodes() const =0
Returns the number of S-nodes in T.
virtual edge copyOfReal(edge e) const =0
Returns the skeleton edge that corresponds to the real edge e.
node cpAddNode(node vOrig, PertinentGraph &Gp) const
Add a node to Gp corresponding to vOrig if required.
edge cpAddEdge(edge eOrig, PertinentGraph &Gp) const
Add an edge to Gp corresponding to eOrig.
virtual NodeType typeOf(node v) const =0
Returns the type of node v.
void pertinentGraph(node v, PertinentGraph &Gp) const
Returns the pertinent graph of tree node v in Gp.
void replaceSkEdgeByPeak(node vT, edge e)
virtual const Graph & tree() const =0
Returns a reference to the tree T.
virtual node rootTreeAt(node v)=0
Roots T at node v and returns v.
virtual int numberOfPNodes() const =0
Returns the number of P-nodes in T.
NodeArray< node > * m_cpV
node in pertinent graph corresponding to an original node (auxiliary member)
virtual void cpRec(node v, PertinentGraph &Gp) const =0
Recursively performs the task of adding edges (and nodes) to the pertinent graph Gp for each involved...
SList< node > m_cpVAdded
list of added nodes (auxiliary member)
void directSkEdge(node vT, edge e, node src)
virtual const Graph & originalGraph() const =0
Returns a reference to the original graph G.
virtual int numberOfRNodes() const =0
Returns the number of R-nodes in T.
virtual edge rootEdge() const =0
Returns the edge of G at which T is rooted.
virtual Skeleton & skeleton(node v) const =0
Returns the skeleton of node v.
virtual const Skeleton & skeletonOfReal(edge e) const =0
Returns the skeleton that contains the real edge e.
NodeType
The type of a tree node in T.
virtual node rootNode() const =0
Returns the root node of T.
virtual node rootTreeAt(edge e)=0
Roots T at edge e and returns the new root node of T.
Skeleton graphs of nodes in an SPQR-tree.
#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.