Class HierarchicalMinCrossLayoutAlgorithm<V,E>
- java.lang.Object
-
- org.jungrapht.visualization.layout.algorithms.AbstractHierarchicalMinCrossLayoutAlgorithm<V,E>
-
- org.jungrapht.visualization.layout.algorithms.HierarchicalMinCrossLayoutAlgorithm<V,E>
-
- Type Parameters:
V
- vertex typeE
- edge type
- All Implemented Interfaces:
Consumer<Function<V,Rectangle>>
,Layered<V,E>
,LayoutAlgorithm<V>
,AfterRunnable
,EdgeArticulationFunctionSupplier<E>
,ExecutorConsumer
,Threaded
,VertexBoundsFunctionConsumer<V>
public class HierarchicalMinCrossLayoutAlgorithm<V,E> extends AbstractHierarchicalMinCrossLayoutAlgorithm<V,E> implements LayoutAlgorithm<V>, VertexBoundsFunctionConsumer<V>, Layered<V,E>, AfterRunnable, ExecutorConsumer, Threaded
A Hierarchical Minimum-Cross layout algorithm based on Sugiyama. Uses the Eiglsperger optimations for large graphs. A threshold property may be used to control the decision to switch from the standard Sugiyama algorithm to the faster Eiglsperger algorithm.- See Also:
- "Methods for Visual Understanding Hierarchical System Structures. KOZO SUGIYAMA, MEMBER, IEEE, SHOJIRO TAGAWA, AND MITSUHIKO TODA, MEMBER, IEEE", "An E log E Line Crossing Algorithm for Levelled Graphs. Vance Waddle and Ashok Malhotra IBM Thomas J. Watson Research Center", "Simple and Efficient Bilayer Cross Counting. Wilhelm Barth, Petra Mutzel, Institut für Computergraphik und Algorithmen Technische Universität Wien, Michael Jünger, Institut für Informatik Universität zu Köln", "Fast and Simple Horizontal Coordinate Assignment, Ulrik Brandes and Boris Köpf, Department of Computer & Information Science, University of Konstanz", "An Efficient Implementation of Sugiyama's Algorithm for Layered Graph Drawing. Markus Eiglsperger, Martin Siebenhaller, Michael Kaufman"
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
HierarchicalMinCrossLayoutAlgorithm.Builder<V,E,T extends HierarchicalMinCrossLayoutAlgorithm<V,E> & EdgeAwareLayoutAlgorithm<V,E>,B extends HierarchicalMinCrossLayoutAlgorithm.Builder<V,E,T,B>>
a Builder to create a configured instance-
Nested classes/interfaces inherited from interface org.jungrapht.visualization.layout.algorithms.LayoutAlgorithm
LayoutAlgorithm.NoOp<V>
-
Nested classes/interfaces inherited from interface org.jungrapht.visualization.layout.algorithms.util.Threaded
Threaded.NoOp
-
-
Field Summary
Fields Modifier and Type Field Description protected static String
EIGLSPERGER_THRESHOLD
protected int
eiglspergerThreshold
protected int
transposeLimit
-
Fields inherited from class org.jungrapht.visualization.layout.algorithms.AbstractHierarchicalMinCrossLayoutAlgorithm
after, bounds, cancelled, completionCounter, edgePointMap, executor, expandLayout, IDENTITY_SHAPE, layering, layoutModel, MAX_LEVEL_CROSS, maxLevelCross, maxLevelCrossFunction, MINCROSS_POST_STRAIGHTEN, MINCROSS_STRAIGHTEN_EDGES, MINCROSS_THREADED, postStraighten, roots, runnables, separateComponents, straightenEdges, threaded, transpose, TRANSPOSE_LIMIT, vertexBoundsFunction
-
-
Constructor Summary
Constructors Modifier Constructor Description HierarchicalMinCrossLayoutAlgorithm()
protected
HierarchicalMinCrossLayoutAlgorithm(Function<V,Rectangle> vertexShapeFunction, int eiglspergerThreshold, boolean straightenEdges, boolean postStraighten, boolean transpose, int transposeLimit, int maxLevelCross, Function<org.jgrapht.Graph<V,E>,Integer> maxLevelCrossFunction, boolean expandLayout, Layering layering, boolean threaded, Executor executor, boolean separateComponents, Runnable after)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <V,E>
HierarchicalMinCrossLayoutAlgorithm.Builder<V,E,?,?>builder()
static <V,E>
HierarchicalMinCrossLayoutAlgorithm.Builder<V,E,?,?>edgeAwareBuilder()
protected LayeredRunnable<E>
getRunnable(int componentCount, LayoutModel<V> componentLayoutModel)
-
Methods inherited from class org.jungrapht.visualization.layout.algorithms.AbstractHierarchicalMinCrossLayoutAlgorithm
cancel, constrained, getEdgeArticulationFunction, getExecutor, isComplete, isThreaded, runAfter, setAfter, setExecutor, setLayering, setMaxLevelCrossFunction, setThreaded, setVertexBoundsFunction, visit
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.jungrapht.visualization.layout.algorithms.util.AfterRunnable
runAfter, setAfter
-
Methods inherited from interface org.jungrapht.visualization.layout.algorithms.util.ExecutorConsumer
getExecutor, setExecutor
-
Methods inherited from interface org.jungrapht.visualization.layout.algorithms.Layered
setLayering, setMaxLevelCrossFunction
-
Methods inherited from interface org.jungrapht.visualization.layout.algorithms.LayoutAlgorithm
cancel, constrained, visit
-
Methods inherited from interface org.jungrapht.visualization.layout.algorithms.util.Threaded
cancel, isThreaded, setThreaded
-
Methods inherited from interface org.jungrapht.visualization.layout.algorithms.util.VertexBoundsFunctionConsumer
accept, setVertexBoundsFunction
-
-
-
-
Field Detail
-
EIGLSPERGER_THRESHOLD
protected static final String EIGLSPERGER_THRESHOLD
- See Also:
- Constant Field Values
-
eiglspergerThreshold
protected int eiglspergerThreshold
-
transposeLimit
protected int transposeLimit
-
-
Constructor Detail
-
HierarchicalMinCrossLayoutAlgorithm
public HierarchicalMinCrossLayoutAlgorithm()
-
HierarchicalMinCrossLayoutAlgorithm
protected HierarchicalMinCrossLayoutAlgorithm(Function<V,Rectangle> vertexShapeFunction, int eiglspergerThreshold, boolean straightenEdges, boolean postStraighten, boolean transpose, int transposeLimit, int maxLevelCross, Function<org.jgrapht.Graph<V,E>,Integer> maxLevelCrossFunction, boolean expandLayout, Layering layering, boolean threaded, Executor executor, boolean separateComponents, Runnable after)
-
-
Method Detail
-
edgeAwareBuilder
public static <V,E> HierarchicalMinCrossLayoutAlgorithm.Builder<V,E,?,?> edgeAwareBuilder()
- Type Parameters:
V
- vertex typeE
- edge type- Returns:
- a Builder ready to configure
-
builder
public static <V,E> HierarchicalMinCrossLayoutAlgorithm.Builder<V,E,?,?> builder()
-
getRunnable
protected LayeredRunnable<E> getRunnable(int componentCount, LayoutModel<V> componentLayoutModel)
- Specified by:
getRunnable
in classAbstractHierarchicalMinCrossLayoutAlgorithm<V,E>
-
-