Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

PlanarizationLayout.h
Go to the documentation of this file.
1 
32 #pragma once
33 
40 
41 #include <memory>
42 
43 namespace ogdf {
44 
46 
50 public:
53 
56 
59 
63  void call(GraphAttributes& ga) override;
64 
66 
72  void call(GraphAttributes& ga, Graph& g);
73 
74  void callSimDraw(GraphAttributes& ga);
75 
81 
86  double pageRatio() const { return m_pageRatio; }
87 
89  void pageRatio(double ratio) { m_pageRatio = ratio; }
90 
92 
96  int minCliqueSize() const { return m_cliqueSize; }
97 
99  void minCliqueSize(int i) { m_cliqueSize = max(i, 3); }
100 
106  void setCrossMin(CrossingMinimizationModule* pCrossMin) { m_crossMin.reset(pCrossMin); }
108 
110 
115  void setEmbedder(EmbedderModule* pEmbedder) { m_embedder.reset(pEmbedder); }
116 
118 
126  void setPlanarLayouter(LayoutPlanRepModule* pPlanarLayouter) {
127  m_planarLayouter.reset(pPlanarLayouter);
128  }
129 
131 
136  void setPacker(CCLayoutPackModule* pPacker) { m_packer.reset(pPacker); }
137 
143  int numberOfCrossings() const { return m_nCrossings; }
145 
147 
148 private:
150 
151  void arrangeCCs(PlanRep& PG, GraphAttributes& GA, Array<DPoint>& boundingBox) const;
152  void preprocessCliques(Graph& G, CliqueReplacer& cliqueReplacer);
153  void fillAdjNodes(List<node>& adjNodes, PlanRep& PG, node centerNode, NodeArray<bool>& isClique,
154  Layout& drawing);
155 
157  std::unique_ptr<CrossingMinimizationModule> m_crossMin;
158 
160  std::unique_ptr<EmbedderModule> m_embedder;
161 
163  std::unique_ptr<LayoutPlanRepModule> m_planarLayouter;
164 
166  std::unique_ptr<CCLayoutPackModule> m_packer;
167 
168  double m_pageRatio;
170 
172 };
173 
174 }
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
ogdf::GraphAttributes
Stores additional attributes of a graph (like layout information).
Definition: GraphAttributes.h:66
ogdf::PlanarizationLayout::minCliqueSize
int minCliqueSize() const
Returns the current setting of option minCliqueSize.
Definition: PlanarizationLayout.h:96
ogdf::PlanRep
Planarized representations (of a connected component) of a graph.
Definition: PlanRep.h:57
ogdf::PlanarizationLayout
The planarization approach for drawing graphs.
Definition: PlanarizationLayout.h:49
ogdf::planarization_layout::CliqueReplacer
Definition: CliqueReplacer.h:40
ogdf::CrossingMinimizationModule
Base class for crossing minimization algorithms.
Definition: CrossingMinimizationModule.h:41
CrossingMinimizationModule.h
Declaration of CrossingMinimization Module, an interface for crossing minimization algorithms.
ogdf::PlanarizationLayout::m_packer
std::unique_ptr< CCLayoutPackModule > m_packer
The module for arranging connected components.
Definition: PlanarizationLayout.h:166
LayoutModule.h
Declaration of interface for layout algorithms (class LayoutModule)
ogdf::PlanarizationLayout::minCliqueSize
void minCliqueSize(int i)
Set the option minCliqueSize to i.
Definition: PlanarizationLayout.h:99
ogdf::CCLayoutPackModule
Base class of algorithms that arrange/pack layouts of connected components.
Definition: CCLayoutPackModule.h:46
ogdf::PlanarizationLayout::m_planarLayouter
std::unique_ptr< LayoutPlanRepModule > m_planarLayouter
The module for computing a planar layout.
Definition: PlanarizationLayout.h:163
ogdf::PlanarizationLayout::m_crossMin
std::unique_ptr< CrossingMinimizationModule > m_crossMin
The module for computing a planar subgraph.
Definition: PlanarizationLayout.h:157
ogdf::PlanarizationLayout::setPlanarLayouter
void setPlanarLayouter(LayoutPlanRepModule *pPlanarLayouter)
Sets the module option for the planar layout algorithm.
Definition: PlanarizationLayout.h:126
ogdf::Layout
Stores a layout of a graph (coordinates of nodes, bend points of edges).
Definition: Layout.h:46
ogdf::PlanarizationLayout::m_nCrossings
int m_nCrossings
The number of crossings in the computed layout.
Definition: PlanarizationLayout.h:169
ogdf::Array
The parameterized class Array implements dynamic arrays of type E.
Definition: Array.h:214
ogdf::PlanarizationLayout::m_cliqueSize
int m_cliqueSize
The minimum size of cliques to search for.
Definition: PlanarizationLayout.h:171
ogdf::LayoutPlanRepModule
Interface for planar layout algorithms (used in the planarization approach).
Definition: LayoutPlanRepModule.h:45
CCLayoutPackModule.h
Declaration of interface for algorithms that arrange/pack layouts of connected components.
ogdf::PlanarizationLayout::setEmbedder
void setEmbedder(EmbedderModule *pEmbedder)
Sets the module option for the graph embedding algorithm.
Definition: PlanarizationLayout.h:115
ogdf::List
Doubly linked lists (maintaining the length of the list).
Definition: List.h:42
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
CliqueReplacer.h
Handling of clique replacement in planarization layout.
ogdf::PlanarizationLayout::pageRatio
double pageRatio() const
Returns the current setting of option pageRatio.
Definition: PlanarizationLayout.h:86
ogdf::PlanarizationLayout::m_embedder
std::unique_ptr< EmbedderModule > m_embedder
The module for planar embedding.
Definition: PlanarizationLayout.h:160
ogdf::EmbedderModule
Base class for embedder algorithms.
Definition: EmbedderModule.h:49
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
EmbedderModule.h
Defines ogdf::EmbedderModule.
ogdf::PlanarizationLayout::m_pageRatio
double m_pageRatio
The desired page ratio.
Definition: PlanarizationLayout.h:168
LayoutPlanRepModule.h
Declaration of interface for planar layout algorithms (used in planarization approach).
ogdf::PlanarizationLayout::~PlanarizationLayout
~PlanarizationLayout()
Destructor.
Definition: PlanarizationLayout.h:55
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:233
ogdf::PlanarizationLayout::setPacker
void setPacker(CCLayoutPackModule *pPacker)
Sets the module option for the arrangement of connected components.
Definition: PlanarizationLayout.h:136
ogdf::PlanarizationLayout::pageRatio
void pageRatio(double ratio)
Sets the option pageRatio to ratio.
Definition: PlanarizationLayout.h:89
ogdf::LayoutModule
Interface of general layout algorithms.
Definition: LayoutModule.h:44