maxGraph/java/docs/com/mxgraph/layout/mxFastOrganicLayout.html

1163 lines
42 KiB
HTML

<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.5) on Fri Jan 24 13:39:46 UTC 2020 -->
<title>mxFastOrganicLayout (mxGraph 4.1.0 API Specification)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="dc.created" content="2020-01-24">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="mxFastOrganicLayout (mxGraph 4.1.0 API Specification)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/mxFastOrganicLayout.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><p><b>mxGraph 4.1.0</b></p></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.mxgraph.layout</a></div>
<h2 title="Class mxFastOrganicLayout" class="title">Class mxFastOrganicLayout</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="mxGraphLayout.html" title="class in com.mxgraph.layout">com.mxgraph.layout.mxGraphLayout</a></li>
<li>
<ul class="inheritance">
<li>com.mxgraph.layout.mxFastOrganicLayout</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">mxFastOrganicLayout</span>
extends <a href="mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</a></pre>
<div class="block">Fast organic layout algorithm.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allowedToRun">allowedToRun</a></span></code></th>
<td class="colLast">
<div class="block">Boolean flag that specifies if the layout is allowed to run.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected double[][]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cellLocation">cellLocation</a></span></code></th>
<td class="colLast">
<div class="block">An array of locally stored co-ordinate positions for the vertices.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#disableEdgeStyle">disableEdgeStyle</a></span></code></th>
<td class="colLast">
<div class="block">Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
modified by the result.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected double[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dispX">dispX</a></span></code></th>
<td class="colLast">
<div class="block">An array of locally stored X co-ordinate displacements for the vertices.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected double[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dispY">dispY</a></span></code></th>
<td class="colLast">
<div class="block">An array of locally stored Y co-ordinate displacements for the vertices.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#forceConstant">forceConstant</a></span></code></th>
<td class="colLast">
<div class="block">The force constant by which the attractive forces are divided and the
replusive forces are multiple by the square of.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#forceConstantSquared">forceConstantSquared</a></span></code></th>
<td class="colLast">
<div class="block">Cache of <forceConstant>^2 for performance.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected java.util.Hashtable&lt;java.lang.Object,&#8203;java.lang.Integer&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#indices">indices</a></span></code></th>
<td class="colLast">
<div class="block">Maps from vertices to indices.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#initialTemp">initialTemp</a></span></code></th>
<td class="colLast">
<div class="block">Start value of temperature.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isMoveable">isMoveable</a></span></code></th>
<td class="colLast">
<div class="block">Array of booleans representing the movable states of the vertices.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#iteration">iteration</a></span></code></th>
<td class="colLast">
<div class="block">Current iteration count.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maxDistanceLimit">maxDistanceLimit</a></span></code></th>
<td class="colLast">
<div class="block">The maximum distance between vertices, beyond which their
repulsion no longer has an effect</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maxIterations">maxIterations</a></span></code></th>
<td class="colLast">
<div class="block">Total number of iterations to run the layout though.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#minDistanceLimit">minDistanceLimit</a></span></code></th>
<td class="colLast">
<div class="block">Minimal distance limit.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#minDistanceLimitSquared">minDistanceLimitSquared</a></span></code></th>
<td class="colLast">
<div class="block">Cached version of <minDistanceLimit> squared.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected int[][]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#neighbours">neighbours</a></span></code></th>
<td class="colLast">
<div class="block">Local copy of cell neighbours.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected double[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#radius">radius</a></span></code></th>
<td class="colLast">
<div class="block">The approximate radius of each cell, nodes only.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected double[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#radiusSquared">radiusSquared</a></span></code></th>
<td class="colLast">
<div class="block">The approximate radius squared of each cell, nodes only.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resetEdges">resetEdges</a></span></code></th>
<td class="colLast">
<div class="block">Specifies if all edge points of traversed edges should be removed.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#temperature">temperature</a></span></code></th>
<td class="colLast">
<div class="block">Temperature to limit displacement at later stages of layout.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#useInputOrigin">useInputOrigin</a></span></code></th>
<td class="colLast">
<div class="block">Specifies if the top left corner of the input cells should be the origin
of the layout result.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected java.lang.Object[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#vertexArray">vertexArray</a></span></code></th>
<td class="colLast">
<div class="block">An array of all vertices to be laid out.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.com.mxgraph.layout.mxGraphLayout">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;com.mxgraph.layout.<a href="mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</a></h3>
<code><a href="mxGraphLayout.html#graph">graph</a>, <a href="mxGraphLayout.html#parent">parent</a>, <a href="mxGraphLayout.html#useBoundingBox">useBoundingBox</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(com.mxgraph.view.mxGraph)">mxFastOrganicLayout</a></span>&#8203;(<a href="../view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</a>&nbsp;graph)</code></th>
<td class="colLast">
<div class="block">Constructs a new fast organic layout for the specified graph.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#calcAttraction()">calcAttraction</a></span>()</code></th>
<td class="colLast">
<div class="block">Calculates the attractive forces between all laid out nodes linked by
edges</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#calcPositions()">calcPositions</a></span>()</code></th>
<td class="colLast">
<div class="block">Takes the displacements calculated for each cell and applies them to the
local cache of cell positions.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#calcRepulsion()">calcRepulsion</a></span>()</code></th>
<td class="colLast">
<div class="block">Calculates the repulsive forces between all laid out nodes</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#execute(java.lang.Object)">execute</a></span>&#8203;(java.lang.Object&nbsp;parent)</code></th>
<td class="colLast">
<div class="block">Executes the layout for the children of the specified parent.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getForceConstant()">getForceConstant</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInitialTemp()">getInitialTemp</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxDistanceLimit()">getMaxDistanceLimit</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxIterations()">getMaxIterations</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMinDistanceLimit()">getMinDistanceLimit</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isDisableEdgeStyle()">isDisableEdgeStyle</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isResetEdges()">isResetEdges</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isUseInputOrigin()">isUseInputOrigin</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isVertexIgnored(java.lang.Object)">isVertexIgnored</a></span>&#8203;(java.lang.Object&nbsp;vertex)</code></th>
<td class="colLast">
<div class="block">Returns a boolean indicating if the given <mxCell> should be ignored as a
vertex.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#moveCell(java.lang.Object,double,double)">moveCell</a></span>&#8203;(java.lang.Object&nbsp;cell,
double&nbsp;x,
double&nbsp;y)</code></th>
<td class="colLast">
<div class="block">Notified when a cell is being moved in a parent that has automatic
layout to update the cell state (eg.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reduceTemperature()">reduceTemperature</a></span>()</code></th>
<td class="colLast">
<div class="block">Reduces the temperature of the layout from an initial setting in a linear
fashion to zero.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDisableEdgeStyle(boolean)">setDisableEdgeStyle</a></span>&#8203;(boolean&nbsp;value)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setForceConstant(double)">setForceConstant</a></span>&#8203;(double&nbsp;value)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setInitialTemp(double)">setInitialTemp</a></span>&#8203;(double&nbsp;value)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMaxDistanceLimit(double)">setMaxDistanceLimit</a></span>&#8203;(double&nbsp;maxDistanceLimit)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMaxIterations(double)">setMaxIterations</a></span>&#8203;(double&nbsp;value)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMinDistanceLimit(double)">setMinDistanceLimit</a></span>&#8203;(double&nbsp;value)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setResetEdges(boolean)">setResetEdges</a></span>&#8203;(boolean&nbsp;value)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setUseInputOrigin(boolean)">setUseInputOrigin</a></span>&#8203;(boolean&nbsp;value)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.com.mxgraph.layout.mxGraphLayout">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;com.mxgraph.layout.<a href="mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</a></h3>
<code><a href="mxGraphLayout.html#arrangeGroups(java.lang.Object%5B%5D,int)">arrangeGroups</a>, <a href="mxGraphLayout.html#getConstraint(java.lang.Object,java.lang.Object)">getConstraint</a>, <a href="mxGraphLayout.html#getConstraint(java.lang.Object,java.lang.Object,java.lang.Object,boolean)">getConstraint</a>, <a href="mxGraphLayout.html#getGraph()">getGraph</a>, <a href="mxGraphLayout.html#getParentOffset(java.lang.Object)">getParentOffset</a>, <a href="mxGraphLayout.html#getVertexBounds(java.lang.Object)">getVertexBounds</a>, <a href="mxGraphLayout.html#isEdgeIgnored(java.lang.Object)">isEdgeIgnored</a>, <a href="mxGraphLayout.html#isUseBoundingBox()">isUseBoundingBox</a>, <a href="mxGraphLayout.html#isVertexMovable(java.lang.Object)">isVertexMovable</a>, <a href="mxGraphLayout.html#setEdgePoints(java.lang.Object,java.util.List)">setEdgePoints</a>, <a href="mxGraphLayout.html#setEdgeStyleEnabled(java.lang.Object,boolean)">setEdgeStyleEnabled</a>, <a href="mxGraphLayout.html#setOrthogonalEdge(java.lang.Object,boolean)">setOrthogonalEdge</a>, <a href="mxGraphLayout.html#setUseBoundingBox(boolean)">setUseBoundingBox</a>, <a href="mxGraphLayout.html#setVertexLocation(java.lang.Object,double,double)">setVertexLocation</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="useInputOrigin">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>useInputOrigin</h4>
<pre>protected&nbsp;boolean useInputOrigin</pre>
<div class="block">Specifies if the top left corner of the input cells should be the origin
of the layout result. Default is true.</div>
</li>
</ul>
<a id="resetEdges">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resetEdges</h4>
<pre>protected&nbsp;boolean resetEdges</pre>
<div class="block">Specifies if all edge points of traversed edges should be removed.
Default is true.</div>
</li>
</ul>
<a id="disableEdgeStyle">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disableEdgeStyle</h4>
<pre>protected&nbsp;boolean disableEdgeStyle</pre>
<div class="block">Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are
modified by the result. Default is true.</div>
</li>
</ul>
<a id="forceConstant">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>forceConstant</h4>
<pre>protected&nbsp;double forceConstant</pre>
<div class="block">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.</div>
</li>
</ul>
<a id="forceConstantSquared">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>forceConstantSquared</h4>
<pre>protected&nbsp;double forceConstantSquared</pre>
<div class="block">Cache of <forceConstant>^2 for performance.</div>
</li>
</ul>
<a id="minDistanceLimit">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>minDistanceLimit</h4>
<pre>protected&nbsp;double minDistanceLimit</pre>
<div class="block">Minimal distance limit. Default is 2. Prevents of
dividing by zero.</div>
</li>
</ul>
<a id="minDistanceLimitSquared">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>minDistanceLimitSquared</h4>
<pre>protected&nbsp;double minDistanceLimitSquared</pre>
<div class="block">Cached version of <minDistanceLimit> squared.</div>
</li>
</ul>
<a id="maxDistanceLimit">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maxDistanceLimit</h4>
<pre>protected&nbsp;double maxDistanceLimit</pre>
<div class="block">The maximum distance between vertices, beyond which their
repulsion no longer has an effect</div>
</li>
</ul>
<a id="initialTemp">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialTemp</h4>
<pre>protected&nbsp;double initialTemp</pre>
<div class="block">Start value of temperature. Default is 200.</div>
</li>
</ul>
<a id="temperature">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>temperature</h4>
<pre>protected&nbsp;double temperature</pre>
<div class="block">Temperature to limit displacement at later stages of layout.</div>
</li>
</ul>
<a id="maxIterations">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maxIterations</h4>
<pre>protected&nbsp;double maxIterations</pre>
<div class="block">Total number of iterations to run the layout though.</div>
</li>
</ul>
<a id="iteration">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>iteration</h4>
<pre>protected&nbsp;double iteration</pre>
<div class="block">Current iteration count.</div>
</li>
</ul>
<a id="vertexArray">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>vertexArray</h4>
<pre>protected&nbsp;java.lang.Object[] vertexArray</pre>
<div class="block">An array of all vertices to be laid out.</div>
</li>
</ul>
<a id="dispX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dispX</h4>
<pre>protected&nbsp;double[] dispX</pre>
<div class="block">An array of locally stored X co-ordinate displacements for the vertices.</div>
</li>
</ul>
<a id="dispY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dispY</h4>
<pre>protected&nbsp;double[] dispY</pre>
<div class="block">An array of locally stored Y co-ordinate displacements for the vertices.</div>
</li>
</ul>
<a id="cellLocation">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cellLocation</h4>
<pre>protected&nbsp;double[][] cellLocation</pre>
<div class="block">An array of locally stored co-ordinate positions for the vertices.</div>
</li>
</ul>
<a id="radius">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>radius</h4>
<pre>protected&nbsp;double[] radius</pre>
<div class="block">The approximate radius of each cell, nodes only.</div>
</li>
</ul>
<a id="radiusSquared">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>radiusSquared</h4>
<pre>protected&nbsp;double[] radiusSquared</pre>
<div class="block">The approximate radius squared of each cell, nodes only.</div>
</li>
</ul>
<a id="isMoveable">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isMoveable</h4>
<pre>protected&nbsp;boolean[] isMoveable</pre>
<div class="block">Array of booleans representing the movable states of the vertices.</div>
</li>
</ul>
<a id="neighbours">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>neighbours</h4>
<pre>protected&nbsp;int[][] neighbours</pre>
<div class="block">Local copy of cell neighbours.</div>
</li>
</ul>
<a id="allowedToRun">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allowedToRun</h4>
<pre>protected&nbsp;boolean allowedToRun</pre>
<div class="block">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.</div>
</li>
</ul>
<a id="indices">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>indices</h4>
<pre>protected&nbsp;java.util.Hashtable&lt;java.lang.Object,&#8203;java.lang.Integer&gt; indices</pre>
<div class="block">Maps from vertices to indices.</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(com.mxgraph.view.mxGraph)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>mxFastOrganicLayout</h4>
<pre>public&nbsp;mxFastOrganicLayout&#8203;(<a href="../view/mxGraph.html" title="class in com.mxgraph.view">mxGraph</a>&nbsp;graph)</pre>
<div class="block">Constructs a new fast organic layout for the specified graph.</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="isVertexIgnored(java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isVertexIgnored</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isVertexIgnored&#8203;(java.lang.Object&nbsp;vertex)</pre>
<div class="block">Returns a boolean indicating if the given <mxCell> should be ignored as a
vertex. This returns true if the cell has no connections.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="mxGraphLayout.html#isVertexIgnored(java.lang.Object)">isVertexIgnored</a></code>&nbsp;in class&nbsp;<code><a href="mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>vertex</code> - Object that represents the vertex to be tested.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns true if the vertex should be ignored.</dd>
</dl>
</li>
</ul>
<a id="isUseInputOrigin()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isUseInputOrigin</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isUseInputOrigin()</pre>
</li>
</ul>
<a id="setUseInputOrigin(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setUseInputOrigin</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setUseInputOrigin&#8203;(boolean&nbsp;value)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - </dd>
</dl>
</li>
</ul>
<a id="isResetEdges()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isResetEdges</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isResetEdges()</pre>
</li>
</ul>
<a id="setResetEdges(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setResetEdges</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setResetEdges&#8203;(boolean&nbsp;value)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - </dd>
</dl>
</li>
</ul>
<a id="isDisableEdgeStyle()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDisableEdgeStyle</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isDisableEdgeStyle()</pre>
</li>
</ul>
<a id="setDisableEdgeStyle(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDisableEdgeStyle</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setDisableEdgeStyle&#8203;(boolean&nbsp;value)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - </dd>
</dl>
</li>
</ul>
<a id="getMaxIterations()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxIterations</h4>
<pre class="methodSignature">public&nbsp;double&nbsp;getMaxIterations()</pre>
</li>
</ul>
<a id="setMaxIterations(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMaxIterations</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setMaxIterations&#8203;(double&nbsp;value)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - </dd>
</dl>
</li>
</ul>
<a id="getForceConstant()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getForceConstant</h4>
<pre class="methodSignature">public&nbsp;double&nbsp;getForceConstant()</pre>
</li>
</ul>
<a id="setForceConstant(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setForceConstant</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setForceConstant&#8203;(double&nbsp;value)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - </dd>
</dl>
</li>
</ul>
<a id="getMinDistanceLimit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMinDistanceLimit</h4>
<pre class="methodSignature">public&nbsp;double&nbsp;getMinDistanceLimit()</pre>
</li>
</ul>
<a id="setMinDistanceLimit(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMinDistanceLimit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setMinDistanceLimit&#8203;(double&nbsp;value)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - </dd>
</dl>
</li>
</ul>
<a id="getMaxDistanceLimit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxDistanceLimit</h4>
<pre class="methodSignature">public&nbsp;double&nbsp;getMaxDistanceLimit()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the maxDistanceLimit</dd>
</dl>
</li>
</ul>
<a id="setMaxDistanceLimit(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMaxDistanceLimit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setMaxDistanceLimit&#8203;(double&nbsp;maxDistanceLimit)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>maxDistanceLimit</code> - the maxDistanceLimit to set</dd>
</dl>
</li>
</ul>
<a id="getInitialTemp()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInitialTemp</h4>
<pre class="methodSignature">public&nbsp;double&nbsp;getInitialTemp()</pre>
</li>
</ul>
<a id="setInitialTemp(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setInitialTemp</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setInitialTemp&#8203;(double&nbsp;value)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - </dd>
</dl>
</li>
</ul>
<a id="reduceTemperature()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reduceTemperature</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;reduceTemperature()</pre>
<div class="block">Reduces the temperature of the layout from an initial setting in a linear
fashion to zero.</div>
</li>
</ul>
<a id="moveCell(java.lang.Object,double,double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>moveCell</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;moveCell&#8203;(java.lang.Object&nbsp;cell,
double&nbsp;x,
double&nbsp;y)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="mxIGraphLayout.html#moveCell(java.lang.Object,double,double)">mxIGraphLayout</a></code></span></div>
<div class="block">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.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mxIGraphLayout.html#moveCell(java.lang.Object,double,double)">moveCell</a></code>&nbsp;in interface&nbsp;<code><a href="mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="mxGraphLayout.html#moveCell(java.lang.Object,double,double)">moveCell</a></code>&nbsp;in class&nbsp;<code><a href="mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cell</code> - Cell which is being moved.</dd>
<dd><code>x</code> - X-coordinate of the new cell location.</dd>
<dd><code>y</code> - Y-coordinate of the new cell location.</dd>
</dl>
</li>
</ul>
<a id="execute(java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>execute</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;execute&#8203;(java.lang.Object&nbsp;parent)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="mxIGraphLayout.html#execute(java.lang.Object)">mxIGraphLayout</a></code></span></div>
<div class="block">Executes the layout for the children of the specified parent.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mxIGraphLayout.html#execute(java.lang.Object)">execute</a></code>&nbsp;in interface&nbsp;<code><a href="mxIGraphLayout.html" title="interface in com.mxgraph.layout">mxIGraphLayout</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="mxGraphLayout.html#execute(java.lang.Object)">execute</a></code>&nbsp;in class&nbsp;<code><a href="mxGraphLayout.html" title="class in com.mxgraph.layout">mxGraphLayout</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - Parent cell that contains the children to be layed out.</dd>
</dl>
</li>
</ul>
<a id="calcPositions()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>calcPositions</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;calcPositions()</pre>
<div class="block">Takes the displacements calculated for each cell and applies them to the
local cache of cell positions. Limits the displacement to the current
temperature.</div>
</li>
</ul>
<a id="calcAttraction()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>calcAttraction</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;calcAttraction()</pre>
<div class="block">Calculates the attractive forces between all laid out nodes linked by
edges</div>
</li>
</ul>
<a id="calcRepulsion()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>calcRepulsion</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;calcRepulsion()</pre>
<div class="block">Calculates the repulsive forces between all laid out nodes</div>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/mxFastOrganicLayout.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><p><b>mxGraph 4.1.0</b></p></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small><font size=1>Copyright (c) 2010-2017 <a href="http://www.jgraph.com/"
target="_blank">Gaudenz Alder, JGraph Ltd</a>. All rights reserved.</font></small></p>
</footer>
</body>
</html>