y.layout.hierarchic
Class TopologicalLayerer

java.lang.Object
  |
  +--y.layout.hierarchic.TopologicalLayerer
All Implemented Interfaces:
Layerer

public class TopologicalLayerer
extends Object
implements 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
 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 reranked after the initial topological layering step.

See Also:
Constant Field Values

DOWN_SHIFT

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

See Also:
Constant Field Values

TIGHT_TREE

public static final byte TIGHT_TREE
Ranking policy specifier. Nodes get reranked 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 TopologicalLayerer.TIGHT_TREE is set.

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

getRankingPolicy

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

See Also:
TopologicalLayerer.setRankingPolicy(byte)

assignNodeLayer

public int assignNodeLayer(LayoutGraph g,
                           NodeMap layer,
                           EdgeList reversedEdges)
This method assigns the nodes in the graph to layers.
POSTCONDITION: Forall (v,w) in E: layer(v) < layer(w) !

Specified by:
assignNodeLayer in interface Layerer
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

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

2003