Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

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.