UNPKG

gojs

Version:

Interactive diagrams, charts, and graphs, such as trees, flowcharts, orgcharts, UML, BPMN, or business diagrams

329 lines (328 loc) 16.2 kB
<!doctype html> <html class="default no-js"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>SnapLinkReshapingTool | GoJS API</title> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="../../assets/css/bootstrap.min.css"> <link rel="stylesheet" href="../assets/css/main.css"> </head> <body> <header> <!-- non-fixed navbar --> <nav id="non-fixed-nav" class="navbar navbar-inverse navbar-top"> <div class="container-fluid"> <div class="navbar-header"> <div class="navheader-container"> <div class="navheader-collapse" data-toggle="collapse" data-target="#navbar"> <a id="toplogo" class="navbar-brand" href="../../index.html">GoJS</a> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> </div> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav navbar-right"> <li><a href="../../index.html">Home</a></li> <li><a href="../../learn/index.html">Learn</a></li> <li><a href="../../samples/index.html">Samples</a></li> <li><a href="../../intro/index.html">Intro</a></li> <li><a href="../../api/index.html" target="api">API</a></li> <li><a href="https://www.nwoods.com/components/evalform.htm">Register</a></li> <li><a href="../../download.html">Download</a></li> <li><a href="https://forum.nwoods.com/c/gojs">Forum</a></li> <li><a href="https://www.nwoods.com/contact.html" onclick="ga('send','event','Outbound Link','click','contact');">Contact</a></li> <li class="buy"><a href="https://www.nwoods.com/sales/index.html" onclick="ga('send','event','Outbound Link','click','buy');">Buy</a></li> <li class="activate"><a href="https://www.nwoods.com/app/activate.aspx?sku=gojs">Activate</a></li> </ul> </div><!--/.nav-collapse --> </div> </nav> <div class="tsd-page-header"> <div class="tsd-page-toolbar"> <div class="container-fluid plr15"> <div class="table-wrap"> <div class="table-cell" id="tsd-search" data-index="../assets/js/search.js" data-base=".."> <div class="field"> <label for="tsd-search-field" class="tsd-widget search no-caption">Search</label> <input id="tsd-search-field" type="text" /> </div> <ul class="results"> <li class="state loading">Preparing search index...</li> <li class="state failure">The search index is not available</li> </ul> <a href="../index.html" class="title">GoJS API</a> </div> <div class="table-cell" id="tsd-widgets"> <div id="tsd-filter"> <a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a> <div class="tsd-filter-group"> <div class="tsd-select" id="tsd-filter-visibility"> <span class="tsd-select-label">All</span> <ul class="tsd-select-list"> <li data-value="public">Public</li> <li data-value="protected">Public/Protected</li> <li data-value="private" class="selected">All</li> </ul> </div> </div> </div> <a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a> </div> </div> </div> </div> <div class="tsd-page-title"> <div class="container-fluid plr15"> <div class="top-copyright"> <!--<b>GoJS</b>&reg; Diagramming Components<br/>version &lt;br/&gt;version 2.1.18 for TypeScript/HTML<br/>by <a href="https://www.nwoods.com/">Northwoods Software&reg;</a>--> <b>GoJS</b>&reg; Diagramming Components<br/>version 2.1.18<br/>by <a href="https://www.nwoods.com/">Northwoods Software&reg;</a> </div> <div> <h1>Class SnapLinkReshapingTool</h1> </div> </div> </div> </div> </header> <div class="container-fluid container-main plr15"> <div class="row"> <div class="col-8 col-content"> <section class="tsd-panel tsd-extension"> <p> This is an extension and not part of the main GoJS library. Note that the API for this class may change at any time. If you intend to use an extension in production, you should copy the code to your own source directory. Extensions can be found in the GoJS kit under the <code>extensions</code> or <code>extensionsTS</code> folders. See the <a href="../../intro/extensions.html">Extensions intro page</a> for more information. </p> </section> <section class="tsd-panel tsd-hierarchy"> <h3>Hierarchy</h3> <ul class="tsd-hierarchy"> <li> <a href="Tool.html" class="tsd-signature-type">Tool</a> <ul class="tsd-hierarchy"> <li> <a href="LinkReshapingTool.html" class="tsd-signature-type">LinkReshapingTool</a> <ul class="tsd-hierarchy"> <li> <span class="target">SnapLinkReshapingTool</span> </li> </ul> </li> </ul> </li> </ul> </section> <section class="tsd-panel tsd-comment"> <div class="tsd-comment tsd-typography"> <p>The SnapLinkReshapingTool class lets the user snap link reshaping handles to the nearest grid point. If <a href="SnapLinkReshapingTool.html#avoidsNodes">avoidsNodes</a> is true and the link is orthogonal, it also avoids reshaping the link so that any adjacent segments cross over any avoidable nodes.</p> <p>If you want to experiment with this extension, try the <a href="../../extensionsTS/SnapLinkReshaping.html">Snap Link Reshaping</a> sample.</p> </div> </section> <section class="tsd-panel-group tsd-index-group"> <h2>Index</h2> <section class="tsd-panel tsd-index-panel"> <div class="tsd-index-content"> <section class="tsd-index-section "> <h3>Properties</h3> <ul class="tsd-index-list"> <li class="tsd-kind-accessor tsd-parent-kind-class"><a href="SnapLinkReshapingTool.html#avoidsNodes" class="tsd-kind-icon">avoids<wbr>Nodes</a></li> <li class="tsd-kind-accessor tsd-parent-kind-class"><a href="SnapLinkReshapingTool.html#gridCellSize" class="tsd-kind-icon">grid<wbr>Cell<wbr>Size</a></li> <li class="tsd-kind-accessor tsd-parent-kind-class"><a href="SnapLinkReshapingTool.html#gridOrigin" class="tsd-kind-icon">grid<wbr>Origin</a></li> <li class="tsd-kind-accessor tsd-parent-kind-class"><a href="SnapLinkReshapingTool.html#isGridSnapEnabled" class="tsd-kind-icon">is<wbr>Grid<wbr>Snap<wbr>Enabled</a></li> </ul> </section> <section class="tsd-index-section "> <h3>Methods</h3> <ul class="tsd-index-list"> <li class="tsd-kind-method tsd-parent-kind-class"><a href="SnapLinkReshapingTool.html#computeReshape" class="tsd-kind-icon">compute<wbr>Reshape</a></li> <li class="tsd-kind-method tsd-parent-kind-class"><a href="SnapLinkReshapingTool.html#doActivate" class="tsd-kind-icon">do<wbr>Activate</a></li> </ul> </section> </div> </section> </section> <section class="tsd-panel-group tsd-member-group "> <h2>Properties</h2> <section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"> <a name="avoidsNodes" class="tsd-anchor"></a> <h3> avoids<wbr>Nodes <span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span> </h3> <ul class="tsd-descriptions"> <li class="tsd-description"> <div class="tsd-comment tsd-typography"> <p>Gets or sets whether a reshape handle&#39;s position should only be dragged where the adjacent segments do not cross over any nodes. This affects the behavior of <a href="SnapLinkReshapingTool.html#computeReshape">computeReshape</a>.</p> <p>The default value is true.</p> </div> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"> <a name="gridCellSize" class="tsd-anchor"></a> <h3> grid<wbr>Cell<wbr>Size <span class="tsd-signature-symbol">: </span><a href="Size.html" class="tsd-signature-type">Size</a> </h3> <ul class="tsd-descriptions"> <li class="tsd-description"> <div class="tsd-comment tsd-typography"> <p>Gets or sets the <a href="Size.html">Size</a> of each grid cell to which link points will be snapped.</p> <p>The default value is NaNxNaN, which means use the <a href="Diagram.html#grid">Diagram.grid</a>&#39;s <a href="Panel.html#gridCellSize">Panel.gridCellSize</a>.</p> </div> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"> <a name="gridOrigin" class="tsd-anchor"></a> <h3> grid<wbr>Origin <span class="tsd-signature-symbol">: </span><a href="Point.html" class="tsd-signature-type">Point</a> </h3> <ul class="tsd-descriptions"> <li class="tsd-description"> <div class="tsd-comment tsd-typography"> <p>Gets or sets the <a href="Point.html">Point</a> origin for the grid to which link points will be snapped.</p> <p>The default value is NaN,NaN, which means use the <a href="Diagram.html#grid">Diagram.grid</a>&#39;s <a href="Panel.html#gridOrigin">Panel.gridOrigin</a>.</p> </div> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"> <a name="isGridSnapEnabled" class="tsd-anchor"></a> <h3> is<wbr>Grid<wbr>Snap<wbr>Enabled <span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span> </h3> <ul class="tsd-descriptions"> <li class="tsd-description"> <div class="tsd-comment tsd-typography"> <p>Gets or sets whether a reshape handle&#39;s position should be snapped to a grid point. This affects the behavior of <a href="SnapLinkReshapingTool.html#computeReshape">computeReshape</a>.</p> <p>The default value is true.</p> </div> </li> </ul> </section> </section> <section class="tsd-panel-group tsd-member-group "> <h2>Methods</h2> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="computeReshape" class="tsd-anchor"></a> <h3> <span class="tsd-flag ts-flagOverride">Override</span> compute<wbr>Reshape </h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">compute<wbr>Reshape<span class="tsd-signature-symbol">(</span>p<span class="tsd-signature-symbol">: </span><a href="Point.html" class="tsd-signature-type">Point</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="Point.html" class="tsd-signature-type">Point</a></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <div class="tsd-comment tsd-typography"> <p>Pretend while dragging a reshape handle the mouse point is at the nearest grid point, if <a href="SnapLinkReshapingTool.html#isGridSnapEnabled">isGridSnapEnabled</a> is true. This uses <a href="SnapLinkReshapingTool.html#gridCellSize">gridCellSize</a> and <a href="SnapLinkReshapingTool.html#gridOrigin">gridOrigin</a>, unless those are not real values, in which case this uses the <a href="Diagram.html#grid">Diagram.grid</a>&#39;s <a href="Panel.html#gridCellSize">Panel.gridCellSize</a> and <a href="Panel.html#gridOrigin">Panel.gridOrigin</a>.</p> <p>If <a href="SnapLinkReshapingTool.html#avoidsNodes">avoidsNodes</a> is true and the adorned Link is <a href="Link.html#isOrthogonal">Link.isOrthogonal</a>, this method also avoids returning a Point that causes the adjacent segments, both before and after the current handle&#39;s index, to cross over any Nodes that are <a href="Node.html#avoidable">Node.avoidable</a>.</p> </div> <h4 class="tsd-parameters-title">Parameters</h4> <ul class="tsd-parameters"> <li> <h5>p: <a href="Point.html" class="tsd-signature-type">Point</a></h5> </li> </ul> <h4 class="tsd-returns-title">Returns <a href="Point.html" class="tsd-signature-type">Point</a></h4> </li> </ul> </section> <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"> <a name="doActivate" class="tsd-anchor"></a> <h3> <span class="tsd-flag ts-flagOverride">Override</span> do<wbr>Activate </h3> <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"> <li class="tsd-signature tsd-kind-icon">do<wbr>Activate<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li> </ul> <ul class="tsd-descriptions"> <li class="tsd-description"> <div class="tsd-comment tsd-typography"> <p>This override records information about the original point of the handle being dragged, if the <a href="LinkReshapingTool.html#adornedLink">adornedLink</a> is Orthogonal and if <a href="SnapLinkReshapingTool.html#avoidsNodes">avoidsNodes</a> is true.</p> </div> <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4> </li> </ul> </section> </section> </div> <div class="col-4 col-menu menu-sticky-wrap menu-highlight"> <nav class="tsd-navigation primary"> <ul> <li class="globals "> <a href="../index.html"><em>GoJS <wbr>Class <wbr>Index</em></a> </li> </ul> </nav> <nav class="tsd-navigation secondary menu-sticky"> <ul class="before-current"> </ul> <ul class="current"> <li class="current tsd-kind-class tsd-is-extension"> <a href="SnapLinkReshapingTool.html" class="tsd-kind-icon">Snap<wbr>Link<wbr>Reshaping<wbr>Tool</a> <ul> <li class=" tsd-kind-accessor tsd-parent-kind-class"> <a href="SnapLinkReshapingTool.html#avoidsNodes" class="tsd-kind-icon">avoids<wbr>Nodes</a> </li> <li class=" tsd-kind-accessor tsd-parent-kind-class"> <a href="SnapLinkReshapingTool.html#gridCellSize" class="tsd-kind-icon">grid<wbr>Cell<wbr>Size</a> </li> <li class=" tsd-kind-accessor tsd-parent-kind-class"> <a href="SnapLinkReshapingTool.html#gridOrigin" class="tsd-kind-icon">grid<wbr>Origin</a> </li> <li class=" tsd-kind-accessor tsd-parent-kind-class"> <a href="SnapLinkReshapingTool.html#isGridSnapEnabled" class="tsd-kind-icon">is<wbr>Grid<wbr>Snap<wbr>Enabled</a> </li> <li class=" tsd-kind-method tsd-parent-kind-class"> <a href="SnapLinkReshapingTool.html#computeReshape" class="tsd-kind-icon">compute<wbr>Reshape</a> </li> <li class=" tsd-kind-method tsd-parent-kind-class"> <a href="SnapLinkReshapingTool.html#doActivate" class="tsd-kind-icon">do<wbr>Activate</a> </li> </ul> </li> </ul> <ul class="after-current"> </ul> </nav> </div> </div> </div> <div class="container-fluid bottom-copyright plr15"> Copyright &copy; 1998-2020 by Northwoods Software Corporation. </div> <div class="overlay"></div> <script src="../assets/js/main.js"></script> <script src="../../assets/js/api.js"></script> <script src="../../assets/js/bootstrap.min.js"></script> <script>if (location.protocol == 'file:') document.write('<script src="../assets/js/search.js"><' + '/script>');</script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-1506307-5', 'auto'); ga('send', 'pageview'); </script> </body> </html>