<divid=Content><divclass="CClass"><divclass=CTopicid=MainTopic><h1class=CTitle><aname="mxCompactTreeLayout"></a>mxCompactTreeLayout</h1><divclass=CBody><p>Extends <ahref="mxGraphLayout-js.html#mxGraphLayout"class=LClassid=link56onMouseOver="ShowTip(event, 'tt1', 'link56')"onMouseOut="HideTip('tt1')">mxGraphLayout</a> to implement a compact tree (Moen) algorithm. This layout is suitable for graphs that have no cycles (trees). Vertices that are not connected to the tree will be ignored by this layout.</p><h4class=CHeading>Example</h4><blockquote><preclass="prettyprint">var layout = new mxCompactTreeLayout(graph);
layout.execute(graph.getDefaultParent());</pre></blockquote><!--START_ND_SUMMARY--><divclass=Summary><divclass=STitle>Summary</div><divclass=SBorder><tableborder=0cellspacing=0cellpadding=0class=STable><trclass="SMain"><tdclass=SEntry><ahref="#mxCompactTreeLayout">mxCompactTreeLayout</a></td><tdclass=SDescription>Extends <ahref="mxGraphLayout-js.html#mxGraphLayout"class=LClassid=link1onMouseOver="ShowTip(event, 'tt1', 'link1')"onMouseOut="HideTip('tt1')">mxGraphLayout</a> to implement a compact tree (Moen) algorithm. </td></tr><trclass="SGroup SIndent1"><tdclass=SEntry><ahref="#mxCompactTreeLayout.Functions">Functions</a></td><tdclass=SDescription></td></tr><trclass="SFunction SIndent2 SMarked"><tdclass=SEntry><ahref="#mxCompactTreeLayout.mxCompactTreeLayout"id=link2onMouseOver="ShowTip(event, 'tt2', 'link2')"onMouseOut="HideTip('tt2')">mxCompactTreeLayout</a></td><tdclass=SDescription>Constructs a new compact tree layout for the specified graph and orientation.</td></tr><trclass="SGroup SIndent1"><tdclass=SEntry><ahref="#mxCompactTreeLayout.Variables">Variables</a></td><tdclass=SDescription></td></tr><trclass="SVariable SIndent2 SMarked"><tdclass=SEntry><ahref="#mxCompactTreeLayout.horizontal"id=link3onMouseOver="ShowTip(event, 'tt3', 'link3')"onMouseOut="HideTip('tt3')">horizontal</a></td><tdclass=SDescription>Specifies the orientation of the layout. </td></tr><trclass="SVariable SIndent2"><tdclass=SEntry><ahref="#mxCompactTreeLayout.invert"id=link4onMouseOver="ShowTip(event, 'tt4', 'link4')"onMouseOut="HideTip('tt4')">invert</a></td><tdclass=SDescription>Specifies if edge directions should be inverted. </td></tr><trclass="SVariable SIndent2 SMarked"><tdclass=SEntry><ahref="#mxCompactTreeLayout.resizeParent"id=link5onMouseOver="ShowTip(event, 'tt5', 'link5')"onMouseOut="HideTip('tt5')">resizeParent</a></td><tdclass=SDescription>If the parents should be resized to match the width/height of the children. </td></tr><trclass="SVariable SIndent2"><tdclass=SEntry><ahref="#mxCompactTreeLayout.groupPadding"id=link6onMouseOver="ShowTip(event, 'tt6', 'link6')"onMouseOut="HideTip('tt6')">groupPadding</a></td><tdclass=SDescription>Padding added to resized parents.</td></tr><trclass="SVariable SIndent2 SMarked"><tdclass=SEntry><ahref="#mxCompactTreeLayout.parentsChanged"id=link7onMouseOver="ShowTip(event, 'tt7', 'link7')"onMouseOut="HideTip('tt7')">parentsChanged</a></td><tdclass=SDescription>A set of the parents that need updating based on children process as part of the layout.</td></tr><trclass="SVariable SIndent2"><tdclass=SEntry><ahref="#mxCompactTreeLayout.moveTree"id=link8onMouseOver="ShowTip(event, 'tt8', 'link8')"onMouseOut="HideTip('tt8')">moveTree</a></td><tdclass=SDescription>Specifies if the tree should be moved to the top, left corner if it is inside a top-level layer. </td></tr><trclass="SVariable SIndent2 SMarked"><tdclass=SEntry><ahref="#mxCompactTreeLayout.visited"id=link9onMouseOver="ShowTip(event, 'tt9', 'link9')"onMouseOut="HideTip('tt9')">visited</a></td><tdclass=SDescription>Specifies if the tree should be moved to the top, left corner if it is inside a top-level layer. </td></tr><trclass="SVariable SIndent2"><tdclass=SEntry><ahref="#mxCompactTreeLayout.levelDistance"id=link10onMouseOver="ShowTip(event, 'tt10', 'link10')"onMouseOut="HideTip('tt10')">levelDistance</a></td><tdclass=SDescription>Holds the levelDistance. </td></tr><trclass="SVariable SIndent2 SMarked"><tdclass=SEntry><ahref="#mxCompactTreeLayout.nodeDistance"id=link11onMouseOver="ShowTip(event, 'tt11', 'link11')"onMouseOut="HideTip('tt11')">nodeDistance</a></td><tdclass=SDescription>Holds the nodeDistance. </td></tr><trclass="SVariable SIndent2"><tdclass=SEntry><ahref="#mxCompactTreeLayout.resetEdges"id=link12onMouseOver="ShowTip(event, 'tt12', 'link12')"onMouseOut="HideTip('tt12')">resetEdges</a></td><tdclass=SDescription>Specifies if all edge points of traversed edges should be removed. </td></tr><trclass="SVariable SIndent2 SMarked"><tdcl
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.mxCompactTreeLayout"></a>mxCompactTreeLayout</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>function mxCompactTreeLayout(</td><tdclass=PParameternowrap>graph,</td></tr><tr><td></td><tdclass=PParameternowrap>horizontal,</td></tr><tr><td></td><tdclass=PParameternowrap>invert</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs a new compact tree layout for the specified graph and orientation.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.horizontal"></a>horizontal</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.horizontal</td></tr></table></blockquote><p>Specifies the orientation of the layout. Default is true.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.invert"></a>invert</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.invert</td></tr></table></blockquote><p>Specifies if edge directions should be inverted. Default is false.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.resizeParent"></a>resizeParent</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.resizeParent</td></tr></table></blockquote><p>If the parents should be resized to match the width/height of the children. Default is true.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.parentsChanged"></a>parentsChanged</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.parentsChanged</td></tr></table></blockquote><p>A set of the parents that need updating based on children process as part of the layout.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.moveTree"></a>moveTree</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.moveTree</td></tr></table></blockquote><p>Specifies if the tree should be moved to the top, left corner if it is inside a top-level layer. Default is false.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.visited"></a>visited</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.visited</td></tr></table></blockquote><p>Specifies if the tree should be moved to the top, left corner if it is inside a top-level layer. Default is false.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.levelDistance"></a>levelDistance</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.levelDistance</td></tr></table></blockquote><p>Holds the levelDistance. Default is 10.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.nodeDistance"></a>nodeDistance</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.nodeDistance</td></tr></table></blockquote><p>Holds the nodeDistance. Default is 20.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.resetEdges"></a>resetEdges</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.resetEdges</td></tr></table></blockquote><p>Specifies if all edge points of traversed edges should be removed. Default is true.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.prefHozEdgeSep"></a>prefHozEdgeSep</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.prefHozEdgeSep</td></tr></table></blockquote><p>The preferred horizontal distance between edges exiting a vertex.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.prefVertEdgeOff"></a>prefVertEdgeOff</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.prefVertEdgeOff</td></tr></table></blockquote><p>The preferred vertical offset between edges exiting a vertex.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.minEdgeJetty"></a>minEdgeJetty</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.minEdgeJetty</td></tr></table></blockquote><p>The minimum distance for an edge jetty from a vertex.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.channelBuffer"></a>channelBuffer</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.channelBuffer</td></tr></table></blockquote><p>The size of the vertical buffer in the center of inter-rank channels where edge control points should not be placed.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.edgeRouting"></a>edgeRouting</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.edgeRouting</td></tr></table></blockquote><p>Whether or not to apply the internal tree edge routing.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.sortEdges"></a>sortEdges</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.sortEdges</td></tr></table></blockquote><p>Specifies if edges should be sorted according to the order of their opposite terminal cell in the model.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.alignRanks"></a>alignRanks</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.alignRanks</td></tr></table></blockquote><p>Whether or not the tops of cells in each rank should be aligned across the rank</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.maxRankHeight"></a>maxRankHeight</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.maxRankHeight</td></tr></table></blockquote><p>An array of the maximum height of cells (relative to the layout direction) per rank</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.root"></a>root</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.root</td></tr></table></blockquote><p>The cell to use as the root of the tree</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.node"></a>node</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.node</td></tr></table></blockquote><p>The internal node representation of the root cell. Do not set directly , this value is only exposed to assist with post-processing functionality</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.isVertexIgnored"></a>isVertexIgnored</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxCompactTreeLayout.prototype.isVertexIgnored = function(</td><tdclass=PParameternowrap>vertex</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns a boolean indicating if the given <ahref="../model/mxCell-js.html#mxCell"class=LClassid=link57onMouseOver="ShowTip(event, 'tt24', 'link57')"onMouseOut="HideTip('tt24')">mxCell</a> should be ignored as a vertex. This returns true if the cell has no connections.</p><h4class=CHeading>Parameters</h4><tableborder=0cellspacing=0cellpadding=0class=CDescriptionList><tr><tdclass=CDLEntry>vertex</td><tdclass=CDLDescription><ahref="../model/mxCell-js.html#mxCell"class=LClassid=link58onMouseOver="ShowTip(event, 'tt24', 'link58')"onMouseOut="HideTip('tt24')">mxCell</a> whose ignored state should be returned.</td></tr></table></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.execute"></a>execute</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxCompactTreeLayout.prototype.execute = function(</td><tdclass=PParameternowrap>parent,</td></tr><tr><td></td><tdclass=PParameternowrap>root</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Implements <ahref="mxGraphLayout-js.html#mxGraphLayout.execute"class=LFunctionid=link60onMouseOver="ShowTip(event, 'tt27', 'link60')"onMouseOut="HideTip('tt27')">mxGraphLayout.execute</a>.</p><p>If the parent has any connected edges, then it is used as the root of the tree. Else, <ahref="../view/mxGraph-js.html#mxGraph.findTreeRoots"class=LFunctionid=link61onMouseOver="ShowTip(event, 'tt54', 'link61')"onMouseOut="HideTip('tt54')">mxGraph.findTreeRoots</a> will be used to find a suitable root node within the set of children of the given parent.</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=link62onMouseOver="ShowTip(event, 'tt24', 'link62')"onMouseOut="HideTip('tt24')">mxCell</a> whose children should be laid out.</td></tr><tr><tdclass=CDLEntry>root</td><tdclass=CDLDescription>Optional <ahref="../model/mxCell-js.html#mxCell"class=LClassid=link63onMouseOver="ShowTip(event, 'tt24', 'link63')"onMouseOut="HideTip('tt24')">mxCell</a> that will be used as the root of the tree.</td></tr></table></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.moveNode"></a>moveNode</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxCompactTreeLayout.prototype.moveNode = function(</td><tdclass=PParameternowrap>node,</td></tr><tr><td></td><tdclass=PParameternowrap>dx,</td></tr><tr><td></td><tdclass=PParameternowrap>dy</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Moves the specified node and all of its children by the given amount.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.sortOutgoingEdges"></a>sortOutgoingEdges</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxCompactTreeLayout.prototype.sortOutgoingEdges = function(</td><tdclass=PParameternowrap>source,</td></tr><tr><td></td><tdclass=PParameternowrap>edges</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Called if <ahref="#mxCompactTreeLayout.sortEdges"class=LVariableid=link64onMouseOver="ShowTip(event, 'tt18', 'link64')"onMouseOut="HideTip('tt18')">sortEdges</a> is true to sort the array of outgoing edges in place.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.findRankHeights"></a>findRankHeights</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxCompactTreeLayout.prototype.findRankHeights = function(</td><tdclass=PParameternowrap>node,</td></tr><tr><td></td><tdclass=PParameternowrap>rank</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Stores the maximum height (relative to the layout direction) of cells in each rank</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.setCellHeights"></a>setCellHeights</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxCompactTreeLayout.prototype.setCellHeights = function(</td><tdclass=PParameternowrap>node,</td></tr><tr><td></td><tdclass=PParameternowrap>rank</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Set the cells heights (relative to the layout direction) when the tops of each rank are to be aligned</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.dfs"></a>dfs</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxCompactTreeLayout.prototype.dfs = function(</td><tdclass=PParameternowrap>cell,</td></tr><tr><td></td><tdclass=PParameternowrap>parent</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Does a depth first search starting at the specified cell. Makes sure the specified parent is never left by the algorithm.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.layout"></a>layout</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxCompactTreeLayout.prototype.layout = function(</td><tdclass=PParameternowrap>node</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Starts the actual compact tree layout algorithm at the given node.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.adjustParents"></a>adjustParents</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.adjustParents = function()</td></tr></table></blockquote><p>Adjust parent cells whose child geometries have changed. The default implementation adjusts the group to just fit around the children with a padding.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.localEdgeProcessing"></a>localEdgeProcessing</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>mxCompactTreeLayout.prototype.localEdgeProcessing = function(</td><tdclass=PParameternowrap>node</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Moves the specified node and all of its children by the given amount.</p></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="mxCompactTreeLayout.localEdgeProcessing"></a>localEdgeProcessing</h3><divclass=CBody><p>Separates the x position of edges as they connect to vertices</p></div></div></div>
<divclass="CClass"><divclass=CTopic><h2class=CTitle><aname="WeightedCellSorter"></a>WeightedCellSorter</h2><divclass=CBody><p>A utility class used to track cells whilst sorting occurs on the weighted sum of their connected edges. Does not violate (x.compareTo(y)==0) == (x.equals(y))</p><!--START_ND_SUMMARY--><divclass=Summary><divclass=STitle>Summary</div><divclass=SBorder><tableborder=0cellspacing=0cellpadding=0class=STable><trclass="SGroup"><tdclass=SEntry><ahref="#WeightedCellSorter.Functions">Functions</a></td><tdclass=SDescription></td></tr><trclass="SFunction SIndent1 SMarked"><tdclass=SEntry><ahref="#WeightedCellSorter.WeightedCellSorter"id=link65onMouseOver="ShowTip(event, 'tt47', 'link65')"onMouseOut="HideTip('tt47')">WeightedCellSorter</a></td><tdclass=SDescription>Constructs a new weighted cell sorted for the given cell and weight.</td></tr><trclass="SGroup"><tdclass=SEntry><ahref="#WeightedCellSorter.Variables">Variables</a></td><tdclass=SDescription></td></tr><trclass="SVariable SIndent1 SMarked"><tdclass=SEntry><ahref="#WeightedCellSorter.weightedValue"id=link66onMouseOver="ShowTip(event, 'tt48', 'link66')"onMouseOut="HideTip('tt48')">weightedValue</a></td><tdclass=SDescription>The weighted value of the cell stored.</td></tr><trclass="SVariable SIndent1"><tdclass=SEntry><ahref="#WeightedCellSorter.nudge"id=link67onMouseOver="ShowTip(event, 'tt49', 'link67')"onMouseOut="HideTip('tt49')">nudge</a></td><tdclass=SDescription>Whether or not to flip equal weight values.</td></tr><trclass="SVariable SIndent1 SMarked"><tdclass=SEntry><ahref="#WeightedCellSorter.visited"id=link68onMouseOver="ShowTip(event, 'tt50', 'link68')"onMouseOut="HideTip('tt50')">visited</a></td><tdclass=SDescription>Whether or not this cell has been visited in the current assignment.</td></tr><trclass="SVariable SIndent1"><tdclass=SEntry><ahref="#WeightedCellSorter.rankIndex"id=link69onMouseOver="ShowTip(event, 'tt51', 'link69')"onMouseOut="HideTip('tt51')">rankIndex</a></td><tdclass=SDescription>The index this cell is in the model rank.</td></tr><trclass="SVariable SIndent1 SMarked"><tdclass=SEntry><ahref="#WeightedCellSorter.cell"id=link70onMouseOver="ShowTip(event, 'tt52', 'link70')"onMouseOut="HideTip('tt52')">cell</a></td><tdclass=SDescription>The cell whose median value is being calculated.</td></tr><trclass="SGroup"><tdclass=SEntry><ahref="#WeightedCellSorter.Functions">Functions</a></td><tdclass=SDescription></td></tr><trclass="SFunction SIndent1 SMarked"><tdclass=SEntry><ahref="#WeightedCellSorter.compare"id=link71onMouseOver="ShowTip(event, 'tt53', 'link71')"onMouseOut="HideTip('tt53')">compare</a></td><tdclass=SDescription>Compares two WeightedCellSorters.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
<divclass="CFunction"><divclass=CTopic><h3class=CTitle><aname="WeightedCellSorter.WeightedCellSorter"></a>WeightedCellSorter</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>function WeightedCellSorter(</td><tdclass=PParameternowrap>cell,</td></tr><tr><td></td><tdclass=PParameternowrap>weightedValue</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs a new weighted cell sorted for the given cell and weight.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="WeightedCellSorter.weightedValue"></a>weightedValue</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>WeightedCellSorter.prototype.weightedValue</td></tr></table></blockquote><p>The weighted value of the cell stored.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="WeightedCellSorter.nudge"></a>nudge</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>WeightedCellSorter.prototype.nudge</td></tr></table></blockquote><p>Whether or not to flip equal weight values.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="WeightedCellSorter.visited"></a>visited</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>WeightedCellSorter.prototype.visited</td></tr></table></blockquote><p>Whether or not this cell has been visited in the current assignment.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="WeightedCellSorter.rankIndex"></a>rankIndex</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>WeightedCellSorter.prototype.rankIndex</td></tr></table></blockquote><p>The index this cell is in the model rank.</p></div></div></div>
<divclass="CVariable"><divclass=CTopic><h3class=CTitle><aname="WeightedCellSorter.cell"></a>cell</h3><divclass=CBody><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>WeightedCellSorter.prototype.cell</td></tr></table></blockquote><p>The cell whose median value is being calculated.</p></div></div></div>
<divclass=CToolTipid="tt1"><divclass=CClass>Base class for all layout algorithms in mxGraph. </div></div><divclass=CToolTipid="tt2"><divclass=CFunction><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td><tableborder=0cellspacing=0cellpadding=0><tr><tdclass=PBeforeParametersnowrap>function mxCompactTreeLayout(</td><tdclass=PParameternowrap>graph,</td></tr><tr><td></td><tdclass=PParameternowrap>horizontal,</td></tr><tr><td></td><tdclass=PParameternowrap>invert</td><tdclass=PAfterParametersnowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new compact tree layout for the specified graph and orientation.</div></div><divclass=CToolTipid="tt3"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.horizontal</td></tr></table></blockquote>Specifies the orientation of the layout. </div></div><divclass=CToolTipid="tt4"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.invert</td></tr></table></blockquote>Specifies if edge directions should be inverted. </div></div><divclass=CToolTipid="tt5"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.resizeParent</td></tr></table></blockquote>If the parents should be resized to match the width/height of the children. </div></div><divclass=CToolTipid="tt6"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.groupPadding</td></tr></table></blockquote>Padding added to resized parents.</div></div><divclass=CToolTipid="tt7"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.parentsChanged</td></tr></table></blockquote>A set of the parents that need updating based on children process as part of the layout.</div></div><divclass=CToolTipid="tt8"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.moveTree</td></tr></table></blockquote>Specifies if the tree should be moved to the top, left corner if it is inside a top-level layer. </div></div><divclass=CToolTipid="tt9"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.visited</td></tr></table></blockquote>Specifies if the tree should be moved to the top, left corner if it is inside a top-level layer. </div></div><divclass=CToolTipid="tt10"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.levelDistance</td></tr></table></blockquote>Holds the levelDistance. </div></div><divclass=CToolTipid="tt11"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.nodeDistance</td></tr></table></blockquote>Holds the nodeDistance. </div></div><divclass=CToolTipid="tt12"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.resetEdges</td></tr></table></blockquote>Specifies if all edge points of traversed edges should be removed. </div></div><divclass=CToolTipid="tt13"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.prefHozEdgeSep</td></tr></table></blockquote>The preferred horizontal distance between edges exiting a vertex.</div></div><divclass=CToolTipid="tt14"><divclass=CVariable><blockquote><tableborder=0cellspacing=0cellpadding=0class="Prototype prettyprint"><tr><td>mxCompactTreeLayout.prototype.prefVertEdgeOff</td></tr></table></blockquote>The