Class mxFastOrganicLayout

    • Field Detail

      • useInputOrigin

        protected boolean useInputOrigin
        Specifies if the top left corner of the input cells should be the origin of the layout result. Default is true.
      • resetEdges

        protected boolean resetEdges
        Specifies if all edge points of traversed edges should be removed. Default is true.
      • disableEdgeStyle

        protected boolean disableEdgeStyle
        Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result. Default is true.
      • forceConstant

        protected double forceConstant
        The force constant by which the attractive forces are divided and the replusive forces are multiple by the square of. The value equates to the average radius there is of free space around each node. Default is 50.
      • forceConstantSquared

        protected double forceConstantSquared
        Cache of ^2 for performance.
      • minDistanceLimit

        protected double minDistanceLimit
        Minimal distance limit. Default is 2. Prevents of dividing by zero.
      • minDistanceLimitSquared

        protected double minDistanceLimitSquared
        Cached version of squared.
      • maxDistanceLimit

        protected double maxDistanceLimit
        The maximum distance between vertices, beyond which their repulsion no longer has an effect
      • initialTemp

        protected double initialTemp
        Start value of temperature. Default is 200.
      • temperature

        protected double temperature
        Temperature to limit displacement at later stages of layout.
      • maxIterations

        protected double maxIterations
        Total number of iterations to run the layout though.
      • iteration

        protected double iteration
        Current iteration count.
      • vertexArray

        protected java.lang.Object[] vertexArray
        An array of all vertices to be laid out.
      • dispX

        protected double[] dispX
        An array of locally stored X co-ordinate displacements for the vertices.
      • dispY

        protected double[] dispY
        An array of locally stored Y co-ordinate displacements for the vertices.
      • cellLocation

        protected double[][] cellLocation
        An array of locally stored co-ordinate positions for the vertices.
      • radius

        protected double[] radius
        The approximate radius of each cell, nodes only.
      • radiusSquared

        protected double[] radiusSquared
        The approximate radius squared of each cell, nodes only.
      • isMoveable

        protected boolean[] isMoveable
        Array of booleans representing the movable states of the vertices.
      • neighbours

        protected int[][] neighbours
        Local copy of cell neighbours.
      • allowedToRun

        protected boolean allowedToRun
        Boolean flag that specifies if the layout is allowed to run. If this is set to false, then the layout exits in the following iteration.
      • indices

        protected java.util.Hashtable<java.lang.Object,​java.lang.Integer> indices
        Maps from vertices to indices.
    • Constructor Detail

      • mxFastOrganicLayout

        public mxFastOrganicLayout​(mxGraph graph)
        Constructs a new fast organic layout for the specified graph.
    • Method Detail

      • isVertexIgnored

        public boolean isVertexIgnored​(java.lang.Object vertex)
        Returns a boolean indicating if the given should be ignored as a vertex. This returns true if the cell has no connections.
        Overrides:
        isVertexIgnored in class mxGraphLayout
        Parameters:
        vertex - Object that represents the vertex to be tested.
        Returns:
        Returns true if the vertex should be ignored.
      • isUseInputOrigin

        public boolean isUseInputOrigin()
      • setUseInputOrigin

        public void setUseInputOrigin​(boolean value)
        Parameters:
        value -
      • isResetEdges

        public boolean isResetEdges()
      • setResetEdges

        public void setResetEdges​(boolean value)
        Parameters:
        value -
      • isDisableEdgeStyle

        public boolean isDisableEdgeStyle()
      • setDisableEdgeStyle

        public void setDisableEdgeStyle​(boolean value)
        Parameters:
        value -
      • getMaxIterations

        public double getMaxIterations()
      • setMaxIterations

        public void setMaxIterations​(double value)
        Parameters:
        value -
      • getForceConstant

        public double getForceConstant()
      • setForceConstant

        public void setForceConstant​(double value)
        Parameters:
        value -
      • getMinDistanceLimit

        public double getMinDistanceLimit()
      • setMinDistanceLimit

        public void setMinDistanceLimit​(double value)
        Parameters:
        value -
      • getMaxDistanceLimit

        public double getMaxDistanceLimit()
        Returns:
        the maxDistanceLimit
      • setMaxDistanceLimit

        public void setMaxDistanceLimit​(double maxDistanceLimit)
        Parameters:
        maxDistanceLimit - the maxDistanceLimit to set
      • getInitialTemp

        public double getInitialTemp()
      • setInitialTemp

        public void setInitialTemp​(double value)
        Parameters:
        value -
      • reduceTemperature

        protected void reduceTemperature()
        Reduces the temperature of the layout from an initial setting in a linear fashion to zero.
      • moveCell

        public void moveCell​(java.lang.Object cell,
                             double x,
                             double y)
        Description copied from interface: mxIGraphLayout
        Notified when a cell is being moved in a parent that has automatic layout to update the cell state (eg. index) so that the outcome of the layout will position the vertex as close to the point (x, y) as possible.
        Specified by:
        moveCell in interface mxIGraphLayout
        Overrides:
        moveCell in class mxGraphLayout
        Parameters:
        cell - Cell which is being moved.
        x - X-coordinate of the new cell location.
        y - Y-coordinate of the new cell location.
      • execute

        public void execute​(java.lang.Object parent)
        Description copied from interface: mxIGraphLayout
        Executes the layout for the children of the specified parent.
        Specified by:
        execute in interface mxIGraphLayout
        Overrides:
        execute in class mxGraphLayout
        Parameters:
        parent - Parent cell that contains the children to be layed out.
      • calcPositions

        protected void calcPositions()
        Takes the displacements calculated for each cell and applies them to the local cache of cell positions. Limits the displacement to the current temperature.
      • calcAttraction

        protected void calcAttraction()
        Calculates the attractive forces between all laid out nodes linked by edges
      • calcRepulsion

        protected void calcRepulsion()
        Calculates the repulsive forces between all laid out nodes