Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

FastSimpleHierarchyLayout.h
Go to the documentation of this file.
1 
33 #pragma once
34 
35 #include <ogdf/basic/NodeArray.h>
36 #include <ogdf/layered/Hierarchy.h>
38 
39 namespace ogdf {
40 
87 private:
88  double m_minXSep;
89  double m_ySep;
90  bool m_balanced;
91  bool m_downward;
93 
94 protected:
95  virtual void doCall(const HierarchyLevelsBase& levels, GraphAttributes& AGC) override;
96 
97 public:
99 
105 
106 
109 
110  // destructor
112 
115 
117  double nodeDistance() const { return m_minXSep; }
118 
120  void nodeDistance(double dist) { m_minXSep = dist; }
121 
123  double layerDistance() const { return m_ySep; }
124 
126  void layerDistance(double dist) { m_ySep = dist; }
127 
129  bool downward() const { return m_downward; }
130 
132  void downward(bool d) { m_downward = d; }
133 
135  bool leftToRight() const { return m_leftToRight; }
136 
138  void leftToRight(bool b) { m_leftToRight = b; }
139 
141  bool balanced() const { return m_balanced; }
142 
144  void balanced(bool b) { m_balanced = b; }
145 
146 
147 private:
158  void markType1Conflicts(const HierarchyLevelsBase& levels, bool downward,
159  NodeArray<NodeArray<bool>>& type1Conflicts);
160 
172  void verticalAlignment(const HierarchyLevelsBase& levels, NodeArray<node>& root,
173  NodeArray<node>& align, const NodeArray<NodeArray<bool>>& type1Conflicts,
174  const bool downward, const bool leftToRight);
175 
185  void computeBlockWidths(const GraphCopy& GC, const GraphAttributes& GCA, NodeArray<node>& root,
186  NodeArray<double>& blockWidth);
187 
199  void horizontalCompactation(const NodeArray<node>& align, const HierarchyLevelsBase& levels,
200  const NodeArray<node>& root, const NodeArray<double>& blockWidth, NodeArray<double>& x,
201  const bool leftToRight, bool downward);
202 
216  void placeBlock(node v, NodeArray<node>& sink, NodeArray<double>& shift, NodeArray<double>& x,
217  const NodeArray<node>& align, const HierarchyLevelsBase& levels,
218  const NodeArray<double>& blockWidth, const NodeArray<node>& root, const bool leftToRight);
219 
226  node virtualTwinNode(const HierarchyLevelsBase& levels, const node v,
227  const HierarchyLevelsBase::TraversingDir dir) const;
228 
237  node pred(const node v, const HierarchyLevelsBase& levels, const bool leftToRight);
238 };
239 
240 }
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::FastSimpleHierarchyLayout::m_balanced
bool m_balanced
stores the option balanced.
Definition: FastSimpleHierarchyLayout.h:90
ogdf::FastSimpleHierarchyLayout::downward
void downward(bool d)
Sets the option downward to d.
Definition: FastSimpleHierarchyLayout.h:132
ogdf::HierarchyLayoutModule
Interface of hierarchy layout algorithms.
Definition: HierarchyLayoutModule.h:47
ogdf::GraphCopy
Copies of graphs supporting edge splitting.
Definition: GraphCopy.h:384
ogdf::FastSimpleHierarchyLayout
Coordinate assignment phase for the Sugiyama algorithm by Ulrik Brandes and Boris Köpf.
Definition: FastSimpleHierarchyLayout.h:86
ogdf::HierarchyLevelsBase
Definition: CrossingMinInterfaces.h:61
ogdf::FastSimpleHierarchyLayout::m_leftToRight
bool m_leftToRight
stores the option left-to-right.
Definition: FastSimpleHierarchyLayout.h:92
ogdf::FastSimpleHierarchyLayout::leftToRight
bool leftToRight() const
Returns the option left-to-right.
Definition: FastSimpleHierarchyLayout.h:135
ogdf::FastSimpleHierarchyLayout::downward
bool downward() const
Returns the option downward.
Definition: FastSimpleHierarchyLayout.h:129
ogdf::HierarchyLevelsBase::TraversingDir
TraversingDir
Definition: CrossingMinInterfaces.h:71
ogdf::FastSimpleHierarchyLayout::balanced
bool balanced() const
Returns the option balanced.
Definition: FastSimpleHierarchyLayout.h:141
ogdf::FastSimpleHierarchyLayout::layerDistance
void layerDistance(double dist)
Sets the option layer distance to dist.
Definition: FastSimpleHierarchyLayout.h:126
ogdf::FastSimpleHierarchyLayout::leftToRight
void leftToRight(bool b)
Sets the option left-to-right to b.
Definition: FastSimpleHierarchyLayout.h:138
ogdf::FastSimpleHierarchyLayout::m_ySep
double m_ySep
stores the option layer distance.
Definition: FastSimpleHierarchyLayout.h:89
ogdf::FastSimpleHierarchyLayout::nodeDistance
double nodeDistance() const
Returns the option node distance.
Definition: FastSimpleHierarchyLayout.h:117
ogdf::FastSimpleHierarchyLayout::nodeDistance
void nodeDistance(double dist)
Sets the option node distance to dist.
Definition: FastSimpleHierarchyLayout.h:120
ogdf::internal::GraphRegisteredArray
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition: Graph_d.h:651
ogdf::FastSimpleHierarchyLayout::m_minXSep
double m_minXSep
stores the option node distance.
Definition: FastSimpleHierarchyLayout.h:88
NodeArray.h
Declaration and implementation of NodeArray class.
ogdf::FastSimpleHierarchyLayout::~FastSimpleHierarchyLayout
virtual ~FastSimpleHierarchyLayout()
Definition: FastSimpleHierarchyLayout.h:111
ogdf::FastSimpleHierarchyLayout::balanced
void balanced(bool b)
Sets the option balanced to b.
Definition: FastSimpleHierarchyLayout.h:144
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
HierarchyLayoutModule.h
Declaration of interface hierarchy layout algorithms (3. phase of Sugiyama).
Hierarchy.h
Declaration of Hierarchy class.
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:233
ogdf::FastSimpleHierarchyLayout::m_downward
bool m_downward
stores the option downward.
Definition: FastSimpleHierarchyLayout.h:91
ogdf::FastSimpleHierarchyLayout::layerDistance
double layerDistance() const
Returns the option layer distance.
Definition: FastSimpleHierarchyLayout.h:123