de.cau.cs.kieler.klay.layered.p1cycles
Class GreedyCycleBreaker
java.lang.Object
de.cau.cs.kieler.core.alg.AbstractAlgorithm
de.cau.cs.kieler.klay.layered.p1cycles.GreedyCycleBreaker
- All Implemented Interfaces:
- IAlgorithm, ILayoutPhase, ILayoutProcessor
public class GreedyCycleBreaker
- extends AbstractAlgorithm
- implements ILayoutPhase
Cycle breaker implementation that uses a greedy algorithm. Inspired by Section 9.4 of
- Giuseppe di Battista, Peter Eades, Roberto Tamassia, Ioannis G. Tollis,
Graph Drawing: Algorithms for the Visualization of Graphs,
Prentice Hall, New Jersey, 1999
This cycle breaker doesn't support layer constraints out of the box. If layer
constraints should be observed,
EdgeAndLayerConstraintEdgeReverser
and
LayerConstraintProcessor
should
be used.
- Precondition:
- none
- Postcondition:
- the graph has no cycles, but possibly
new nodes and edges
- See Also:
EdgeAndLayerConstraintEdgeReverser
,
LayerConstraintProcessor
- Rating

Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
GreedyCycleBreaker
public GreedyCycleBreaker()
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