maxGraph/docs/js-api/files/view/mxPerimeter-js.html

56 lines
32 KiB
HTML
Raw Normal View History

2012-05-21 20:32:26 +00:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><title>mxPerimeter</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
<!-- Generated by Natural Docs, version 1.5 -->
<!-- http://www.naturaldocs.org -->
<!-- saved from url=(0026)http://www.naturaldocs.org -->
<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxPerimeter"></a>mxPerimeter</h1><div class=CBody><p>Provides various perimeter functions to be used in a style as the value of <a href="../util/mxConstants-js.html#mxConstants.STYLE_PERIMETER" class=LVariable id=link6 onMouseOver="ShowTip(event, 'tt1', 'link6')" onMouseOut="HideTip('tt1')">mxConstants.STYLE_PERIMETER</a>.&nbsp; Perimeters for rectangle, circle, rhombus and triangle are available.</p><h4 class=CHeading>Example</h4><blockquote><pre class="prettyprint">&lt;add as=&quot;perimeter&quot;&gt;mxPerimeter.RightAngleRectanglePerimeter&lt;/add&gt;</pre></blockquote><h4 class=CHeading>Or programmatically</h4><blockquote><pre class="prettyprint">style[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;</pre></blockquote><p>When adding new perimeter functions, it is recommended to use the mxPerimeter-namespace as follows:</p><blockquote><pre class="prettyprint">mxPerimeter.CustomPerimeter = function (bounds, vertex, next, orthogonal)
{
var x = 0; // Calculate x-coordinate
var y = 0; // Calculate y-coordainte
return new mxPoint(x, y);
}</pre></blockquote><h4 class=CHeading>The new perimeter should then be registered in the <a href="mxStyleRegistry-js.html#mxStyleRegistry" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">mxStyleRegistry</a> as follows</h4><blockquote><pre class="prettyprint">mxStyleRegistry.putValue('customPerimeter', mxPerimeter.CustomPerimeter);</pre></blockquote><h4 class=CHeading>The custom perimeter above can now be used in a specific vertex as follows</h4><blockquote><pre class="prettyprint">model.setStyle(vertex, 'perimeter=customPerimeter');</pre></blockquote><p>Note that the key of the <a href="mxStyleRegistry-js.html#mxStyleRegistry" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt6', 'link8')" onMouseOut="HideTip('tt6')">mxStyleRegistry</a> entry for the function should be used in string values, unless <a href="mxGraphView-js.html#mxGraphView.allowEval" class=LVariable id=link9 onMouseOver="ShowTip(event, 'tt7', 'link9')" onMouseOut="HideTip('tt7')">mxGraphView.allowEval</a> is true, in which case you can also use mxPerimeter.CustomPerimeter for the value in the cell style above.</p><h4 class=CHeading>Or it can be used for all vertices in the graph as follows</h4><blockquote><pre class="prettyprint">var style = graph.getStylesheet().getDefaultVertexStyle();
style[mxConstants.STYLE_PERIMETER] = mxPerimeter.CustomPerimeter;</pre></blockquote><p>Note that the object can be used directly when programmatically setting the value, but the key in the <a href="mxStyleRegistry-js.html#mxStyleRegistry" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt6', 'link10')" onMouseOut="HideTip('tt6')">mxStyleRegistry</a> should be used when setting the value via a key, value pair in a cell style.</p><p>The parameters are explained in <a href="#mxPerimeter.RectanglePerimeter" class=LFunction id=link11 onMouseOver="ShowTip(event, 'tt2', 'link11')" onMouseOut="HideTip('tt2')">RectanglePerimeter</a>.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxPerimeter" >mxPerimeter</a></td><td class=SDescription>Provides various perimeter functions to be used in a style as the value of <a href="../util/mxConstants-js.html#mxConstants.STYLE_PERIMETER" class=LVariable id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">mxConstants.STYLE_PERIMETER</a>. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxPerimeter.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxPerimeter.RectanglePerimeter" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">RectanglePerimeter</a></td><td class=SDescription>Describes a rectangular perimeter for the given bounds.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxPerimeter.EllipsePerimeter" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">EllipsePerimeter</a></td><td class=SDescription>Describes an elliptic perimeter. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxPerimeter.RhombusPerimeter" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">RhombusPerimeter</a></td><td class=SDescription>Describes a rhombus (aka diamond) perimeter. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxPerimeter.TrianglePerimeter" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">TrianglePerimeter</a></td><td class=SDescription>Describes a triangle perimeter. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxPerimeter.Functions"></a>Functions</h3></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxPerimeter.RectanglePerimeter"></a>RectanglePerimeter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>RectanglePerimeter: function (</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>vertex,</td></tr><tr><td></td><td class=PParameter nowrap>next,</td></tr><tr><td></td><td class=PParameter nowrap>orthogonal</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Describes a rectangular perimeter for the given bounds.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>bounds</td><td class=CDLDescription><a href="../util/mxRectangle-js.html#mxRectangle" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt8', 'link12')" onMouseOut="HideTip('tt8')">mxRectangle</a> that represents the absolute bounds of the vertex.</td></tr><tr><td class=CDLEntry>vertex</td><td class=CDLDescription><a href="mxCellState-js.html#mxCellState" class=LClass id=link13 onMouseOver="ShowTip(event, 'tt9', 'link13')" onMouseOut="HideTip('tt9')">mxCellState</a> that represents the vertex.</td></tr><tr><td class=CDLEntry>next</td><td class=CDLDescription><a href="../util/mxPoint-js.html#mxPoint" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt10', 'link14')" onMouseOut="HideTip('tt10')">mxPoint</a> that represents the nearest neighbour point on the given edge.</td></tr><tr><td class=CDLEntry>orthogonal</td><td class=CDLDescription>Boolean that specifies if the orthogonal projection onto the perimeter should be returned.&nbsp; If this is false then the intersection of the perimeter and the line between the next and the center point is returned.</td></tr></table></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxPerimeter.EllipsePerimeter"></a>EllipsePerimeter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>EllipsePerimeter: function (</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>vertex,</td></tr><tr><td></td><td class=PParameter nowrap>next,</td></tr><tr><td></td><td class=PParameter nowrap>orthogonal</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Describes an elliptic perimeter.&nbsp; See <a href="#mxPerimeter.RectanglePerimeter" class=LFunction id=link15 onMouseOver="ShowTip(event, 'tt2', 'link15')" onMouseOut="HideTip('tt2')">RectanglePerimeter</a> for a description of the parameters.</p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxPerimeter.RhombusPerimeter"></a>RhombusPerimeter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>RhombusPerimeter: function (</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>vertex,</td></tr><tr><td></td><td class=PParameter nowrap>next,</td></tr><tr><td></td><td class=PParameter nowrap>orthogonal</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Describes a rhombus (aka diamond) perimeter.&nbsp; See <a href="#mxPerimeter.RectanglePerimeter" class=LFunction id=link16 onMouseOver="ShowTip(event, 'tt2', 'link16')" onMouseOut="HideTip('tt2')">RectanglePerimeter</a> for a description of the parameters.</p></div></div></div>
<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxPerimeter.TrianglePerimeter"></a>TrianglePerimeter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>TrianglePerimeter: function (</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>vertex,</td></tr><tr><td></td><td class=PParameter nowrap>next,</td></tr><tr><td></td><td class=PParameter nowrap>orthogonal</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Describes a triangle perimeter.&nbsp; See <a href="#mxPerimeter.RectanglePerimeter" class=LFunction id=link17 onMouseOver="ShowTip(event, 'tt2', 'link17')" onMouseOut="HideTip('tt2')">RectanglePerimeter</a> for a description of the parameters.</p></div></div></div>
</div><!--Content-->
<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Editor</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../editor/mxDefaultKeyHandler-js.html">mxDefaultKeyHandler</a></div></div><div class=MEntry><div class=MFile><a href="../editor/mxDefaultPopupMenu-js.html">mxDefaultPopupMenu</a></div></div><div class=MEntry><div class=MFile><a href="../editor/mxDefaultToolbar-js.html">mxDefaultToolbar</a></div></div><div class=MEntry><div class=MFile><a href="../editor/mxEditor-js.html">mxEditor</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Handler</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../handler/mxCellHighlight-js.html">mxCellHighlight</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxCellMarker-js.html">mxCellMarker</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxCellTracker-js.html">mxCellTracker</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxConnectionHandler-js.html">mxConnectionHandler</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxConstraintHandler-js.html">mxConstraintHandler</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxEdgeHandler-js.html">mxEdgeHandler</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxEdgeSegmentHandler-js.html">mxEdgeSegmentHandler.js</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxElbowEdgeHandler-js.html">mxElbowEdgeHandler</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxGraphHandler-js.html">mxGraphHandler</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxKeyHandler-js.html">mxKeyHandler</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxPanningHandler-js.html">mxPanningHandler</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxRubberband-js.html">mxRubberband</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxSelectionCellsHandler-js.html">mxSelectionCellsHandler</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxTooltipHandler-js.html">mxTooltipHandler</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxVertexHandler-js.html">mxVertexHandler</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Io</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-js.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxChildChangeCodec-js.html">mxChildChangeCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-js.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-js.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxDefaultKeyHandlerCodec-js.html">mxDefaultKeyHandlerCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxDefaultPopupMenuCodec-js.html">mxDefaultPopupMenuCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxDefaultToolbarCodec-js.html">mxDefaultToolbarCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxEditorCodec-js.html">mxEditorCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxGenericChangeCodec-js.html">mxGenericChangeCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxGraphCodec-js.html">mxGraphCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxGraphViewCodec-js.html">mxGraphViewCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-js.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-js.html">mxObjectCodec</a></div></div><div
var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Cookies">Cookies</option><option value="Events">Events</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
HideAllBut([11], 13);// --></script></div><!--Menu-->
<!--START_ND_TOOLTIPS-->
<div class=CToolTip id="tt1"><div class=CVariable>Defines the key for the perimeter style. </div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>RectanglePerimeter: function (</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>vertex,</td></tr><tr><td></td><td class=PParameter nowrap>next,</td></tr><tr><td></td><td class=PParameter nowrap>orthogonal</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Describes a rectangular perimeter for the given bounds.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>EllipsePerimeter: function (</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>vertex,</td></tr><tr><td></td><td class=PParameter nowrap>next,</td></tr><tr><td></td><td class=PParameter nowrap>orthogonal</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Describes an elliptic perimeter. </div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>RhombusPerimeter: function (</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>vertex,</td></tr><tr><td></td><td class=PParameter nowrap>next,</td></tr><tr><td></td><td class=PParameter nowrap>orthogonal</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Describes a rhombus (aka diamond) perimeter. </div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>TrianglePerimeter: function (</td><td class=PParameter nowrap>bounds,</td></tr><tr><td></td><td class=PParameter nowrap>vertex,</td></tr><tr><td></td><td class=PParameter nowrap>next,</td></tr><tr><td></td><td class=PParameter nowrap>orthogonal</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Describes a triangle perimeter. </div></div><div class=CToolTip id="tt6"><div class=CClass>Singleton class that acts as a global converter from string to object values in a style. </div></div><div class=CToolTip id="tt7"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype prettyprint"><tr><td>mxGraphView.prototype.allowEval</td></tr></table></blockquote>Specifies if string values in cell styles should be evaluated using mxUtils.eval. </div></div><div class=CToolTip id="tt8"><div class=CClass>Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.</div></div><div class=CToolTip id="tt9"><div class=CClass>Represents the current state of a cell in a given mxGraphView.</div></div><div class=CToolTip id="tt10"><div class=CClass>Implements a 2-dimensional vector with double precision coordinates.</div></div><!--END_ND_TOOLTIPS-->
<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>