41namespace cluster_planarity {
76 for (
auto u : c->
nodes) {
97 if (uAncestor == vAncestor) {
113 m_repEdge[e] = RepGraph[allocCluster]->newEdge(v1, v2);
122 RepGraph[c] =
new Graph;
Derived class of GraphObserver providing additional functionality to handle clustered graphs.
Includes declaration of graph class.
Decralation of GraphElement and GraphList classes.
Declaration of doubly linked lists and iterators.
Basic declarations, included by all source files.
RegisteredArray for labeling the clusters of a ClusterGraph.
Representation of clusters in a clustered graph.
ListContainer< node, ClusterElement > nodes
The container containing the nodes lying (directly) in this cluster.
ListContainer< cluster, ClusterElement > children
The container containing the child clusters (children in the cluster tree) of this cluster.
Representation of clustered graphs.
cluster rootCluster() const
Returns the root cluster.
const Graph & constGraph() const
Returns a reference to the underlying graph.
cluster commonClusterLastAncestors(node v, node w, cluster &c1, cluster &c2) const
Returns the lowest common cluster lca and the highest ancestors on the path to lca.
internal::GraphObjectContainer< ClusterElement > clusters
The container containing all cluster objects.
Class for the representation of edges.
Data type for general directed graphs (adjacency list representation).
node newNode(int index=-1)
Creates a new node and returns it.
internal::GraphObjectContainer< EdgeElement > edges
The container containing all edge objects.
Encapsulates a pointer to a list element.
Class for the representation of nodes.
Constructs a c-planar subclustered spanning tree of the input by setting edgearray values.
void dfsBuildSpanningTree(node v, EdgeArray< bool > &treeEdges, NodeArray< bool > &visited)
void constructRepresentationGraphNodes(const ClusterGraph &CG, Graph &g, cluster c)
constructs for every cluster a graph representing its main structure (children & their connections) o...
EdgeArray< cluster > m_allocCluster
store the allocation cluster to avoid multiple computation
void deleteRepresentationGraphs(const ClusterGraph &CG, ClusterArray< Graph * > &RepGraph)
NodeArray< node > m_vRepNode
virtual void call(const ClusterGraph &CG, EdgeArray< bool > &inST)
sets values in inST according to membership in c-planar STGraph
void dfsBuildOriginalST(node v, ClusterArray< EdgeArray< bool > > &treeEdges, EdgeArray< bool > &inST, NodeArray< bool > &visited)
builds spanning tree on original graph out of repgraphs STs
EdgeArray< edge > m_repEdge
store the representation edge
virtual void call(const ClusterGraph &CG, EdgeArray< bool > &inST, EdgeArray< double > &weight)
sets values in inST according to membership in c-planar STGraph, computes minimum spanning tree accor...
void computeRepresentationGraphs(const ClusterGraph &CG, ClusterArray< Graph * > &RepGraph)
Computes representation graphs used for spanning tree computation.
void initialize(const ClusterGraph &CG)
Initializes some internally used members on CG.
void constructRepresentationGraphEdges(const ClusterGraph &CG, ClusterArray< Graph * > &RepGraph)
insert rep edges for all edges in clustergraph
ClusterArray< node > m_cRepNode
store the representation nodes for nodes and clusters
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
RegisteredArray for nodes, edges and adjEntries of a graph.
#define OGDF_ASSERT(expr)
Assert condition expr. See doc/build.md for more information.
The namespace for all OGDF objects.