de.cau.cs.kieler.klay.layered.p3order
Class LayerSweepCrossingMinimizer
java.lang.Object
de.cau.cs.kieler.core.alg.AbstractAlgorithm
de.cau.cs.kieler.klay.layered.p3order.LayerSweepCrossingMinimizer
- All Implemented Interfaces:
- IAlgorithm, ILayoutPhase, ILayoutProcessor
public class LayerSweepCrossingMinimizer
- extends AbstractAlgorithm
- implements ILayoutPhase
Crossing minimization module that performs one or more sweeps over the layers
while applying a two-layer crossing minimization heuristic on each pair of layers.
Inspired by
- Michael Forster. A Fast and Simple Heuristic for Constrained Two-Level
Crossing Reduction. In Graph Drawing, volume 3383 of LNCS,
pp. 206-216. Springer, 2005.
- Precondition:
- the graph has a proper layering, i.e. all
long edges have been splitted; all nodes have at least fixed port
sides.
- Postcondition:
- the order of nodes in each layer and the order
of ports in each node are optimized to yield as few edge crossings
as possible
- Rating

Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
LayerSweepCrossingMinimizer
public LayerSweepCrossingMinimizer()
getIntermediateProcessingStrategy
public IntermediateProcessingStrategy getIntermediateProcessingStrategy(LayeredGraph graph)
- Returns the intermediate layout processors this phase depends on.
- Specified by:
getIntermediateProcessingStrategy
in interface ILayoutPhase
- Parameters:
graph
- the layered graph to be processed. The strategy may vary
depending on certain properties of the graph.
- Returns:
- intermediate processing strategy. May be
null
.
process
public void process(LayeredGraph layeredGraph)
- Performs the phase's work on the given graph.
- Specified by:
process
in interface ILayoutProcessor
- Parameters:
layeredGraph
- a layered graph