Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

ClusterPlanarity.h
Go to the documentation of this file.
1 
31 #pragma once
32 
33 #include <ogdf/basic/Graph.h>
34 #include <ogdf/basic/GraphSets.h>
35 #include <ogdf/basic/Logger.h>
38 
39 #include <utility>
40 #include <vector>
41 
42 namespace ogdf {
43 template<bool>
44 class EdgeSet;
45 
48  std::vector<std::pair<adjEntry, adjEntry>>* m_augmentation = nullptr;
49 
50 public:
51  bool isClusterPlanar(const ClusterGraph& CG) override;
52  bool isClusterPlanarDestructive(ClusterGraph& CG, Graph& G) override;
53  bool clusterPlanarEmbedClusterPlanarGraph(ClusterGraph& CG, Graph& G) override;
54 
56 
60  void setStoreAugmentation(std::vector<std::pair<adjEntry, adjEntry>>* augmentation) {
61  m_augmentation = augmentation;
62  }
63 
64  std::vector<std::pair<adjEntry, adjEntry>>* getStoreAugmentation() const {
65  return m_augmentation;
66  }
67 
68 protected:
69  void copyBackEmbedding(ClusterGraph& CG, Graph& G, const ClusterGraph& CGcopy, const Graph& Gcopy,
70  const ClusterArray<cluster, true>& copyC, const NodeArray<node, true>& copyN,
71  const EdgeArray<edge, true>& copyE, const EdgeArray<edge, true>& origE) const override;
72 };
73 
75 
86  const std::vector<std::vector<node>>& emb, Graph& G, ClusterGraph& CG,
87  EdgeArray<node>& embMap);
88 
90 
99 OGDF_EXPORT void insertAugmentationEdges(const ClusterGraph& CG, Graph& G,
100  std::vector<std::pair<adjEntry, adjEntry>>& augmentation, EdgeSet<>* added = nullptr,
101  bool embedded = true, bool assert_minimal = true);
102 
103 }
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
Graph.h
Includes declaration of graph class.
ClusterPlanarityModule.h
Declaration of ClusterPlanarityModule which implements a cluster-planarity test and,...
ogdf::reduceLevelPlanarityToClusterPlanarity
void reduceLevelPlanarityToClusterPlanarity(const Graph &LG, const std::vector< std::vector< node >> &emb, Graph &G, ClusterGraph &CG, EdgeArray< node > &embMap)
Perform the reduction from level- to cluster planarity.
ogdf::ClusterArrayBase
RegisteredArray for labeling the clusters of a ClusterGraph.
Definition: ClusterGraph.h:304
GraphSets.h
Declaration and implementation of NodeSet, EdgeSet, and AdjEntrySet classes.
ogdf::SyncPlanClusterPlanarityModule::getStoreAugmentation
std::vector< std::pair< adjEntry, adjEntry > > * getStoreAugmentation() const
Definition: ClusterPlanarity.h:64
Logger.h
Contains logging functionality.
ogdf::SyncPlanClusterPlanarityModule::setStoreAugmentation
void setStoreAugmentation(std::vector< std::pair< adjEntry, adjEntry >> *augmentation)
When set to a non-null pointer, will contain the augmentation edges to make the graph c-connected c-p...
Definition: ClusterPlanarity.h:60
ogdf::SyncPlanClusterPlanarityModule
ClusterPlanarity testing in quadratic time using the Synchronized Planarity approach.
Definition: ClusterPlanarity.h:47
ogdf::internal::GraphRegisteredArray
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition: Graph_d.h:651
ogdf::Graph
Data type for general directed graphs (adjacency list representation).
Definition: Graph_d.h:862
ogdf::insertAugmentationEdges
void insertAugmentationEdges(const ClusterGraph &CG, Graph &G, std::vector< std::pair< adjEntry, adjEntry >> &augmentation, EdgeSet<> *added=nullptr, bool embedded=true, bool assert_minimal=true)
Inserts augmentation edges to make a c-plane graph c-connected while maintaining the combinatorial em...
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
ClusterGraph.h
Derived class of GraphObserver providing additional functionality to handle clustered graphs.
ogdf::ClusterGraph
Representation of clustered graphs.
Definition: ClusterGraph.h:339
ogdf::ClusterPlanarityModule
Definition: ClusterPlanarityModule.h:41
ogdf::internal::EdgeArrayBase2
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition: Graph_d.h:709