Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

OptimalHierarchyClusterLayout.h
Go to the documentation of this file.
1 
33 #pragma once
34 
35 #include <ogdf/basic/tuples.h>
37 
38 namespace ogdf {
39 
40 
42 
81 public:
84 
87 
88  // destructor
90 
93 
99  double nodeDistance() const { return m_nodeDistance; }
101 
103  void nodeDistance(double x) {
104  if (x >= 0) {
105  m_nodeDistance = x;
106  }
107  }
108 
110  double layerDistance() const { return m_layerDistance; }
111 
113  void layerDistance(double x) {
114  if (x >= 0) {
115  m_layerDistance = x;
116  }
117  }
118 
120 
124  bool fixedLayerDistance() const { return m_fixedLayerDistance; }
125 
127  void fixedLayerDistance(bool b) { m_fixedLayerDistance = b; }
128 
130  double weightSegments() const { return m_weightSegments; }
131 
133  void weightSegments(double w) {
134  if (w > 0.0 && w <= 100.0) {
135  m_weightSegments = w;
136  }
137  }
138 
140  double weightBalancing() const { return m_weightBalancing; }
141 
143  void weightBalancing(double w) {
144  if (w >= 0.0 && w <= 100.0) {
145  m_weightBalancing = w;
146  }
147  }
148 
150  double weightClusters() const { return m_weightClusters; }
151 
153  void weightClusters(double w) {
154  if (w > 0.0 && w <= 100.0) {
155  m_weightClusters = w;
156  }
157  }
158 
160 
161 protected:
163  virtual void doCall(const ExtendedNestingGraph& H, ClusterGraphCopyAttributes& ACGC) override;
164 
165 private:
166  void buildLayerList(const LHTreeNode* vNode, List<Tuple2<int, double>>& L);
167 
168  void computeXCoordinates(const ExtendedNestingGraph& H, ClusterGraphCopyAttributes& AGC);
169  void computeYCoordinates(const ExtendedNestingGraph& H, ClusterGraphCopyAttributes& AGC);
170 
171  // options
172  double m_nodeDistance;
175 
179 
180  // auxiliary data
183 
188 
192 };
193 
194 }
ogdf::OptimalHierarchyClusterLayout::fixedLayerDistance
bool fixedLayerDistance() const
Returns the current setting of option fixedLayerDistance.
Definition: OptimalHierarchyClusterLayout.h:124
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
ogdf::OptimalHierarchyClusterLayout::weightSegments
void weightSegments(double w)
Sets the weight of edge segments connecting to vertical segments to w.
Definition: OptimalHierarchyClusterLayout.h:133
ogdf::OptimalHierarchyClusterLayout::m_fixedLayerDistance
bool m_fixedLayerDistance
Use fixed layer distances?
Definition: OptimalHierarchyClusterLayout.h:174
ogdf::Tuple2
Tuples of two elements (2-tuples).
Definition: tuples.h:46
ogdf::OptimalHierarchyClusterLayout::m_isVirtual
NodeArray< bool > m_isVirtual
Definition: OptimalHierarchyClusterLayout.h:189
ogdf::OptimalHierarchyClusterLayout::weightClusters
double weightClusters() const
Returns the weight for cluster boundary variables.
Definition: OptimalHierarchyClusterLayout.h:150
ogdf::ClusterArrayBase
RegisteredArray for labeling the clusters of a ClusterGraph.
Definition: ClusterGraph.h:304
ogdf::OptimalHierarchyClusterLayout::weightSegments
double weightSegments() const
Returns the weight of edge segments connecting to vertical segments.
Definition: OptimalHierarchyClusterLayout.h:130
ogdf::OptimalHierarchyClusterLayout::weightClusters
void weightClusters(double w)
Sets the weight for cluster boundary variables to w.
Definition: OptimalHierarchyClusterLayout.h:153
ogdf::HierarchyClusterLayoutModule
Interface of hierarchy layout algorithms for cluster graphs.
Definition: HierarchyClusterLayoutModule.h:45
ogdf::LHTreeNode
Definition: ExtendedNestingGraph.h:108
ogdf::OptimalHierarchyClusterLayout::fixedLayerDistance
void fixedLayerDistance(bool b)
Sets the option fixedLayerDistance to b.
Definition: OptimalHierarchyClusterLayout.h:127
ogdf::OptimalHierarchyClusterLayout::m_weightSegments
double m_weightSegments
The weight of edge segments.
Definition: OptimalHierarchyClusterLayout.h:176
ogdf::OptimalHierarchyClusterLayout::m_layerDistance
double m_layerDistance
The minimal distance between layers.
Definition: OptimalHierarchyClusterLayout.h:173
ogdf::OptimalHierarchyClusterLayout::layerDistance
double layerDistance() const
Returns the minimal allowed y-distance between layers.
Definition: OptimalHierarchyClusterLayout.h:110
ogdf::OptimalHierarchyClusterLayout::m_nodeDistance
double m_nodeDistance
The minimal distance between nodes.
Definition: OptimalHierarchyClusterLayout.h:172
ogdf::OptimalHierarchyClusterLayout::m_segmentOffset
int m_segmentOffset
Definition: OptimalHierarchyClusterLayout.h:185
ogdf::OptimalHierarchyClusterLayout::nodeDistance
void nodeDistance(double x)
Sets the minimal allowed x-distance between nodes on a layer to x.
Definition: OptimalHierarchyClusterLayout.h:103
ogdf::OptimalHierarchyClusterLayout::m_vIndex
NodeArray< int > m_vIndex
Definition: OptimalHierarchyClusterLayout.h:190
ogdf::OptimalHierarchyClusterLayout::weightBalancing
void weightBalancing(double w)
Sets the weight for balancing successors below a node to w; 0.0 means no balancing.
Definition: OptimalHierarchyClusterLayout.h:143
ogdf::OptimalHierarchyClusterLayout::~OptimalHierarchyClusterLayout
~OptimalHierarchyClusterLayout()
Definition: OptimalHierarchyClusterLayout.h:89
ogdf::OptimalHierarchyClusterLayout::m_weightBalancing
double m_weightBalancing
The weight for balancing.
Definition: OptimalHierarchyClusterLayout.h:177
HierarchyClusterLayoutModule.h
Declaration of interface for hierarchy layout algorithms (3. phase of Sugiyama) for cluster graphs.
ogdf::ClusterGraphCopyAttributes
Manages access on copy of an attributed clustered graph.
Definition: ClusterGraphCopyAttributes.h:45
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::OptimalHierarchyClusterLayout::layerDistance
void layerDistance(double x)
Sets the minimal allowed y-distance between layers to x.
Definition: OptimalHierarchyClusterLayout.h:113
ogdf::OptimalHierarchyClusterLayout::m_clusterLeftOffset
int m_clusterLeftOffset
Definition: OptimalHierarchyClusterLayout.h:186
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
ogdf::OptimalHierarchyClusterLayout::m_weightClusters
double m_weightClusters
The weight for cluster boundary variables.
Definition: OptimalHierarchyClusterLayout.h:178
ogdf::OptimalHierarchyClusterLayout::m_vertexOffset
int m_vertexOffset
Definition: OptimalHierarchyClusterLayout.h:184
ogdf::OptimalHierarchyClusterLayout::weightBalancing
double weightBalancing() const
Returns the weight for balancing successors below a node; 0.0 means no balancing.
Definition: OptimalHierarchyClusterLayout.h:140
ogdf::ExtendedNestingGraph
Definition: ExtendedNestingGraph.h:295
ogdf::OptimalHierarchyClusterLayout::m_pACGC
ClusterGraphCopyAttributes * m_pACGC
Definition: OptimalHierarchyClusterLayout.h:181
ogdf::OptimalHierarchyClusterLayout
The LP-based hierarchy cluster layout algorithm.
Definition: OptimalHierarchyClusterLayout.h:80
ogdf::OptimalHierarchyClusterLayout::m_cIndex
ClusterArray< int > m_cIndex
Definition: OptimalHierarchyClusterLayout.h:191
ogdf::OptimalHierarchyClusterLayout::m_clusterRightOffset
int m_clusterRightOffset
Definition: OptimalHierarchyClusterLayout.h:187
tuples.h
Declaration and implementation of class Tuple2, Tuple3 and Tuple4.
ogdf::OptimalHierarchyClusterLayout::m_pH
const ExtendedNestingGraph * m_pH
Definition: OptimalHierarchyClusterLayout.h:182