Search this API

y.layout.hierarchic
Class TopologicalLayerer

java.lang.Object
  extended by y.layout.hierarchic.TopologicalLayerer
All Implemented Interfaces:
Layerer

public class TopologicalLayerer
extends Object
implements Layerer, Layerer

This class implements the first phase of the Sugiyama algorithm. It uses topological sorting to assign layers to the nodes.


Field Summary
static byte DOWN_SHIFT
          Ranking policy specifier.
static byte NO_RERANKING
          Ranking policy specifier.
static byte TIGHT_TREE
          Ranking policy specifier.
 
Constructor Summary
TopologicalLayerer()
           
 
Method Summary
 void assignLayers(LayoutGraph graph, Layers layers, LayoutDataProvider ldp)
          This method assigns all nodes in the graph to layers and registers them in the Layers instance.
 int assignNodeLayer(LayoutGraph g, NodeMap layer, EdgeList reversedEdges)
          This method assigns the nodes in the graph to layers.
 byte getRankingPolicy()
          Returns the currently active ranking policy within this layerer.
 void setRankingPolicy(byte p)
          Sets the (re)ranking policy used within this layerer.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NO_RERANKING

public static final byte NO_RERANKING
Ranking policy specifier. Nodes do not get re-ranked after the initial topological layering step.

See Also:
Constant Field Values

DOWN_SHIFT

public static final byte DOWN_SHIFT
Ranking policy specifier. Nodes get re-ranked by an inexpensive downshift rule.

See Also:
Constant Field Values

TIGHT_TREE

public static final byte TIGHT_TREE
Ranking policy specifier. Nodes get re-ranked by finding a spanning tree that contains only tight (length 1) edges.

See Also:
Constant Field Values
Constructor Detail

TopologicalLayerer

public TopologicalLayerer()
Method Detail

setRankingPolicy

public void setRankingPolicy(byte p)
Sets the (re)ranking policy used within this layerer. By default NO_RERANKING is set.

Parameters:
p - one of NO_RERANKING, DOWN_SHIFT and TIGHT_TREE.

getRankingPolicy

public byte getRankingPolicy()
Returns the currently active ranking policy within this layerer.

See Also:
setRankingPolicy(byte)

assignNodeLayer

public int assignNodeLayer(LayoutGraph g,
                           NodeMap layer,
                           EdgeList reversedEdges)
This method assigns the nodes in the graph to layers.

Parameters:
g - the graph for which the layers are determined.
layer - here the layers are stored
reversedEdges - here the edges are stored which had been reversed.
Returns:
the number of layers
Postcondition:
Forall (v,w) in E: layer(v) < layer(w)

assignLayers

public void assignLayers(LayoutGraph graph,
                         Layers layers,
                         LayoutDataProvider ldp)
Description copied from interface: Layerer
This method assigns all nodes in the graph to layers and registers them in the Layers instance. In order to create new layers, the factory method Layers.insert(byte, int) must be used.

Specified by:
assignLayers in interface Layerer
Parameters:
graph - the graph that contains the nodes that should be distributed into the layers
layers - the object that will be filled with the results of the calculation
ldp - LayoutDataProvider that can be used to query information about the nodes - note that positional information (see NodeData.getPosition() and NodeData.getLayer()) cannot be available at any time.
See Also:
Layers.insert(byte, int), Layer.add(y.base.Node)

© Copyright 2000-2013,
yWorks GmbH.
All rights reserved.