public class mxFastOrganicLayout extends mxGraphLayout
Modifier and Type | Field and Description |
---|---|
protected boolean |
allowedToRun
Boolean flag that specifies if the layout is allowed to run.
|
protected double[][] |
cellLocation
An array of locally stored co-ordinate positions for the vertices.
|
protected boolean |
disableEdgeStyle
Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
modified by the result.
|
protected double[] |
dispX
An array of locally stored X co-ordinate displacements for the vertices.
|
protected double[] |
dispY
An array of locally stored Y co-ordinate displacements for the vertices.
|
protected double |
forceConstant
The force constant by which the attractive forces are divided and the
replusive forces are multiple by the square of.
|
protected double |
forceConstantSquared
Cache of
|
protected java.util.Hashtable<java.lang.Object,java.lang.Integer> |
indices
Maps from vertices to indices.
|
protected double |
initialTemp
Start value of temperature.
|
protected boolean[] |
isMoveable
Array of booleans representing the movable states of the vertices.
|
protected double |
iteration
Current iteration count.
|
protected double |
maxDistanceLimit
The maximum distance between vertices, beyond which their
repulsion no longer has an effect
|
protected double |
maxIterations
Total number of iterations to run the layout though.
|
protected double |
minDistanceLimit
Minimal distance limit.
|
protected double |
minDistanceLimitSquared
Cached version of
|
protected int[][] |
neighbours
Local copy of cell neighbours.
|
protected double[] |
radius
The approximate radius of each cell, nodes only.
|
protected double[] |
radiusSquared
The approximate radius squared of each cell, nodes only.
|
protected boolean |
resetEdges
Specifies if all edge points of traversed edges should be removed.
|
protected double |
temperature
Temperature to limit displacement at later stages of layout.
|
protected boolean |
useInputOrigin
Specifies if the top left corner of the input cells should be the origin
of the layout result.
|
protected java.lang.Object[] |
vertexArray
An array of all vertices to be laid out.
|
graph, parent, useBoundingBox
Constructor and Description |
---|
mxFastOrganicLayout(mxGraph graph)
Constructs a new fast organic layout for the specified graph.
|
Modifier and Type | Method and Description |
---|---|
protected void |
calcAttraction()
Calculates the attractive forces between all laid out nodes linked by
edges
|
protected void |
calcPositions()
Takes the displacements calculated for each cell and applies them to the
local cache of cell positions.
|
protected void |
calcRepulsion()
Calculates the repulsive forces between all laid out nodes
|
void |
execute(java.lang.Object parent)
Executes the layout for the children of the specified parent.
|
double |
getForceConstant() |
double |
getInitialTemp() |
double |
getMaxDistanceLimit() |
double |
getMaxIterations() |
double |
getMinDistanceLimit() |
boolean |
isDisableEdgeStyle() |
boolean |
isResetEdges() |
boolean |
isUseInputOrigin() |
boolean |
isVertexIgnored(java.lang.Object vertex)
Returns a boolean indicating if the given
|
void |
moveCell(java.lang.Object cell,
double x,
double y)
Notified when a cell is being moved in a parent that has automatic
layout to update the cell state (eg.
|
protected void |
reduceTemperature()
Reduces the temperature of the layout from an initial setting in a linear
fashion to zero.
|
void |
setDisableEdgeStyle(boolean value) |
void |
setForceConstant(double value) |
void |
setInitialTemp(double value) |
void |
setMaxDistanceLimit(double maxDistanceLimit) |
void |
setMaxIterations(double value) |
void |
setMinDistanceLimit(double value) |
void |
setResetEdges(boolean value) |
void |
setUseInputOrigin(boolean value) |
arrangeGroups, getConstraint, getConstraint, getGraph, getParentOffset, getVertexBounds, isEdgeIgnored, isUseBoundingBox, isVertexMovable, setEdgePoints, setEdgeStyleEnabled, setOrthogonalEdge, setUseBoundingBox, setVertexLocation
protected boolean useInputOrigin
protected boolean resetEdges
protected boolean disableEdgeStyle
protected double forceConstant
protected double forceConstantSquared
protected double minDistanceLimit
protected double minDistanceLimitSquared
protected double maxDistanceLimit
protected double initialTemp
protected double temperature
protected double maxIterations
protected double iteration
protected java.lang.Object[] vertexArray
protected double[] dispX
protected double[] dispY
protected double[][] cellLocation
protected double[] radius
protected double[] radiusSquared
protected boolean[] isMoveable
protected int[][] neighbours
protected boolean allowedToRun
protected java.util.Hashtable<java.lang.Object,java.lang.Integer> indices
public mxFastOrganicLayout(mxGraph graph)
public boolean isVertexIgnored(java.lang.Object vertex)
isVertexIgnored
in class mxGraphLayout
vertex
- Object that represents the vertex to be tested.public boolean isUseInputOrigin()
public void setUseInputOrigin(boolean value)
value
- public boolean isResetEdges()
public void setResetEdges(boolean value)
value
- public boolean isDisableEdgeStyle()
public void setDisableEdgeStyle(boolean value)
value
- public double getMaxIterations()
public void setMaxIterations(double value)
value
- public double getForceConstant()
public void setForceConstant(double value)
value
- public double getMinDistanceLimit()
public void setMinDistanceLimit(double value)
value
- public double getMaxDistanceLimit()
public void setMaxDistanceLimit(double maxDistanceLimit)
maxDistanceLimit
- the maxDistanceLimit to setpublic double getInitialTemp()
public void setInitialTemp(double value)
value
- protected void reduceTemperature()
public void moveCell(java.lang.Object cell, double x, double y)
mxIGraphLayout
moveCell
in interface mxIGraphLayout
moveCell
in class mxGraphLayout
cell
- Cell which is being moved.x
- X-coordinate of the new cell location.y
- Y-coordinate of the new cell location.public void execute(java.lang.Object parent)
mxIGraphLayout
execute
in interface mxIGraphLayout
execute
in class mxGraphLayout
parent
- Parent cell that contains the children to be layed out.protected void calcPositions()
protected void calcAttraction()
protected void calcRepulsion()
Copyright (c) 2010 Gaudenz Alder, David Benson. All rights reserved.