Loading [MathJax]/extensions/tex2jax.js

Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches
ClusterPQContainer.h
Go to the documentation of this file.
1
36#pragma once
37
41
42namespace ogdf {
43
44class CconnectClusterPlanarEmbed;
45
46namespace cluster_planarity {
47
51
52 // Definition
53 // incoming edge of v: an edge e = (v,w) with number(v) < number(w)
54
55 // Stores for every node v the keys corresponding to the incoming edges of v
57
58 // Stores for every node v the keys corresponding to the outgoing edges of v
60
61 // Stores for every node v the sequence of incoming edges of v according
62 // to the embedding
64
65 // Stores for every node v the nodes corresponding to the
66 // opposed sink indicators found in the frontier of v.
68
69 // Stores for every node v the nodes corresponding to the
70 // non opposed sink indicators found in the frontier of v.
72
73 // Table to acces for every edge its corresponding key in the PQTree
75
76 // Stores for every node its st-number
78
79 // Stores for every st-number the node
81
83
84 // the subgraph that contains the biconnected component
85 // NOT THE COPY OF THE BICONNECTED COMPONENT THAT WAS CONSTRUCTED
86 // DURING PLANARITY TESTING. THIS HAS BEEN DELETED.
88 // corresponding PQTree
90 // The leaf correpsonding to the edge (s,t).
92
93public:
107
109
113
115
116 m_frontier = new NodeArray<SListPure<edge>>(*subGraph);
117
118 m_opposed = new NodeArray<SListPure<node>>(*subGraph);
119
120 m_nonOpposed = new NodeArray<SListPure<node>>(*subGraph);
121
123
125
126 m_tableNumber2Node = new Array<node>(subGraph->numberOfNodes() + 1);
127 }
128
129 void Cleanup() {
130 delete m_inLeaves;
131 if (m_outLeaves) {
132 for (node v : m_subGraph->nodes) {
133 while (!(*m_outLeaves)[v].empty()) {
134 InfoLeafPtr L = (*m_outLeaves)[v].popFrontRet();
135 delete L;
136 }
137 }
138 delete m_outLeaves;
139 }
140 delete m_frontier;
141 delete m_opposed;
142 delete m_nonOpposed;
143 delete m_edge2Key;
144 if (m_T) {
146 delete m_T;
147 }
148 delete m_numbering;
149 delete m_tableNumber2Node;
150 }
151};
152
153}
154}
Declaration and implementation of EdgeArray class.
Declaration of the class EmbedPQTree.
Declaration and implementation of NodeArray class.
The parameterized class Array implements dynamic arrays of type E.
Definition Array.h:214
C-planarity test and embedding by Cohen, Feng and Eades.
Dynamic arrays indexed with edges.
Definition EdgeArray.h:125
Data type for general directed graphs (adjacency list representation).
Definition Graph_d.h:521
internal::GraphObjectContainer< NodeElement > nodes
The container containing all node objects.
Definition Graph_d.h:589
Dynamic arrays indexed with nodes.
Definition NodeArray.h:125
Class for the representation of nodes.
Definition Graph_d.h:177
virtual void emptyAllPertinentNodes() override
Cleans up all flags that have been set in the pertinent nodes during the reduction process.
NodeArray< SListPure< node > > * m_opposed
NodeArray< SListPure< InfoLeafPtr > > * m_outLeaves
NodeArray< SListPure< edge > > * m_frontier
NodeArray< SListPure< node > > * m_nonOpposed
NodeArray< SListPure< InfoLeafPtr > > * m_inLeaves
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.