Class SpringLayout<V,E>
java.lang.Object
edu.uci.ics.jung.algorithms.layout.AbstractLayout<V,E>
edu.uci.ics.jung.algorithms.layout.SpringLayout<V,E>
- All Implemented Interfaces:
com.google.common.base.Function<V,Point2D>, Layout<V, E>, IterativeContext, Function<V, Point2D>
- Direct Known Subclasses:
DAGLayout, SpringLayout2
The SpringLayout package represents a visualization of a set of nodes. The
SpringLayout, which is initialized with a Graph, assigns X/Y locations to
each node. When called
relax(), the SpringLayout moves the
visualization forward one step.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclassUsed for changing the size of the layout in response to a component's size.protected static class -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected doubleprotected intprotected com.google.common.cache.LoadingCache<V, SpringLayout.SpringVertexData> protected doubleFields inherited from class AbstractLayout
graph, initialized, locations, size -
Constructor Summary
ConstructorsConstructorDescriptionSpringLayout(Graph<V, E> g) Constructor for a SpringLayout for a raw graph with associated dimension--the input knows how big the graph is.Constructor for a SpringLayout for a raw graph with associated component. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidbooleandone()doubleintdoublevoidInitializes fields in the node that may not have been set during the constructor.booleanprotected voidprotected voidvoidreset()No effect.voidsetForceMultiplier(double force) Sets the force multiplier for this instance.voidsetRepulsionRange(int range) Sets the node repulsion range (in drawing area units) for this instance.voidWhen a visualization is resized, it presumably wants to fix the locations of the vertices and possibly to reinitialize its data.voidsetStretch(double stretch) Sets the stretch parameter for this instance.voidstep()Relaxation step.Methods inherited from class AbstractLayout
apply, getGraph, getSize, getX, getY, isLocked, lock, lock, offsetVertex, setGraph, setInitializer, setLocation, setLocationMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.google.common.base.Function
equals
-
Field Details
-
stretch
protected double stretch -
lengthFunction
-
repulsion_range_sq
protected int repulsion_range_sq -
force_multiplier
protected double force_multiplier -
springVertexData
-
-
Constructor Details
-
SpringLayout
-
SpringLayout
-
-
Method Details
-
getStretch
public double getStretch()- Returns:
- the current value for the stretch parameter
-
setSize
Description copied from class:AbstractLayoutWhen a visualization is resized, it presumably wants to fix the locations of the vertices and possibly to reinitialize its data. The current method calls initializeLocations followed by initialize_local. -
setStretch
public void setStretch(double stretch) Sets the stretch parameter for this instance. This value specifies how much the degrees of an edge's incident vertices should influence how easily the endpoints of that edge can move (that is, that edge's tendency to change its length).
The default value is 0.70. Positive values less than 1 cause high-degree vertices to move less than low-degree vertices, and values > 1 cause high-degree vertices to move more than low-degree vertices. Negative values will have unpredictable and inconsistent results.
- Parameters:
stretch- the stretch parameter
-
getRepulsionRange
public int getRepulsionRange() -
setRepulsionRange
public void setRepulsionRange(int range) Sets the node repulsion range (in drawing area units) for this instance. Outside this range, nodes do not repel each other. The default value is 100. Negative values are treated as their positive equivalents.- Parameters:
range- the maximum repulsion range
-
getForceMultiplier
public double getForceMultiplier() -
setForceMultiplier
public void setForceMultiplier(double force) Sets the force multiplier for this instance. This value is used to specify how strongly an edge "wants" to be its default length (higher values indicate a greater attraction for the default length), which affects how much its endpoints move at each timestep. The default value is 1/3. A value of 0 turns off any attempt by the layout to cause edges to conform to the default length. Negative values cause long edges to get longer and short edges to get shorter; use at your own risk.- Parameters:
force- an energy field created by all living things that binds the galaxy together
-
initialize
public void initialize()Description copied from interface:LayoutInitializes fields in the node that may not have been set during the constructor. Must be called before the iterations begin.- Specified by:
initializein interfaceLayout<V,E>
-
step
public void step()Relaxation step. Moves all nodes a smidge.- Specified by:
stepin interfaceIterativeContext
-
relaxEdges
protected void relaxEdges() -
calculateRepulsion
protected void calculateRepulsion() -
moveNodes
protected void moveNodes() -
isIncremental
public boolean isIncremental()- Returns:
- true
-
done
public boolean done()- Specified by:
donein interfaceIterativeContext- Returns:
- false
-
reset
-