Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

GridLayoutModule.h
Go to the documentation of this file.
1 
32 #pragma once
33 
34 #include <ogdf/basic/GridLayout.h>
36 #include <ogdf/planarity/PlanRep.h>
37 
38 namespace ogdf {
39 
55  friend class PlanarGridLayoutModule;
56 
57 public:
59  GridLayoutModule() : LayoutModule(), m_separation(LayoutStandards::defaultNodeSeparation()) { }
60 
61  virtual ~GridLayoutModule() { }
62 
71  virtual void call(GraphAttributes& GA) override final;
72 
81  void callGrid(const Graph& G, GridLayout& gridLayout);
82 
84 
89  double separation() const { return m_separation; }
90 
92 
97  void separation(double sep) { m_separation = sep; }
98 
99  const IPoint& gridBoundingBox() const { return m_gridBoundingBox; }
100 
101 protected:
114  virtual void doCall(const Graph& G, GridLayout& gridLayout, IPoint& boundingBox) = 0;
115 
117 
118 private:
119  double m_separation;
120 
122  void mapGridLayout(const Graph& G, GridLayout& gridLayout, GraphAttributes& AG);
123 };
124 
134 public:
137 
139 
149  void callFixEmbed(GraphAttributes& AG, adjEntry adjExternal = nullptr);
150 
161  void callGridFixEmbed(const Graph& G, GridLayout& gridLayout, adjEntry adjExternal = nullptr);
162 
163 protected:
181  virtual void doCall(const Graph& G, adjEntry adjExternal, GridLayout& gridLayout,
182  IPoint& boundingBox, bool fixEmbedding) = 0;
183 
185  virtual void doCall(const Graph& G, GridLayout& gridLayout, IPoint& boundingBox) override {
186  doCall(G, nullptr, gridLayout, boundingBox, false);
187  }
188 
194  bool handleTrivial(const Graph& G, GridLayout& gridLayout, IPoint& boundingBox);
195 };
196 
208 public:
211 
213 
224  void callGrid(const Graph& G, GridLayout& gridLayout) {
225  PlanarGridLayoutModule::callGrid(G, gridLayout);
226  }
227 
234  void callGrid(PlanRep& PG, GridLayout& gridLayout);
235 
246  void callGridFixEmbed(const Graph& G, GridLayout& gridLayout, adjEntry adjExternal = nullptr) {
247  PlanarGridLayoutModule::callGridFixEmbed(G, gridLayout, adjExternal);
248  }
249 
260  void callGridFixEmbed(PlanRep& PG, GridLayout& gridLayout, adjEntry adjExternal = nullptr);
261 
262 protected:
277  virtual void doCall(PlanRep& PG, adjEntry adjExternal, GridLayout& gridLayout,
278  IPoint& boundingBox, bool fixEmbedding) = 0;
279 
280 
282  void doCall(const Graph& G, adjEntry adjExternal, GridLayout& gridLayout, IPoint& boundingBox,
283  bool fixEmbedding) override;
284 
286 };
287 
288 }
ogdf::PlanarGridLayoutModule::callGridFixEmbed
void callGridFixEmbed(const Graph &G, GridLayout &gridLayout, adjEntry adjExternal=nullptr)
Calls the grid layout algorithm with a fixed planar embedding (call for GridLayout).
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::GridLayoutPlanRepModule::GridLayoutPlanRepModule
GridLayoutPlanRepModule()
Initializes a plan-rep grid layout module.
Definition: GridLayoutModule.h:210
ogdf::GenericPoint< int >
ogdf::GridLayoutModule::~GridLayoutModule
virtual ~GridLayoutModule()
Definition: GridLayoutModule.h:61
ogdf::PlanarGridLayoutModule::doCall
virtual void doCall(const Graph &G, GridLayout &gridLayout, IPoint &boundingBox) override
Implements the GridLayoutModule::doCall().
Definition: GridLayoutModule.h:185
ogdf::PlanRep
Planarized representations (of a connected component) of a graph.
Definition: PlanRep.h:57
ogdf::GridLayoutModule::m_separation
double m_separation
The minimum distance between nodes.
Definition: GridLayoutModule.h:119
ogdf::GridLayoutModule::separation
double separation() const
Returns the current setting of the minimum distance between nodes.
Definition: GridLayoutModule.h:89
ogdf::GridLayoutPlanRepModule::callGrid
void callGrid(const Graph &G, GridLayout &gridLayout)
Calls the grid layout algorithm (call for GridLayout).
Definition: GridLayoutModule.h:224
LayoutModule.h
Declaration of interface for layout algorithms (class LayoutModule)
PlanRep.h
Declaration of a base class for planar representations of graphs and cluster graphs.
ogdf::AdjElement
Class for adjacency list elements.
Definition: Graph_d.h:135
ogdf::GridLayoutPlanRepModule
Base class for grid layout algorithms operating on a PlanRep.
Definition: GridLayoutModule.h:207
ogdf::GridLayoutPlanRepModule::callGridFixEmbed
void callGridFixEmbed(const Graph &G, GridLayout &gridLayout, adjEntry adjExternal=nullptr)
Calls the grid layout algorithm with a fixed planar embedding (call for GridLayout).
Definition: GridLayoutModule.h:246
ogdf::PlanarGridLayoutModule
Base class for planar grid layout algorithms.
Definition: GridLayoutModule.h:133
ogdf::Graph
Data type for general directed graphs (adjacency list representation).
Definition: Graph_d.h:862
ogdf::LayoutStandards
Standard values for graphical attributes and layouts.
Definition: LayoutStandards.h:43
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
ogdf::GridLayoutModule::callGrid
void callGrid(const Graph &G, GridLayout &gridLayout)
Calls the grid layout algorithm (call for GridLayout).
ogdf::PlanarGridLayoutModule::~PlanarGridLayoutModule
virtual ~PlanarGridLayoutModule()
Definition: GridLayoutModule.h:138
ogdf::GridLayoutModule::gridBoundingBox
const IPoint & gridBoundingBox() const
Definition: GridLayoutModule.h:99
ogdf::GridLayoutModule::separation
void separation(double sep)
Sets the minimum distance between nodes.
Definition: GridLayoutModule.h:97
ogdf::PlanarGridLayoutModule::doCall
virtual void doCall(const Graph &G, adjEntry adjExternal, GridLayout &gridLayout, IPoint &boundingBox, bool fixEmbedding)=0
Implements the algorithm call.
ogdf::GridLayoutModule::m_gridBoundingBox
IPoint m_gridBoundingBox
The computed bounding box of the grid layout.
Definition: GridLayoutModule.h:116
ogdf::GridLayout
Representation of a graph's grid layout.
Definition: GridLayout.h:46
ogdf::GridLayoutModule
Base class for grid layout algorithms.
Definition: GridLayoutModule.h:53
ogdf::PlanarGridLayoutModule::PlanarGridLayoutModule
PlanarGridLayoutModule()
Initializes a planar grid layout module.
Definition: GridLayoutModule.h:136
GridLayout.h
Declaration of class GridLayout.
ogdf::GridLayoutModule::GridLayoutModule
GridLayoutModule()
Initializes a grid layout module.
Definition: GridLayoutModule.h:59
ogdf::GridLayoutPlanRepModule::~GridLayoutPlanRepModule
virtual ~GridLayoutPlanRepModule()
Definition: GridLayoutModule.h:212
ogdf::LayoutModule
Interface of general layout algorithms.
Definition: LayoutModule.h:44