143 if (m_cpV ==
nullptr) {
159 while (!m_cpVAdded.empty()) {
160 cpV[m_cpVAdded.popFrontRet()] =
nullptr;
185 skeleton(vT).getGraph().reverseEdge(e);
190 Graph& M = skeleton(vT).getGraph();
212 node& vP = (*m_cpV)[vOrig];
214 m_cpVAdded.pushBack(vOrig);
Includes declaration of graph class.
Declaration of doubly linked lists and iterators.
Declaration of class PertinentGraph.
Declaration of singly linked lists and iterators.
Declaration of class Skeleton.
Basic declarations, included by all source files.
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.
node newNode(int index=-1)
Creates a new node and returns it.
edge newEdge(node v, node w, int index=-1)
Creates a new edge (v,w) and returns it.
virtual edge split(edge e)
Splits edge e into two edges introducing a new node.
Doubly linked lists (maintaining the length of the list).
Class for the representation of nodes.
Pertinent graphs of nodes in an SPQR-tree.
edge m_vEdge
reference edge (in m_P)
edge m_skRefEdge
reference edge (in skeleton(m_vT))
EdgeArray< edge > m_origE
corresp.
NodeArray< node > m_origV
corresp.
void init(node vT)
Initialization of a pertinent graph of tree node vT.
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.
SPQRTree & operator=(const SPQRTree ©)=delete
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.
SPQRTree(SPQRTree &&move)=delete
void pertinentGraph(node v, PertinentGraph &Gp) const
Returns the pertinent graph of tree node v in Gp.
void replaceSkEdgeByPeak(node vT, edge e)
SPQRTree(const SPQRTree ©)=delete
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)
SPQRTree & operator=(SPQRTree &&move)=delete
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.
virtual node original(node v) const =0
Returns the vertex in the original graph G that corresponds to v.
edge referenceEdge() const
Returns the reference edge of S in M.
RegisteredArray for nodes, edges and adjEntries of a graph.
#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.