Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
CconnectClusterPlanar.h
Go to the documentation of this file.
1
33#pragma once
34
35#include <ogdf/basic/Graph.h>
36#include <ogdf/basic/basic.h>
40
41namespace ogdf {
42template<class E>
43class ListPure;
44
46
50public:
51 //aus CCCPE oder CCCP wieder entfernen
52 enum class ErrorCode {
53 none = 0,
54 nonConnected = 1,
55 nonCConnected = 2,
56 nonPlanar = 3,
57 nonCPlanar = 4
58 };
59
60 ErrorCode errCode() { return m_errorCode; }
61
64
67
69 virtual bool call(const ClusterGraph& C);
70
71private:
73
75 bool planarityTest(ClusterGraph& C, const cluster act, Graph& G);
76
79
81 bool preparation(Graph& G, const cluster C, node superSink);
82
84 bool doTest(Graph& G, NodeArray<int>& numbering, const cluster cl, node superSink,
85 EdgeArray<edge>& edgeTable);
86
88
91 EdgeArray<node>& outgoingTable);
92
93
94 //private Members for handling parallel edges
99
101};
102
110
111}
Derived class of GraphObserver providing additional functionality to handle clustered graphs.
Declaration of ClusterPlanarityModule which implements a cluster-planarity test and,...
Includes declaration of graph class.
Declaration of class PlanarPQTree.
Basic declarations, included by all source files.
C-planarity test by Cohen, Feng and Eades.
bool preProcess(ClusterGraph &C, Graph &G)
Preprocessing that initializes data structures, used in call.
void constructWheelGraph(ClusterGraph &C, Graph &G, cluster &parent, PlanarPQTree *T, EdgeArray< node > &outgoingTable)
Constructs the replacement wheel graphs.
EdgeArray< ListPure< edge > > m_parallelEdges
CconnectClusterPlanar()
Constructor.
virtual bool call(const ClusterGraph &C)
Tests if a cluster graph is c-planar.
virtual ~CconnectClusterPlanar()
Destructor.
bool planarityTest(ClusterGraph &C, const cluster act, Graph &G)
Recursive planarity test for clustered graph induced by act.
bool preparation(Graph &G, const cluster C, node superSink)
Prepares the planarity test for one cluster.
ClusterArray< PlanarPQTree * > m_clusterPQTree
void prepareParallelEdges(Graph &G)
bool doTest(Graph &G, NodeArray< int > &numbering, const cluster cl, node superSink, EdgeArray< edge > &edgeTable)
Performs a planarity test on a biconnected component.
bool clusterPlanarEmbedClusterPlanarGraph(ClusterGraph &CG, Graph &G) override
Constructs a cluster-planar embedding of CG. CG has to be cluster-planar!
bool clusterPlanarEmbed(ClusterGraph &CG, Graph &G) override
Returns true, if CG is cluster-planar, false otherwise. If true, CG contains a cluster-planar embeddi...
bool isClusterPlanar(const ClusterGraph &CG) override
Returns true, if CG is cluster-planar, false otherwise.
bool isClusterPlanarDestructive(ClusterGraph &CG, Graph &G) override
Returns true, if CG is cluster-planar, false otherwise. In it is non-cluster-planar,...
RegisteredArray for labeling the clusters of a ClusterGraph.
Representation of clusters in a clustered graph.
Representation of clustered graphs.
Data type for general directed graphs (adjacency list representation).
Definition Graph_d.h:866
Class for the representation of nodes.
Definition Graph_d.h:241
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition Graph_d.h:717
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition Graph_d.h:659
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF dynamic library (shared object / DLL),...
Definition config.h:117
The namespace for all OGDF objects.