<!-- saved from url=(0026)http://www.naturaldocs.org -->
<divid=Content><divclass="CClass"><divclass=CTopicid=MainTopic><h1class=CTitle><aname="mxSwimlaneLayout"></a>mxSwimlaneLayout</h1><divclass=CBody><p>A hierarchical layout algorithm.</p><!--START_ND_SUMMARY--><divclass=Summary><divclass=STitle>Summary</div><divclass=SBorder><tableborder=0cellspacing=0cellpadding=0class=STable><trclass="SMain"><tdclass=SEntry><ahref="#mxSwimlaneLayout">mxSwimlaneLayout</a></td><tdclass=SDescription>A hierarchical layout algorithm.</td></tr><trclass="SGroup SIndent1"><tdclass=SEntry><ahref="#mxSwimlaneLayout.Functions">Functions</a></td><tdclass=SDescription></td></tr><trclass="SFunction SIndent2 SMarked"><tdclass=SEntry><ahref="#mxSwimlaneLayout.mxSwimlaneLayout"id=link1onMouseOver="ShowTip(event, 'tt1', 'link1')"onMouseOut="HideTip('tt1')">mxSwimlaneLayout</a></td><tdclass=SDescription>Constructs a new hierarchical layout algorithm.</td></tr><trclass="SGroup SIndent1"><tdclass=SEntry><ahref="#mxSwimlaneLayout.Variables">Variables</a></td><tdclass=SDescription></td></tr><trclass="SVariable SIndent2 SMarked"><tdclass=SEntry><ahref="#mxSwimlaneLayout.roots"id=link2onMouseOver="ShowTip(event, 'tt2', 'link2')"onMouseOut="HideTip('tt2')">roots</a></td><tdclass=SDescription>Holds the array of <ahref="../../model/mxCell-js.html#mxCell"class=LClassid=link3onMouseOver="ShowTip(event, 'tt3', 'link3')"onMouseOut="HideTip('tt3')">mxCell</a> that this layout contains.</td></tr><trclass="SVariable SIndent2"><tdclass=SEntry><ahref="#mxSwimlaneLayout.swimlanes"id=link4onMouseOver="ShowTip(event, 'tt4', 'link4')"onMouseOut="HideTip('tt4')">swimlanes</a></td><tdclass=SDescription>Holds the array of <ahref="../../model/mxCell-js.html#mxCell"class=LClassid=link5onMouseOver="ShowTip(event, 'tt3', 'link5')"onMouseOut="HideTip('tt3')">mxCell</a> of the ordered swimlanes to lay out</td></tr><trclass="SVariable SIndent2 SMarked"><tdclass=SEntry><ahref="#mxSwimlaneLayout.dummyVertices"id=link6onMouseOver="ShowTip(event, 'tt5', 'link6')"onMouseOut="HideTip('tt5')">dummyVertices</a></td><tdclass=SDescription>Holds an array of <ahref="../../model/mxCell-js.html#mxCell"class=LClassid=link7onMouseOver="ShowTip(event, 'tt3', 'link7')"onMouseOut="HideTip('tt3')">mxCell</a> of dummy vertices inserted during the layout to pad out empty swimlanes</td></tr><trclass="SVariable SIndent2"><tdclass=SEntry><ahref="#mxSwimlaneLayout.dummyVertexWidth"id=link8onMouseOver="ShowTip(event, 'tt6', 'link8')"onMouseOut="HideTip('tt6')">dummyVertexWidth</a></td><tdclass=SDescription>The cell width of any dummy vertices inserted</td></tr><trclass="SVariable SIndent2 SMarked"><tdclass=SEntry><ahref="#mxSwimlaneLayout.resizeParent"id=link9onMouseOver="ShowTip(event, 'tt7', 'link9')"onMouseOut="HideTip('tt7')">resizeParent</a></td><tdclass=SDescription>Specifies if the parent should be resized after the layout so that it contains all the child cells. </td></tr><trclass="SVariable SIndent2"><tdclass=SEntry><ahref="#mxSwimlaneLayout.moveParent"id=link10onMouseOver="ShowTip(event, 'tt8', 'link10')"onMouseOut="HideTip('tt8')">moveParent</a></td><tdclass=SDescription>Specifies if the parent should be moved if <ahref="#mxSwimlaneLayout.resizeParent"class=LVariableid=link11onMouseOver="ShowTip(event, 'tt7', 'link11')"onMouseOut="HideTip('tt7')">resizeParent</a> is enabled. </td></tr><trclass="SVariable SIndent2 SMarked"><tdclass=SEntry><ahref="#mxSwimlaneLayout.parentBorder"id=link12onMouseOver="ShowTip(event, 'tt9', 'link12')"onMouseOut="HideTip('tt9')">parentBorder</a></td><tdclass=SDescription>The border to be added around the children if the parent is to be resized using <ahref="#mxSwimlaneLayout.resizeParent"class=LVariableid=link13onMouseOver="ShowTip(event, 'tt7', 'link13')"onMouseOut="HideTip('tt7')">resizeParent</a>. </td></tr><trclass="SVariable SIndent2"><tdclass=SEntry><ahref="#mxSwimlaneLayout.intraCellSpacing"id=link14onMouseOver="ShowTip(event, 'tt10', 'link14')"onMouseOut="HideTip('tt10')">intraCellSpacing</a></td><tdcl
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.mxSwimlaneLayout"></a>mxSwimlaneLayout</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>function mxSwimlaneLayout(</td><tdclass=PParameternowrap>graph,</td></tr><tr><td></td><tdclass=PParameternowrap>orientation,</td></tr><tr><td></td><tdclass=PParameternowrap>deterministic</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs a new hierarchical layout algorithm.</p><h4class=CHeading>Arguments</h4><tableborder=0cellspacing=0cellpadding=0class=CDescriptionList><tr><tdclass=CDLEntry>graph</td><tdclass=CDLDescription>Reference to the enclosing <ahref="../../view/mxGraph-js.html#mxGraph"class=LClassid=link40onMouseOver="ShowTip(event, 'tt35', 'link40')"onMouseOut="HideTip('tt35')">mxGraph</a>.</td></tr><tr><tdclass=CDLEntry>orientation</td><tdclass=CDLDescription>Optional constant that defines the orientation of this layout.</td></tr><tr><tdclass=CDLEntry>deterministic</td><tdclass=CDLDescription>Optional boolean that specifies if this layout should be deterministic. Default is true.</td></tr></table></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.roots"></a>roots</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.roots</td></tr></table></blockquote><p>Holds the array of <ahref="../../model/mxCell-js.html#mxCell"class=LClassid=link41onMouseOver="ShowTip(event, 'tt3', 'link41')"onMouseOut="HideTip('tt3')">mxCell</a> that this layout contains.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.swimlanes"></a>swimlanes</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.swimlanes</td></tr></table></blockquote><p>Holds the array of <ahref="../../model/mxCell-js.html#mxCell"class=LClassid=link42onMouseOver="ShowTip(event, 'tt3', 'link42')"onMouseOut="HideTip('tt3')">mxCell</a> of the ordered swimlanes to lay out</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.dummyVertices"></a>dummyVertices</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.dummyVertices</td></tr></table></blockquote><p>Holds an array of <ahref="../../model/mxCell-js.html#mxCell"class=LClassid=link43onMouseOver="ShowTip(event, 'tt3', 'link43')"onMouseOut="HideTip('tt3')">mxCell</a> of dummy vertices inserted during the layout to pad out empty swimlanes</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.dummyVertexWidth"></a>dummyVertexWidth</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.dummyVertexWidth</td></tr></table></blockquote><p>The cell width of any dummy vertices inserted</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.resizeParent"></a>resizeParent</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.resizeParent</td></tr></table></blockquote><p>Specifies if the parent should be resized after the layout so that it contains all the child cells. Default is false. See also <ahref="#mxSwimlaneLayout.parentBorder"class=LVariableid=link44onMouseOver="ShowTip(event, 'tt9', 'link44')"onMouseOut="HideTip('tt9')">parentBorder</a>.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.moveParent"></a>moveParent</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.moveParent</td></tr></table></blockquote><p>Specifies if the parent should be moved if <ahref="#mxSwimlaneLayout.resizeParent"class=LVariableid=link45onMouseOver="ShowTip(event, 'tt7', 'link45')"onMouseOut="HideTip('tt7')">resizeParent</a> is enabled. Default is false.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.parentBorder"></a>parentBorder</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.parentBorder</td></tr></table></blockquote><p>The border to be added around the children if the parent is to be resized using <ahref="#mxSwimlaneLayout.resizeParent"class=LVariableid=link46onMouseOver="ShowTip(event, 'tt7', 'link46')"onMouseOut="HideTip('tt7')">resizeParent</a>. Default is 0.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.intraCellSpacing"></a>intraCellSpacing</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.intraCellSpacing</td></tr></table></blockquote><p>The spacing buffer added between cells on the same layer. Default is 30.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.interRankCellSpacing"></a>interRankCellSpacing</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.interRankCellSpacing</td></tr></table></blockquote><p>The spacing buffer added between cell on adjacent layers. Default is 50.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.interHierarchySpacing"></a>interHierarchySpacing</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.interHierarchySpacing</td></tr></table></blockquote><p>The spacing buffer between unconnected hierarchies. Default is 60.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.parallelEdgeSpacing"></a>parallelEdgeSpacing</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.parallelEdgeSpacing</td></tr></table></blockquote><p>The distance between each parallel edge on each ranks for long edges</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.orientation"></a>orientation</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.orientation</td></tr></table></blockquote><p>The position of the root node(s) relative to the laid out graph in. Default is <ahref="../../util/mxConstants-js.html#mxConstants.DIRECTION_NORTH"class=LVariableid=link47onMouseOver="ShowTip(event, 'tt36', 'link47')"onMouseOut="HideTip('tt36')">mxConstants.DIRECTION_NORTH</a>.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.fineTuning"></a>fineTuning</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.fineTuning</td></tr></table></blockquote><p>Whether or not to perform local optimisations and iterate multiple times through the algorithm. Default is true.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.tightenToSource"></a>tightenToSource</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.tightenToSource</td></tr></table></blockquote><p>Whether or not to tighten the assigned ranks of vertices up towards the source cells.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.disableEdgeStyle"></a>disableEdgeStyle</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.disableEdgeStyle</td></tr></table></blockquote><p>Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result. Default is true.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.traverseAncestors"></a>traverseAncestors</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.traverseAncestors</td></tr></table></blockquote><p>Whether or not to drill into child cells and layout in reverse group order. This also cause the layout to navigate edges whose terminal vertices * have different parents but are in the same ancestry chain</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.model"></a>model</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.model</td></tr></table></blockquote><p>The internal <ahref="model/mxSwimlaneModel-js.html#mxSwimlaneModel"class=LClassid=link48onMouseOver="ShowTip(event, 'tt20', 'link48')"onMouseOut="HideTip('tt20')">mxSwimlaneModel</a> formed of the layout.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.edgesSet"></a>edgesSet</h3><divclass=CBody><p>A cache of edges whose source terminal is the key</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.getModel"></a>getModel</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.getModel = function()</td></tr></table></blockquote><p>Returns the internal <ahref="model/mxSwimlaneModel-js.html#mxSwimlaneModel"class=LClassid=link49onMouseOver="ShowTip(event, 'tt20', 'link49')"onMouseOut="HideTip('tt20')">mxSwimlaneModel</a> for this layout algorithm.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.execute"></a>execute</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxSwimlaneLayout.prototype.execute = function(</td><tdclass=PParameternowrap>parent,</td></tr><tr><td></td><tdclass=PParameternowrap>swimlanes</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Executes the layout for the children of the specified parent.</p><h4class=CHeading>Parameters</h4><tableborder=0cellspacing=0cellpadding=0class=CDescriptionList><tr><tdclass=CDLEntry>parent</td><tdclass=CDLDescription>Parent <ahref="../../model/mxCell-js.html#mxCell"class=LClassid=link50onMouseOver="ShowTip(event, 'tt3', 'link50')"onMouseOut="HideTip('tt3')">mxCell</a> that contains the children to be laid out.</td></tr><tr><tdclass=CDLEntry>swimlanes</td><tdclass=CDLDescription>Ordered array of swimlanes to be laid out</td></tr></table></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.updateGroupBounds"></a>updateGroupBounds</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.updateGroupBounds = function()</td></tr></table></blockquote><p>Updates the bounds of the given array of groups so that it includes all child vertices.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.findRoots"></a>findRoots</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxSwimlaneLayout.prototype.findRoots = function(</td><tdclass=PParameternowrap>parent,</td></tr><tr><td></td><tdclass=PParameternowrap>vertices</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns all visible children in the given parent which do not have incoming edges. If the result is empty then the children with the maximum difference between incoming and outgoing edges are returned. This takes into account edges that are being promoted to the given root due to invisible children or collapsed cells.</p><h4class=CHeading>Parameters</h4><tableborder=0cellspacing=0cellpadding=0class=CDescriptionList><tr><tdclass=CDLEntry>parent</td><tdclass=CDLDescription><ahref="../../model/mxCell-js.html#mxCell"class=LClassid=link51onMouseOver="ShowTip(event, 'tt3', 'link51')"onMouseOut="HideTip('tt3')">mxCell</a> whose children should be checked.</td></tr><tr><tdclass=CDLEntry>vertices</td><tdclass=CDLDescription>array of vertices to limit search to</td></tr></table></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.getEdges"></a>getEdges</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxSwimlaneLayout.prototype.getEdges = function(</td><tdclass=PParameternowrap>cell</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the connected edges for the given cell.</p><h4class=CHeading>Parameters</h4><tableborder=0cellspacing=0cellpadding=0class=CDescriptionList><tr><tdclass=CDLEntry>cell</td><tdclass=CDLDescription><ahref="../../model/mxCell-js.html#mxCell"class=LClassid=link52onMouseOver="ShowTip(event, 'tt3', 'link52')"onMouseOut="HideTip('tt3')">mxCell</a> whose edges should be returned.</td></tr></table></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.getVisibleTerminal"></a>getVisibleTerminal</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxSwimlaneLayout.prototype.getVisibleTerminal = function(</td><tdclass=PParameternowrap>edge,</td></tr><tr><td></td><tdclass=PParameternowrap>source</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Helper function to return visible terminal for edge allowing for ports</p><h4class=CHeading>Parameters</h4><tableborder=0cellspacing=0cellpadding=0class=CDescriptionList><tr><tdclass=CDLEntry>edge</td><tdclass=CDLDescription><ahref="../../model/mxCell-js.html#mxCell"class=LClassid=link53onMouseOver="ShowTip(event, 'tt3', 'link53')"onMouseOut="HideTip('tt3')">mxCell</a> whose edges should be returned.</td></tr><tr><tdclass=CDLEntry>source</td><tdclass=CDLDescription>Boolean that specifies whether the source or target terminal is to be returned</td></tr></table></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.run"></a>run</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxSwimlaneLayout.prototype.run = function(</td><tdclass=PParameternowrap>parent</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>The API method used to exercise the layout upon the graph description and produce a separate description of the vertex position and edge routing changes made. It runs each stage of the layout that has been created.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.filterDescendants"></a>filterDescendants</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxSwimlaneLayout.prototype.filterDescendants = function(</td><tdclass=PParameternowrap>cell,</td></tr><tr><td></td><tdclass=PParameternowrap>result</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates an array of descendant cells</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.isPort"></a>isPort</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxSwimlaneLayout.prototype.isPort = function(</td><tdclass=PParameternowrap>cell</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns true if the given cell is a “port”, that is, when connecting to it, its parent is the connecting vertex in terms of graph traversal</p><h4class=CHeading>Parameters</h4><tableborder=0cellspacing=0cellpadding=0class=CDescriptionList><tr><tdclass=CDLEntry>cell</td><tdclass=CDLDescription><ahref="../../model/mxCell-js.html#mxCell"class=LClassid=link54onMouseOver="ShowTip(event, 'tt3', 'link54')"onMouseOut="HideTip('tt3')">mxCell</a> that represents the port.</td></tr></table></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.getEdgesBetween"></a>getEdgesBetween</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxSwimlaneLayout.prototype.getEdgesBetween = function(</td><tdclass=PParameternowrap>source,</td></tr><tr><td></td><tdclass=PParameternowrap>target,</td></tr><tr><td></td><tdclass=PParameternowrap>directed</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns the edges between the given source and target. This takes into account collapsed and invisible cells and ports.</p><h4class=CHeading>Parameters</h4><p>source - target - directed -</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.cycleStage"></a>cycleStage</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxSwimlaneLayout.prototype.cycleStage = function(</td><tdclass=PParameternowrap>parent</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Executes the cycle stage using mxMinimumCycleRemover.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.layeringStage"></a>layeringStage</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.layeringStage = function()</td></tr></table></blockquote><p>Implements first stage of a Sugiyama layout.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.crossingStage"></a>crossingStage</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxSwimlaneLayout.prototype.crossingStage = function(</td><tdclass=PParameternowrap>parent</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Executes the crossing stage using mxMedianHybridCrossingReduction.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxSwimlaneLayout.placementStage"></a>placementStage</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxSwimlaneLayout.prototype.placementStage = function(</td><tdclass=PParameternowrap>initialX,</td></tr><tr><td></td><tdclass=PParameternowrap>parent</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Executes the placement stage using mxCoordinateAssignment.</p></div></div></div>
</div><!--Content-->
<divid=Footer><ahref="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
<divclass=CToolTipid="tt1"><divclass=CFunction><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>function mxSwimlaneLayout(</td><tdclass=PParameternowrap>graph,</td></tr><tr><td></td><tdclass=PParameternowrap>orientation,</td></tr><tr><td></td><tdclass=PParameternowrap>deterministic</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new hierarchical layout algorithm.</div></div><divclass=CToolTipid="tt2"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.roots</td></tr></table></blockquote>Holds the array of mxCell that this layout contains.</div></div><divclass=CToolTipid="tt3"><divclass=CClass>Cells are the elements of the graph model. </div></div><divclass=CToolTipid="tt4"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.swimlanes</td></tr></table></blockquote>Holds the array of mxCell of the ordered swimlanes to lay out</div></div><divclass=CToolTipid="tt5"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.dummyVertices</td></tr></table></blockquote>Holds an array of mxCell of dummy vertices inserted during the layout to pad out empty swimlanes</div></div><divclass=CToolTipid="tt6"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.dummyVertexWidth</td></tr></table></blockquote>The cell width of any dummy vertices inserted</div></div><divclass=CToolTipid="tt7"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.resizeParent</td></tr></table></blockquote>Specifies if the parent should be resized after the layout so that it contains all the child cells. </div></div><divclass=CToolTipid="tt8"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.moveParent</td></tr></table></blockquote>Specifies if the parent should be moved if resizeParent is enabled. </div></div><divclass=CToolTipid="tt9"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.parentBorder</td></tr></table></blockquote>The border to be added around the children if the parent is to be resized using resizeParent. </div></div><divclass=CToolTipid="tt10"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.intraCellSpacing</td></tr></table></blockquote>The spacing buffer added between cells on the same layer. </div></div><divclass=CToolTipid="tt11"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.interRankCellSpacing</td></tr></table></blockquote>The spacing buffer added between cell on adjacent layers. </div></div><divclass=CToolTipid="tt12"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.interHierarchySpacing</td></tr></table></blockquote>The spacing buffer between unconnected hierarchies. </div></div><divclass=CToolTipid="tt13"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.prototype.parallelEdgeSpacing</td></tr></table></blockquote>The distance between each parallel edge on each ranks for long edges</div></div><divclass=CToolTipid="tt14"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxSwimlaneLayout.p