Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

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 
41 namespace ogdf {
42 template<class E>
43 class ListPure;
44 
46 
50 public:
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 
66  virtual ~CconnectClusterPlanar() { }
67 
69  virtual bool call(const ClusterGraph& C);
70 
71 private:
73 
75  bool planarityTest(ClusterGraph& C, const cluster act, Graph& G);
76 
78  bool preProcess(ClusterGraph& C, Graph& G);
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 
87  void prepareParallelEdges(Graph& G);
88 
90  void constructWheelGraph(ClusterGraph& C, Graph& G, cluster& parent, PlanarPQTree* T,
91  EdgeArray<node>& outgoingTable);
92 
93 
94  //private Members for handling parallel edges
99 
101 };
102 
104 public:
105  bool isClusterPlanar(const ClusterGraph& CG) override;
106  bool isClusterPlanarDestructive(ClusterGraph& CG, Graph& G) override;
107  bool clusterPlanarEmbed(ClusterGraph& CG, Graph& G) override;
108  bool clusterPlanarEmbedClusterPlanarGraph(ClusterGraph& CG, Graph& G) override;
109 };
110 
111 }
ogdf
The namespace for all OGDF objects.
Definition: multilevelmixer.cpp:39
Graph.h
Includes declaration of graph class.
ClusterPlanarityModule.h
Declaration of ClusterPlanarityModule which implements a cluster-planarity test and,...
ogdf::CconnectClusterPlanarityModule
Definition: CconnectClusterPlanar.h:103
ogdf::ClusterArrayBase
RegisteredArray for labeling the clusters of a ClusterGraph.
Definition: ClusterGraph.h:311
ogdf::CconnectClusterPlanar::m_parallelEdges
EdgeArray< ListPure< edge > > m_parallelEdges
Definition: CconnectClusterPlanar.h:95
ogdf::CconnectClusterPlanar
C-planarity test by Cohen, Feng and Eades.
Definition: CconnectClusterPlanar.h:49
ogdf::booth_lueker::PlanarPQTree
Definition: PlanarPQTree.h:51
ogdf::ClusterElement
Representation of clusters in a clustered graph.
Definition: ClusterGraph.h:62
ogdf::internal::GraphRegisteredArray
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition: Graph_d.h:658
ogdf::Graph
Data type for general directed graphs (adjacency list representation).
Definition: Graph_d.h:869
ogdf::CconnectClusterPlanar::m_errorCode
ErrorCode m_errorCode
Definition: CconnectClusterPlanar.h:100
ogdf::CconnectClusterPlanar::errCode
ErrorCode errCode()
Definition: CconnectClusterPlanar.h:60
PlanarPQTree.h
Declaration of class PlanarPQTree.
ogdf::CconnectClusterPlanar::~CconnectClusterPlanar
virtual ~CconnectClusterPlanar()
Destructor.
Definition: CconnectClusterPlanar.h:66
ogdf::CconnectClusterPlanar::m_parallelCount
int m_parallelCount
Definition: CconnectClusterPlanar.h:98
basic.h
Basic declarations, included by all source files.
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
ogdf::CconnectClusterPlanar::m_isParallel
EdgeArray< bool > m_isParallel
Definition: CconnectClusterPlanar.h:96
ogdf::CconnectClusterPlanar::m_clusterPQTree
ClusterArray< PlanarPQTree * > m_clusterPQTree
Definition: CconnectClusterPlanar.h:97
ClusterGraph.h
Derived class of GraphObserver providing additional functionality to handle clustered graphs.
ogdf::CconnectClusterPlanar::ErrorCode
ErrorCode
Definition: CconnectClusterPlanar.h:52
ogdf::ClusterGraph
Representation of clustered graphs.
Definition: ClusterGraph.h:346
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:240
ogdf::ClusterPlanarityModule
Definition: ClusterPlanarityModule.h:48
ogdf::internal::EdgeArrayBase2
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition: Graph_d.h:716