Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
PlanarStraightLayout.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>
37#include <ogdf/basic/geometry.h>
42
43#include <memory>
44
45namespace ogdf {
46class GridLayout;
47class ShellingOrder;
48
118public:
121
123
135 bool sizeOptimization() const { return m_sizeOptimization; }
136
138 void sizeOptimization(bool opt) { m_sizeOptimization = opt; }
139
147 double baseRatio() const { return m_baseRatio; }
148
150 void baseRatio(double ratio) { m_baseRatio = ratio; }
151
163 void setAugmenter(AugmentationModule* pAugmenter) { m_augmenter.reset(pAugmenter); }
164
166 void setShellingOrder(ShellingOrderModule* pOrder) { m_computeOrder.reset(pOrder); }
167
169 void setEmbedder(EmbedderModule* pEmbedder) { m_embedder.reset(pEmbedder); }
170
172
173private:
175 double m_baseRatio;
176
177 std::unique_ptr<EmbedderModule> m_embedder;
178 std::unique_ptr<AugmentationModule> m_augmenter;
179 std::unique_ptr<ShellingOrderModule> m_computeOrder;
180
181 virtual void doCall(const Graph& G, adjEntry adjExternal, GridLayout& gridLayout,
182 IPoint& boundingBox, bool fixEmbedding) override;
183
185};
186
187}
Declaration of interface for graph augmentation algorithms.
Defines ogdf::EmbedderModule.
Includes declaration of graph class.
Declaration of interface for grid layout algorithms.
Declares the base class ShellingOrderModule for modules that compute a shelling order of a graph.
Declaration of classes GenericPoint, GenericPolyline, GenericLine, GenericSegment,...
Basic declarations, included by all source files.
Class for adjacency list elements.
Definition Graph_d.h:143
The base class for graph augmentation algorithms.
Base class for embedder algorithms.
Data type for general directed graphs (adjacency list representation).
Definition Graph_d.h:866
Representation of a graph's grid layout.
Definition GridLayout.h:47
Base class for planar grid layout algorithms.
Implementation of the Planar-Straight layout algorithm.
void computeCoordinates(const Graph &G, ShellingOrder &lmc, NodeArray< int > &x, NodeArray< int > &y)
double m_baseRatio
The option for specifying the base ratio.
bool sizeOptimization() const
Returns the current setting of option sizeOptimization.
void setShellingOrder(ShellingOrderModule *pOrder)
Sets the shelling order module.
std::unique_ptr< AugmentationModule > m_augmenter
The augmentation module.
double baseRatio() const
Returns the current setting of option baseRatio.
std::unique_ptr< ShellingOrderModule > m_computeOrder
The shelling order module.
std::unique_ptr< EmbedderModule > m_embedder
The planar embedder module.
void setEmbedder(EmbedderModule *pEmbedder)
Sets the module option for the graph embedding algorithm.
void baseRatio(double ratio)
Sets the option baseRatio to ratio.
bool m_sizeOptimization
The option for size optimization.
void sizeOptimization(bool opt)
Sets the option sizeOptimization to opt.
void setAugmenter(AugmentationModule *pAugmenter)
Sets the augmentation module.
virtual void doCall(const Graph &G, adjEntry adjExternal, GridLayout &gridLayout, IPoint &boundingBox, bool fixEmbedding) override
Implements the algorithm call.
PlanarStraightLayout()
Constructs an instance of the Planar-Straight layout algorithm.
The shelling order of a graph.
Base class for modules that compute a shelling order of a graph.
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.