|
Open Graph Drawing Framework |
v. 2023.09 (Elderberry)
|
|
|
Go to the documentation of this file.
60 SComp =
static_cast<int>(
62 PComp =
static_cast<int>(
64 RComp =
static_cast<int>(
160 m_tNode_owner[vT] = vT;
161 m_tNode_type[vT] = spqrNodeType;
164 if (spqrNodeType == TNodeType::PComp) {
166 }
else if (spqrNodeType == TNodeType::SComp) {
168 }
else if (spqrNodeType == TNodeType::RComp) {
182 m_hEdge_position[eH] = m_tNode_hEdges[vT]->pushBack(eH);
183 m_hEdge_tNode[eH] = vT;
194 m_tNode_hEdges[vT]->del(m_hEdge_position[eH]);
208 m_hEdge_twinEdge[eH] = fH;
209 m_hEdge_twinEdge[fH] = eH;
329 for (
auto pList : m_tNode_hEdges) {
362 void createSPQR(
node vB)
const;
405 edge p_e = m_tNode_hRefEdge[vT];
406 if (p_e ==
nullptr) {
409 edge p_et = twinEdge(p_e);
411 node p = m_hEdge_tNode[p_et];
504 edge updateInsertedEdge(
edge eG)
override;
TNodeType typeOfTNode(node vT) const
The namespace for all OGDF objects.
DynamicSPQRForest(Graph &G, bool not_connected=false)
A constructor.
NodeArray< node > m_htogc
Auxiliary array used by createSPQR().
Includes declaration of graph class.
edge newTwinEdge(edge eH, node vT) const
Creates a twin edge for eH, adds it to vT and returns it.
NodeArray< List< edge > * > m_tNode_hEdges
Lists of real and virtual edges belonging to SPQR-tree vertices.
#define OGDF_ASSERT(expr)
Assert condition expr. See doc/build.md for more information.
Declaration of class SPQRTree.
DynamicSPQRForest(Graph &G, node vG, bool not_connected=false)
A constructor.
NodeArray< int > m_bNode_numS
The numbers of S-components.
Singly linked lists (maintaining the length of the list).
TNodeType
Enumeration type for characterizing the SPQR-tree-vertices.
EdgeArray< ListIterator< edge > > m_hEdge_position
The positions of real and virtual edges in their m_tNode_hEdges lists.
EdgeArray< node > m_hEdge_tNode
The SPQR-tree-vertices which the real and virtual edges are belonging to.
int numberOfPNodes(node vB) const
Returns the number of P-nodes in the SPQR-tree for a given B-component of the BC-tree.
const List< edge > & hEdgesSPQR(node vT) const
Returns a linear list of the edges in m_H belonging to the triconnected component represented by a gi...
edge spqrParentEdge(node vT) const
Returns the virtual edge leading to the parents of a SPQR-tree vertex, or nullptr if vT is a root.
node spqrproper(edge eH) const
int numberOfSNodes(node vB) const
Returns the number of S-nodes in the SPQR-tree for a given B-component of the BC-tree.
void addHEdge(edge eH, node vT) const
Adds edge eH to a vertex vT of the SPQRForest.
node spqrroot(node vB) const
Returns the root of the SPQR-tree for a given B-component of the BC-tree.
void delHEdge(edge eH, node vT) const
Deletes edge eH from m_H and removes its connection to a vertex vT of the SPQRForest.
node newSPQRNode(node vB, const TNodeType spqrNodeType) const
Creates a new node in the SPQR-tree for a given B-component of the BC-tree.
node spqrNodeOf(edge eH) const
The SPQR-tree-vertex which a real or virtual edge eH belongs to, if the SPQR-tree has been created us...
edge twinEdge(edge eH) const
Returns the twin edge of a given edge of m_H, if it is virtual, or nullptr, if it is real.
std::ostream & operator<<(std::ostream &os, const ogdf::Array< E, INDEX > &a)
Prints array a to output stream os.
node source() const
Returns the source node of the edge.
RegisteredArray for nodes, edges and adjEntries of a graph.
Data type for general directed graphs (adjacency list representation).
node spqrParent(node vT) const
Returns the parent node of a node of the SPQR-tree Graph, or nullptr if vT is a root.
NodeArray< bool > m_tNode_isMarked
Auxiliary array used by findNCASPQR()
int numberOfRNodes(node vB) const
Returns the number of R-nodes in the SPQR-tree for a given B-component of the BC-tree.
NodeArray< node > m_bNode_SPQR
NodeArray< int > m_bNode_numP
The numbers of P-components.
EdgeArray< edge > m_hEdge_twinEdge
The partners of virtual edges (nullptr if real).
Graph m_T
A Graph structure containing all SPQR-trees.
Basic declarations, included by all source files.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
NodeArray< edge > m_tNode_hRefEdge
The virtual edges leading to the parents of the SPQR-tree vertices.
Declaration of class DynamicBCTree.
node newNode(int index=-1)
Creates a new node and returns it.
Class for the representation of edges.
edge searchEdge(node v, node w, bool directed=false) const
Searches and returns an edge connecting nodes v and w in time O( min(deg(v ), deg(w ))).
Declaration of doubly linked lists and iterators.
NodeArray< TNodeType > m_tNode_type
The types of the SPQR-tree-vertices.
NodeArray< int > m_bNode_numR
The numbers of R-components.
const Graph & spqrTree() const
Returns the SPQR-tree graph.
node target() const
Returns the target node of the edge.
Class for the representation of nodes.
NodeArray< node > m_tNode_owner
The owners of the SPQR-tree-vertices in the UNION/FIND structure.
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.