Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

ScalingLayout.h
Go to the documentation of this file.
1 
32 #pragma once
33 
37 
38 #include <memory>
39 
40 namespace ogdf {
41 
43 
48 public:
52  enum class ScalingType {
54  RelativeToDrawing,
60  RelativeToAvgLength,
62  RelativeToDesiredLength,
64  Absolute
65  };
66 
67  ScalingLayout();
68 
70 
76  virtual void call(GraphAttributes& GA) override;
77 
83  virtual void call(MultilevelGraph& MLG) override;
84 
91  void setScaling(double min, double max);
92 
98  void setExtraScalingSteps(unsigned int steps);
99 
105  void setSecondaryLayout(LayoutModule* layout);
106 
112  void setMMM(ModularMultilevelMixer* mmm);
113 
119  void setScalingType(ScalingType type);
120 
126  void setLayoutRepeats(unsigned int repeats);
127  //TODO: only a workaround, this should be retrieved from the layout module
128  //when we have a interface class on top of Layoutmodule that allows this
129  void setDesiredEdgeLength(double eLength);
130 
131 private:
132  // Usually a simple force-directed / energy-based Layout should be chosen.
133  std::unique_ptr<LayoutModule> m_secondaryLayoutModule;
134 
135  double m_minScaling;
136  double m_maxScaling;
139 
140  // 0 = scale to maxScaling only
141  unsigned int m_extraScalingSteps;
142 
143  unsigned int m_layoutRepeats;
144 
146 };
147 
148 }
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
ModularMultilevelMixer.h
MMM is a Multilevel Graph drawing Algorithm that can use different modules.
ogdf::ScalingLayout::ScalingType
ScalingType
To define the relative scale used for a Graph, the ScalingType is applied.
Definition: ScalingLayout.h:52
ogdf::MultilevelGraph
Definition: MultilevelGraph.h:66
ogdf::ScalingLayout::m_mmm
ModularMultilevelMixer * m_mmm
Used to derive level size ratio if st_absolute.
Definition: ScalingLayout.h:137
ogdf::ScalingLayout::m_secondaryLayoutModule
std::unique_ptr< LayoutModule > m_secondaryLayoutModule
Definition: ScalingLayout.h:133
ogdf::MultilevelLayoutModule::call
virtual void call(GraphAttributes &GA) override=0
Computes a layout of graph GA.
backward::Color::type
type
Definition: backward.hpp:1716
MultilevelLayoutModule.h
Declaration of interface for layout algorithms that allow calls with a MultilevelGraph parameter (cla...
ogdf::ScalingLayout::m_scalingType
ScalingType m_scalingType
Definition: ScalingLayout.h:145
ogdf::ScalingLayout::m_maxScaling
double m_maxScaling
Definition: ScalingLayout.h:136
ogdf::MultilevelLayoutModule
Interface of general layout algorithms that also allow a MultilevelGraph as call parameter,...
Definition: MultilevelLayoutModule.h:45
MultilevelGraph.h
MLG is the main data structure for ModularMultilevelMixer.
ogdf::ScalingLayout::m_layoutRepeats
unsigned int m_layoutRepeats
Definition: ScalingLayout.h:143
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
ogdf::ScalingLayout::m_extraScalingSteps
unsigned int m_extraScalingSteps
Definition: ScalingLayout.h:141
ogdf::ScalingLayout
Scales a graph layout and calls a secondary layout algorithm.
Definition: ScalingLayout.h:47
ogdf::ModularMultilevelMixer
Modular multilevel graph layout.
Definition: ModularMultilevelMixer.h:73
ogdf::ScalingLayout::m_desEdgeLength
double m_desEdgeLength
Definition: ScalingLayout.h:138
ogdf::ScalingLayout::m_minScaling
double m_minScaling
Definition: ScalingLayout.h:135
ogdf::LayoutModule
Interface of general layout algorithms.
Definition: LayoutModule.h:44