The LP-based hierarchy layout algorithm. More...
#include <ogdf/layered/OptimalHierarchyLayout.h>
Public Member Functions | |
OptimalHierarchyLayout () | |
Creates an instance of optimal hierarchy layout. More... | |
OptimalHierarchyLayout (const OptimalHierarchyLayout &) | |
Copy constructor. More... | |
~OptimalHierarchyLayout () | |
OptimalHierarchyLayout & | operator= (const OptimalHierarchyLayout &) |
Assignment operator. More... | |
Optional parameters | |
double | nodeDistance () const |
Returns the minimal allowed x-distance between nodes on a layer. More... | |
void | nodeDistance (double x) |
Sets the minimal allowed x-distance between nodes on a layer to x . More... | |
double | layerDistance () const |
Returns the minimal allowed y-distance between layers. More... | |
void | layerDistance (double x) |
Sets the minimal allowed y-distance between layers to x . More... | |
bool | fixedLayerDistance () const |
Returns the current setting of option fixedLayerDistance. More... | |
void | fixedLayerDistance (bool b) |
Sets the option fixedLayerDistance to b . More... | |
double | weightSegments () const |
Returns the weight of edge segments connecting to vertical segments. More... | |
void | weightSegments (double w) |
Sets the weight of edge segments connecting to vertical segments to w . More... | |
double | weightBalancing () const |
Returns the weight for balancing successors below a node; 0.0 means no balancing. More... | |
void | weightBalancing (double w) |
Sets the weight for balancing successors below a node to w ; 0.0 means no balancing. More... | |
Public Member Functions inherited from ogdf::HierarchyLayoutModule | |
HierarchyLayoutModule () | |
Initializes a hierarchy layout module. More... | |
virtual | ~HierarchyLayoutModule () |
void | call (const HierarchyLevelsBase &levels, GraphAttributes &GA) |
Computes a hierarchy layout of levels in GA . More... | |
Protected Member Functions | |
virtual void | doCall (const HierarchyLevelsBase &levels, GraphAttributes &AGC) override |
Implements the algorithm call. More... | |
Private Member Functions | |
void | computeXCoordinates (const HierarchyLevelsBase &levels, GraphAttributes &AGC) |
void | computeYCoordinates (const HierarchyLevelsBase &levels, GraphAttributes &AGC) |
Private Attributes | |
bool | m_fixedLayerDistance |
Use fixed layer distances? More... | |
double | m_layerDistance |
The minimal distance between layers. More... | |
double | m_nodeDistance |
The minimal distance between nodes. More... | |
double | m_weightBalancing |
The weight for balancing. More... | |
double | m_weightSegments |
The weight of edge segments. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from ogdf::HierarchyLayoutModule | |
static void | dynLayerDistance (GraphAttributes &AGC, HierarchyLevelsBase &levels) |
Static Protected Member Functions inherited from ogdf::HierarchyLayoutModule | |
static double | getHeight (const GraphAttributes &GA, const HierarchyLevelsBase &levels, node v) |
Returns the GA height of node v or 0 if it is a dummy node in the hierarchy of levels . More... | |
static double | getWidth (const GraphAttributes &GA, const HierarchyLevelsBase &levels, node v) |
Returns the GA width of node v or 0 if it is a dummy node in the hierarchy of levels . More... | |
The LP-based hierarchy layout algorithm.
OptimalHierarchyLayout implements a hierarchy layout algorithm that is based on an LP-formulation. It is only available if OGDF is compiled with LP-solver support (e.g., Coin).
The used model avoids Spaghetti-effect like routing of edges by using long vertical segments as in FastHierarchyLayout. An additional balancing can be used which balances the successors below a node.
Option | Type | Default | Description |
---|---|---|---|
nodeDistance | double | 3.0 | The minimal allowed x-distance between nodes on a layer. |
layerDistance | double | 3.0 | The minimal allowed y-distance between layers. |
fixedLayerDistance | bool | false | If set to true, the distance between neighboured layers is always layerDistance; otherwise the distance is adjusted (increased) to improve readability. |
weightSegments | double | 2.0 | The weight of edge segments connecting to vertical segments. |
weightBalancing | double | 0.1 | The weight for balancing successors below a node; 0.0 means no balancing. |
Definition at line 78 of file OptimalHierarchyLayout.h.
ogdf::OptimalHierarchyLayout::OptimalHierarchyLayout | ( | ) |
Creates an instance of optimal hierarchy layout.
ogdf::OptimalHierarchyLayout::OptimalHierarchyLayout | ( | const OptimalHierarchyLayout & | ) |
Copy constructor.
|
inline |
Definition at line 87 of file OptimalHierarchyLayout.h.
|
private |
|
private |
|
overrideprotectedvirtual |
Implements the algorithm call.
Implements ogdf::HierarchyLayoutModule.
|
inline |
Returns the current setting of option fixedLayerDistance.
If set to true, the distance is always layerDistance; otherwise the distance is adjusted (increased) to improve readability.
Definition at line 122 of file OptimalHierarchyLayout.h.
|
inline |
Sets the option fixedLayerDistance to b
.
Definition at line 125 of file OptimalHierarchyLayout.h.
|
inline |
Returns the minimal allowed y-distance between layers.
Definition at line 108 of file OptimalHierarchyLayout.h.
|
inline |
Sets the minimal allowed y-distance between layers to x
.
Definition at line 111 of file OptimalHierarchyLayout.h.
|
inline |
Returns the minimal allowed x-distance between nodes on a layer.
Definition at line 98 of file OptimalHierarchyLayout.h.
|
inline |
Sets the minimal allowed x-distance between nodes on a layer to x
.
Definition at line 101 of file OptimalHierarchyLayout.h.
OptimalHierarchyLayout& ogdf::OptimalHierarchyLayout::operator= | ( | const OptimalHierarchyLayout & | ) |
Assignment operator.
|
inline |
Returns the weight for balancing successors below a node; 0.0 means no balancing.
Definition at line 138 of file OptimalHierarchyLayout.h.
|
inline |
Sets the weight for balancing successors below a node to w
; 0.0 means no balancing.
Definition at line 141 of file OptimalHierarchyLayout.h.
|
inline |
Returns the weight of edge segments connecting to vertical segments.
Definition at line 128 of file OptimalHierarchyLayout.h.
|
inline |
Sets the weight of edge segments connecting to vertical segments to w
.
Definition at line 131 of file OptimalHierarchyLayout.h.
|
private |
Use fixed layer distances?
Definition at line 160 of file OptimalHierarchyLayout.h.
|
private |
The minimal distance between layers.
Definition at line 159 of file OptimalHierarchyLayout.h.
|
private |
The minimal distance between nodes.
Definition at line 158 of file OptimalHierarchyLayout.h.
|
private |
The weight for balancing.
Definition at line 163 of file OptimalHierarchyLayout.h.
|
private |
The weight of edge segments.
Definition at line 162 of file OptimalHierarchyLayout.h.