Open
Graph Drawing
Framework

 v.2007.11
 

ogdf::OptimalHierarchyLayout Class Reference

The LP-based hierarchy layout algorithm. More...

#include <OptimalHierarchyLayout.h>

Inheritance diagram for ogdf::OptimalHierarchyLayout:

ogdf::HierarchyLayoutModule

List of all members.

Public Member Functions

 OptimalHierarchyLayout ()
 Creates an instance of optimal hierarchy layout.
 OptimalHierarchyLayout (const OptimalHierarchyLayout &)
 Copy constructor.
 ~OptimalHierarchyLayout ()
OptimalHierarchyLayoutoperator= (const OptimalHierarchyLayout &)
 Assignment operator.
Optional parameters
double nodeDistance () const
 Returns the minimal allowed x-distance between nodes on a layer.
void nodeDistance (double x)
 Sets the minimal allowed x-distance between nodes on a layer to x.
double layerDistance () const
 Returns the minimal allowed y-distance between layers.
void layerDistance (double x)
 Sets the minimal allowed y-distance between layers to x.
bool fixedLayerDistance () const
 Returns the current setting of option fixedLayerDistance.
void fixedLayerDistance (bool b)
 Sets the option fixedLayerDistance to b.
double weightSegments () const
 Returns the weight of edge segments connecting to vertical segments.
void weightSegments (double w)
 Sets the weight of edge segments connecting to vertical segments to w.
double weightBalancing () const
 Returns the weight for balancing successors below a node; 0.0 means no balancing.
void weightBalancing (double w)
 Sets the weight for balancing successors below a node to w; 0.0 means no balancing.

Protected Member Functions

void doCall (const Hierarchy &H, GraphCopyAttributes &AGC)
 Implements the algorithm call.

Private Member Functions

void computeXCoordinates (const Hierarchy &H, GraphCopyAttributes &AGC)
void computeYCoordinates (const Hierarchy &H, GraphCopyAttributes &AGC)

Private Attributes

double m_nodeDistance
 The minimal distance between nodes.
double m_layerDistance
 The minimal distance between layers.
bool m_fixedLayerDistance
 Use fixed layer distances?
double m_weightSegments
 The weight of edge segments.
double m_weightBalancing
 The weight for balancing.


Detailed Description

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.

Optional parameters

OptionTypeDefaultDescription
nodeDistancedouble3.0 The minimal allowed x-distance between nodes on a layer.
layerDistancedouble3.0 The minimal allowed y-distance between layers.
fixedLayerDistanceboolfalse If set to true, the distance between neighboured layers is always layerDistance; otherwise the distance is adjusted (increased) to improve readability.
weightSegmentsdouble2.0 The weight of edge segments connecting to vertical segments.
weightBalancingdouble0.1 The weight for balancing successors below a node; 0.0 means no balancing.

Definition at line 101 of file OptimalHierarchyLayout.h.


Constructor & Destructor Documentation

ogdf::OptimalHierarchyLayout::OptimalHierarchyLayout (  ) 

Creates an instance of optimal hierarchy layout.

ogdf::OptimalHierarchyLayout::OptimalHierarchyLayout ( const OptimalHierarchyLayout  ) 

Copy constructor.

ogdf::OptimalHierarchyLayout::~OptimalHierarchyLayout (  )  [inline]

Definition at line 119 of file OptimalHierarchyLayout.h.


Member Function Documentation

OptimalHierarchyLayout& ogdf::OptimalHierarchyLayout::operator= ( const OptimalHierarchyLayout  ) 

Assignment operator.

double ogdf::OptimalHierarchyLayout::nodeDistance (  )  const [inline]

Returns the minimal allowed x-distance between nodes on a layer.

Definition at line 132 of file OptimalHierarchyLayout.h.

void ogdf::OptimalHierarchyLayout::nodeDistance ( double  x  )  [inline]

Sets the minimal allowed x-distance between nodes on a layer to x.

Definition at line 137 of file OptimalHierarchyLayout.h.

double ogdf::OptimalHierarchyLayout::layerDistance (  )  const [inline]

Returns the minimal allowed y-distance between layers.

Definition at line 143 of file OptimalHierarchyLayout.h.

void ogdf::OptimalHierarchyLayout::layerDistance ( double  x  )  [inline]

Sets the minimal allowed y-distance between layers to x.

Definition at line 148 of file OptimalHierarchyLayout.h.

bool ogdf::OptimalHierarchyLayout::fixedLayerDistance (  )  const [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 158 of file OptimalHierarchyLayout.h.

void ogdf::OptimalHierarchyLayout::fixedLayerDistance ( bool  b  )  [inline]

Sets the option fixedLayerDistance to b.

Definition at line 163 of file OptimalHierarchyLayout.h.

double ogdf::OptimalHierarchyLayout::weightSegments (  )  const [inline]

Returns the weight of edge segments connecting to vertical segments.

Definition at line 168 of file OptimalHierarchyLayout.h.

void ogdf::OptimalHierarchyLayout::weightSegments ( double  w  )  [inline]

Sets the weight of edge segments connecting to vertical segments to w.

Definition at line 173 of file OptimalHierarchyLayout.h.

double ogdf::OptimalHierarchyLayout::weightBalancing (  )  const [inline]

Returns the weight for balancing successors below a node; 0.0 means no balancing.

Definition at line 179 of file OptimalHierarchyLayout.h.

void ogdf::OptimalHierarchyLayout::weightBalancing ( double  w  )  [inline]

Sets the weight for balancing successors below a node to w; 0.0 means no balancing.

Definition at line 184 of file OptimalHierarchyLayout.h.

void ogdf::OptimalHierarchyLayout::doCall ( const Hierarchy H,
GraphCopyAttributes AGC 
) [protected, virtual]

Implements the algorithm call.

Implements ogdf::HierarchyLayoutModule.

void ogdf::OptimalHierarchyLayout::computeXCoordinates ( const Hierarchy H,
GraphCopyAttributes AGC 
) [private]

void ogdf::OptimalHierarchyLayout::computeYCoordinates ( const Hierarchy H,
GraphCopyAttributes AGC 
) [private]


Member Data Documentation

double ogdf::OptimalHierarchyLayout::m_nodeDistance [private]

The minimal distance between nodes.

Definition at line 204 of file OptimalHierarchyLayout.h.

double ogdf::OptimalHierarchyLayout::m_layerDistance [private]

The minimal distance between layers.

Definition at line 205 of file OptimalHierarchyLayout.h.

bool ogdf::OptimalHierarchyLayout::m_fixedLayerDistance [private]

Use fixed layer distances?

Definition at line 206 of file OptimalHierarchyLayout.h.

double ogdf::OptimalHierarchyLayout::m_weightSegments [private]

The weight of edge segments.

Definition at line 208 of file OptimalHierarchyLayout.h.

double ogdf::OptimalHierarchyLayout::m_weightBalancing [private]

The weight for balancing.

Definition at line 209 of file OptimalHierarchyLayout.h.


The documentation for this class was generated from the following file:

© 1999-2007 by oreas GmbH, © 2005-2007 by University Dortmund and University Cologne.

Generated on Thu Nov 22 19:40:12 2007 by doxygen 1.5.4.