@davepagurek/flo-mat
Version:
Medial / Scale Axis Transform (MAT/SAT) Library.
835 lines (833 loc) • 62.7 kB
HTML
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>CpNode | FloMat</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<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">FloMat</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>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
<input type="checkbox" id="tsd-filter-only-exported" />
<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
</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">
<ul class="tsd-breadcrumb">
<li>
<a href="../globals.html">Globals</a>
</li>
<li>
<a href="../modules/_cp_node_.html">"cp-node"</a>
</li>
<li>
<a href="_cp_node_.cpnode.html">CpNode</a>
</li>
</ul>
<h1>Class CpNode</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The primary class of the library.</p>
</div>
<p>Since the MAT is a full representation of the shape boundary an instance of
this class contains both the information of a boundary point and a medial
axis point (and edge to the next point(s)). It also contains edges to other
<a href="_cp_node_.cpnode.html">CpNode</a>s which allows for traversal of the MAT and thus implictly
represents the entire MAT.</p>
<p>To get the maximal disk circle (of which the center is on the medial axis)
use <a href="_cp_node_.cpnode.html#cp">cp</a>.circle.</p>
<p>To get the boundary point, use <a href="_cp_node_.cpnode.html#cp">cp</a>.pointOnShape.</p>
<p>The edge <a href="_cp_node_.cpnode.html#next">next</a> (resp. <a href="_cp_node_.cpnode.html#prev">prev</a>) allows one to move anti-clockwise (resp.
clockwise) on the shape boundary to the next <a href="_cp_node_.cpnode.html">CpNode</a>. This also imposes a
direction of traversal of the MAT edges and vertices.</p>
<p>The edge <a href="_cp_node_.cpnode.html#nextoncircle">nextOnCircle</a> (resp. <a href="_cp_node_.cpnode.html#prevoncircle">prevOnCircle</a>) allows one to go
anti-clockwise (resp. clockwise) around the maximal disks implied by
the CpNode to the next maximal disk contact point. This is equivalent to
following other branches on the MAT.</p>
<p>Call [[getCurveBetween]](cpNodeFrom, cpNodeTo) or getCurveToNext(cpNode)
(replacing the older CpNode.<a href="_cp_node_.cpnode.html#matcurvetonextvertex">matCurveToNextVertex</a>) to get a bezier curve
from the maximal disk of this <a href="_cp_node_.cpnode.html">CpNode</a> to the next <a href="_cp_node_.cpnode.html">CpNode</a>'s
maximal disk and thus directly representing a piece of the medial axis.</p>
<p>The function, <a href="_cp_node_.cpnode.html#getchildren">getChildren</a>, returns the children of this <a href="_cp_node_.cpnode.html">CpNode</a> when
seen as a MAT edge. Only children in a 'forward' direction are returned. These
include all edges except the 'backward' edge given by <a href="_cp_node_.cpnode.html#prevoncircle">prevOnCircle</a>. For
<a href="_cp_node_.cpnode.html">CpNode</a>s having a maximal disk with 2 contact points (a 2-prong, the usual
case) the children will be the single edge <a href="_cp_node_.cpnode.html#next">next</a>. For a 3-prong this will
be the edges <a href="_cp_node_.cpnode.html#next">next</a> and <a href="_cp_node_.cpnode.html#nextoncircle">nextOnCircle</a>, etc. <a href="_cp_node_.cpnode.html#getchildren">getChildren</a> allows one to
easily traverse the MAT tree - see e.g. the implementation of <a href="../modules/_traverse_edges_.html#traverseedges">traverseEdges</a>.</p>
<p>The getter, <a href="_cp_node_.cpnode.html#vertexchildren">vertexChildren</a>, is similar to <a href="_cp_node_.cpnode.html#getchildren">getChildren</a> but returns the
child nodes of the tree when <a href="_cp_node_.cpnode.html">CpNode</a> is seen as a MAT vertex point (as
opposed to edge). In this way the dual graph of the tree can easily be
traversed - see e.g. <a href="../modules/_traverse_vertices_.html#traversevertices">traverseVertices</a>. Generally, however, traversing the
edges is preferred as it returns the entire Medial Axis (by utilizing
<a href="../modules/_get_curve_to_next_.html#getcurvetonext">getCurveToNext</a> on each returned edge).</p>
<p>It may be worth mentioning that by traversing from the CpNode by following
<a href="_cp_node_.cpnode.html#next">next</a> repeatedly until one is back at the same CpNode allows one
to 'go around' the shape boundary and at the same time traverse the MAT twice
in opposite directions.</p>
</div>
</section>
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">CpNode</span>
</li>
</ul>
</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 tsd-is-not-exported">
<h3>Constructors</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#constructor" class="tsd-kind-icon">constructor</a></li>
</ul>
</section>
<section class="tsd-index-section tsd-is-not-exported">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#cp" class="tsd-kind-icon">cp</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#isholeclosing" class="tsd-kind-icon">is<wbr>Hole<wbr>Closing</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#isintersection" class="tsd-kind-icon">is<wbr>Intersection</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#next" class="tsd-kind-icon">next</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#nextoncircle" class="tsd-kind-icon">next<wbr>OnCircle</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#prev" class="tsd-kind-icon">prev</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#prevoncircle" class="tsd-kind-icon">prev<wbr>OnCircle</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-static tsd-is-not-exported"><a href="_cp_node_.cpnode.html#remove" class="tsd-kind-icon">remove</a></li>
</ul>
</section>
<section class="tsd-index-section tsd-is-not-exported">
<h3>Accessors</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-get-signature tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#matcurvetonextvertex" class="tsd-kind-icon">mat<wbr>Curve<wbr>ToNext<wbr>Vertex</a></li>
<li class="tsd-kind-get-signature tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#vertexchildren" class="tsd-kind-icon">vertex<wbr>Children</a></li>
</ul>
</section>
<section class="tsd-index-section tsd-is-not-exported">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#getallonloop" class="tsd-kind-icon">get<wbr>All<wbr>OnLoop</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#getchildren" class="tsd-kind-icon">get<wbr>Children</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#getcpnodesoncircle" class="tsd-kind-icon">get<wbr>CpNodes<wbr>OnCircle</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#getfirstexit" class="tsd-kind-icon">get<wbr>First<wbr>Exit</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#getprongcount" class="tsd-kind-icon">get<wbr>Prong<wbr>Count</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#getrealprongcount" class="tsd-kind-icon">get<wbr>Real<wbr>Prong<wbr>Count</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#isfullyterminating" class="tsd-kind-icon">is<wbr>Fully<wbr>Terminating</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#isoneprong" class="tsd-kind-icon">is<wbr>One<wbr>Prong</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#issharp" class="tsd-kind-icon">is<wbr>Sharp</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-not-exported"><a href="_cp_node_.cpnode.html#isterminating" class="tsd-kind-icon">is<wbr>Terminating</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-static tsd-is-not-exported"><a href="_cp_node_.cpnode.html#comparator" class="tsd-kind-icon">comparator</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-static tsd-is-not-exported"><a href="_cp_node_.cpnode.html#insert" class="tsd-kind-icon">insert</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-static tsd-is-not-exported"><a href="_cp_node_.cpnode.html#isonsamecircle" class="tsd-kind-icon">is<wbr>OnSame<wbr>Circle</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
<h2>Constructors</h2>
<section class="tsd-panel tsd-member tsd-kind-constructor tsd-parent-kind-class tsd-is-not-exported">
<a name="constructor" class="tsd-anchor"></a>
<h3>constructor</h3>
<ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class tsd-is-not-exported">
<li class="tsd-signature tsd-kind-icon">new <wbr>CpNode<span class="tsd-signature-symbol">(</span>cp<span class="tsd-signature-symbol">: </span><a href="_contact_point_.contactpoint.html" class="tsd-signature-type">ContactPoint</a>, isHoleClosing<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span>, isIntersection<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span>, prev<span class="tsd-signature-symbol">?: </span><a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a>, next<span class="tsd-signature-symbol">?: </span><a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a>, prevOnCircle<span class="tsd-signature-symbol">?: </span><a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a>, nextOnCircle<span class="tsd-signature-symbol">?: </span><a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L61">cp-node.ts:61</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Primarily for internal use.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>cp: <a href="_contact_point_.contactpoint.html" class="tsd-signature-type">ContactPoint</a></h5>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The shape boundary contact point, i.e. a <a href="_cp_node_.cpnode.html">CpNode</a> without its
edges.</p>
</div>
</div>
</li>
<li>
<h5>isHoleClosing: <span class="tsd-signature-type">boolean</span></h5>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>If true, this <a href="_cp_node_.cpnode.html">CpNode</a> belongs to a hole-closing
maximal disk.</p>
</div>
</div>
</li>
<li>
<h5>isIntersection: <span class="tsd-signature-type">boolean</span></h5>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>true if this cpNode is at a shape boundary
intersection point, false otherwise</p>
</div>
</div>
</li>
<li>
<h5><span class="tsd-flag ts-flagDefault value">Default value</span> prev: <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a><span class="tsd-signature-symbol"> = undefined</span></h5>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The previous (going clockwise around the boundary) contact
point (<a href="_cp_node_.cpnode.html">CpNode</a>).</p>
</div>
</div>
</li>
<li>
<h5><span class="tsd-flag ts-flagDefault value">Default value</span> next: <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a><span class="tsd-signature-symbol"> = undefined</span></h5>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The next (going anti-clockwise around the boundary) contact
point (<a href="_cp_node_.cpnode.html">CpNode</a>).</p>
</div>
</div>
</li>
<li>
<h5><span class="tsd-flag ts-flagDefault value">Default value</span> prevOnCircle: <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a><span class="tsd-signature-symbol"> = undefined</span></h5>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The previous <a href="_cp_node_.cpnode.html">CpNode</a> (going clockwise around
the inscribed circle defined by the maximal disk).</p>
</div>
</div>
</li>
<li>
<h5><span class="tsd-flag ts-flagDefault value">Default value</span> nextOnCircle: <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a><span class="tsd-signature-symbol"> = undefined</span></h5>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The next <a href="_cp_node_.cpnode.html">CpNode</a> (going anti-clockwise around
the inscribed circle defined by the maximal disk).</p>
</div>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a></h4>
</li>
</ul>
</section>
</section>
<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-not-exported">
<a name="cp" class="tsd-anchor"></a>
<h3>cp</h3>
<div class="tsd-signature tsd-kind-icon">cp<span class="tsd-signature-symbol">:</span> <a href="_contact_point_.contactpoint.html" class="tsd-signature-type">ContactPoint</a></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L81">cp-node.ts:81</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The shape boundary contact point, i.e. a <a href="_cp_node_.cpnode.html">CpNode</a> without its
edges.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-not-exported">
<a name="isholeclosing" class="tsd-anchor"></a>
<h3>is<wbr>Hole<wbr>Closing</h3>
<div class="tsd-signature tsd-kind-icon">is<wbr>Hole<wbr>Closing<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L82">cp-node.ts:82</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>If true, this <a href="_cp_node_.cpnode.html">CpNode</a> belongs to a hole-closing
maximal disk.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-not-exported">
<a name="isintersection" class="tsd-anchor"></a>
<h3>is<wbr>Intersection</h3>
<div class="tsd-signature tsd-kind-icon">is<wbr>Intersection<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L83">cp-node.ts:83</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>true if this cpNode is at a shape boundary
intersection point, false otherwise</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-not-exported">
<a name="next" class="tsd-anchor"></a>
<h3>next</h3>
<div class="tsd-signature tsd-kind-icon">next<span class="tsd-signature-symbol">:</span> <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L85">cp-node.ts:85</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The next (going anti-clockwise around the boundary) contact
point (<a href="_cp_node_.cpnode.html">CpNode</a>).</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-not-exported">
<a name="nextoncircle" class="tsd-anchor"></a>
<h3>next<wbr>OnCircle</h3>
<div class="tsd-signature tsd-kind-icon">next<wbr>OnCircle<span class="tsd-signature-symbol">:</span> <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L87">cp-node.ts:87</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The next <a href="_cp_node_.cpnode.html">CpNode</a> (going anti-clockwise around
the inscribed circle defined by the maximal disk).</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-not-exported">
<a name="prev" class="tsd-anchor"></a>
<h3>prev</h3>
<div class="tsd-signature tsd-kind-icon">prev<span class="tsd-signature-symbol">:</span> <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L84">cp-node.ts:84</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The previous (going clockwise around the boundary) contact
point (<a href="_cp_node_.cpnode.html">CpNode</a>).</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-not-exported">
<a name="prevoncircle" class="tsd-anchor"></a>
<h3>prev<wbr>OnCircle</h3>
<div class="tsd-signature tsd-kind-icon">prev<wbr>OnCircle<span class="tsd-signature-symbol">:</span> <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L86">cp-node.ts:86</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The previous <a href="_cp_node_.cpnode.html">CpNode</a> (going clockwise around
the inscribed circle defined by the maximal disk).</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-static tsd-is-not-exported">
<a name="remove" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagStatic">Static</span> remove</h3>
<div class="tsd-signature tsd-kind-icon">remove<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">removeCpNode</span><span class="tsd-signature-symbol"> = removeCpNode</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L132">cp-node.ts:132</a></li>
</ul>
</aside>
</section>
</section>
<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
<h2>Accessors</h2>
<section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class tsd-is-not-exported">
<a name="matcurvetonextvertex" class="tsd-anchor"></a>
<h3>mat<wbr>Curve<wbr>ToNext<wbr>Vertex</h3>
<ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class tsd-is-not-exported">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> matCurveToNextVertex<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">[]</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L98">cp-node.ts:98</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns the bezier curve from the maximal disk of this <a href="_cp_node_.cpnode.html">CpNode</a> to the
next <a href="_cp_node_.cpnode.html">CpNode</a>'s maximal disk and thus directly represents a piece of the
medial axis.</p>
</div>
<dl class="tsd-comment-tags">
<dt>deprecated</dt>
<dd><p>Use <a href="../modules/_get_curve_to_next_.html#getcurvetonext">getCurveToNext</a> instead</p>
</dd>
</dl>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">[]</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class tsd-is-not-exported">
<a name="vertexchildren" class="tsd-anchor"></a>
<h3>vertex<wbr>Children</h3>
<ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class tsd-is-not-exported">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> vertexChildren<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a><span class="tsd-signature-symbol">[]</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L143">cp-node.ts:143</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Similar to <a href="_cp_node_.cpnode.html#getchildren">getChildren</a> but returns the child nodes of the tree when
<a href="_cp_node_.cpnode.html">CpNode</a> is seen as a MAT vertex point (as opposed to edge). In this
way the dual graph of the tree can easily be traversed - see e.g.
<a href="../modules/_traverse_vertices_.html#traversevertices">traverseVertices</a>. Generally, however, traversing the edges is
preferred as it returns the entire Medial Axis (by utilizing
<a href="../modules/_get_curve_to_next_.html#getcurvetonext">getCurveToNext</a> on each returned edge).</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a><span class="tsd-signature-symbol">[]</span></h4>
</li>
</ul>
</section>
</section>
<section class="tsd-panel-group tsd-member-group tsd-is-not-exported">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<a name="getallonloop" class="tsd-anchor"></a>
<h3>get<wbr>All<wbr>OnLoop</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<li class="tsd-signature tsd-kind-icon">get<wbr>All<wbr>OnLoop<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a><span class="tsd-signature-symbol">[]</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L163">cp-node.ts:163</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns all <a href="_cp_node_.cpnode.html">CpNode</a>s on the MAT that this <a href="_cp_node_.cpnode.html">CpNode</a> is part of
starting from the current one and going anti-clockwise around the shape.</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a><span class="tsd-signature-symbol">[]</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<a name="getchildren" class="tsd-anchor"></a>
<h3>get<wbr>Children</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<li class="tsd-signature tsd-kind-icon">get<wbr>Children<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a><span class="tsd-signature-symbol">[]</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L119">cp-node.ts:119</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns the children of this <a href="_cp_node_.cpnode.html">CpNode</a> when seen as a MAT edge. Only
children in a 'forward' direction are returned. These include all edges
except the 'backward' edge given by <a href="_cp_node_.cpnode.html#prevoncircle">prevOnCircle</a>, even terminating
edges.</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a><span class="tsd-signature-symbol">[]</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<a name="getcpnodesoncircle" class="tsd-anchor"></a>
<h3>get<wbr>CpNodes<wbr>OnCircle</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<li class="tsd-signature tsd-kind-icon">get<wbr>CpNodes<wbr>OnCircle<span class="tsd-signature-symbol">(</span>exclThis<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a><span class="tsd-signature-symbol">[]</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L237">cp-node.ts:237</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Return this (except if exclThis is truthy) and the the other CpNodes
around the maximal disk vertex circle in an anti-clockwise order.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5><span class="tsd-flag ts-flagDefault value">Default value</span> exclThis: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5>
<div class="tsd-comment tsd-typography">
<p>If true the returned array does not include this
<a href="_cp_node_.cpnode.html">CpNode</a>.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a><span class="tsd-signature-symbol">[]</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<a name="getfirstexit" class="tsd-anchor"></a>
<h3>get<wbr>First<wbr>Exit</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<li class="tsd-signature tsd-kind-icon">get<wbr>First<wbr>Exit<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L302">cp-node.ts:302</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns the first <a href="_cp_node_.cpnode.html">CpNode</a> (from this one by successively applying
.nextOnCircle) that exits the circle.</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<a name="getprongcount" class="tsd-anchor"></a>
<h3>get<wbr>Prong<wbr>Count</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<li class="tsd-signature tsd-kind-icon">get<wbr>Prong<wbr>Count<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L363">cp-node.ts:363</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns the number of contact points on the maximal disk circle implied
by this <a href="_cp_node_.cpnode.html">CpNode</a>.</p>
</div>
<p>Note, however, that even one-prongs and sharp corners will return 2 (see
<a href="_cp_node_.cpnode.html#isterminating">isTerminating</a> for more details); if this is not desired use
<a href="_cp_node_.cpnode.html#getrealprongcount">getRealProngCount</a> instead which will return 1 in these cases.</p>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<a name="getrealprongcount" class="tsd-anchor"></a>
<h3>get<wbr>Real<wbr>Prong<wbr>Count</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<li class="tsd-signature tsd-kind-icon">get<wbr>Real<wbr>Prong<wbr>Count<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L384">cp-node.ts:384</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns the number of contact points (up to planar coordinates) on the
maximal disk circle implied by this <a href="_cp_node_.cpnode.html">CpNode</a>.</p>
</div>
<p>See also <a href="_cp_node_.cpnode.html#getprongcount">getProngCount</a>.</p>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<a name="isfullyterminating" class="tsd-anchor"></a>
<h3>is<wbr>Fully<wbr>Terminating</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<li class="tsd-signature tsd-kind-icon">is<wbr>Fully<wbr>Terminating<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L290">cp-node.ts:290</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Like isTerminating() but only returns true if all cpNodes on the circle
(except this.prevOnCircle) is terminating.</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<a name="isoneprong" class="tsd-anchor"></a>
<h3>is<wbr>One<wbr>Prong</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<li class="tsd-signature tsd-kind-icon">is<wbr>One<wbr>Prong<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L339">cp-node.ts:339</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns true if this <a href="_cp_node_.cpnode.html">CpNode</a>'s maximal disk has only one contact point
on the shape boundary (up to planar coordinates). These includes sharp
corners.</p>
</div>
<p>Note, however, that two <a href="_cp_node_.cpnode.html">CpNode</a>s are stored for each such point to
preserve symmetry - see <a href="_cp_node_.cpnode.html#isterminating">isTerminating</a> for more details.</p>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<a name="issharp" class="tsd-anchor"></a>
<h3>is<wbr>Sharp</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<li class="tsd-signature tsd-kind-icon">is<wbr>Sharp<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L326">cp-node.ts:326</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns true if this <a href="_cp_node_.cpnode.html">CpNode</a> represents a sharp corner, i.e. the
limiting case of a two-prong having zero radius.</p>
</div>
<p>Note that two <a href="_cp_node_.cpnode.html">CpNode</a>s are stored for each sharp corner, one being
terminating and one not. See <a href="_cp_node_.cpnode.html#isterminating">isTerminating</a> for more details.</p>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<a name="isterminating" class="tsd-anchor"></a>
<h3>is<wbr>Terminating</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-not-exported">
<li class="tsd-signature tsd-kind-icon">is<wbr>Terminating<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L281">cp-node.ts:281</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns true if this <a href="_cp_node_.cpnode.html">CpNode</a> is terminating, i.e. implies a leaf MAT
vertex.</p>
</div>
<p>This is always the case for sharp corners and maximal disks with
a single contact point. Note, however, that even in these cases there are
two contact points stored (sitting 'on top' of each other) for the
maximal disk. It can be seen as a limiting case of a two-prong where the
distance between two of the contact points tend to zero. One point
(represented by a <a href="_cp_node_.cpnode.html">CpNode</a> of course) will be terminating with the
other point being its <a href="_cp_node_.cpnode.html#next">next</a>, whereas the other point will <em>not</em> be
terminating and 'points' back into the shape.</p>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-static tsd-is-not-exported">
<a name="comparator" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagStatic">Static</span> comparator</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-static tsd-is-not-exported">
<li class="tsd-signature tsd-kind-icon">comparator<span class="tsd-signature-symbol">(</span>a<span class="tsd-signature-symbol">: </span><a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a>, b<span class="tsd-signature-symbol">: </span><a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L109">cp-node.ts:109</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Primarily for internal use.</p>
</div>
<p>Compares the order of two <a href="_cp_node_.cpnode.html">CpNode</a>s. The order is cyclic and depends
on a <a href="_cp_node_.cpnode.html">CpNode</a>'s relative position along the shape boundary.</p>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>a: <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a></h5>
</li>
<li>
<h5>b: <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-static tsd-is-not-exported">
<a name="insert" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagStatic">Static</span> insert</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-static tsd-is-not-exported">
<li class="tsd-signature tsd-kind-icon">insert<span class="tsd-signature-symbol">(</span>isHoleClosing<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span>, isIntersection<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span>, cpTree<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">LlRbTree</span><span class="tsd-signature-symbol"><</span><a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a><span class="tsd-signature-symbol">></span>, cp<span class="tsd-signature-symbol">: </span><a href="_contact_point_.contactpoint.html" class="tsd-signature-type">ContactPoint</a>, prev_<span class="tsd-signature-symbol">: </span><a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L191">cp-node.ts:191</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Primarily for internal use.</p>
</div>
<p>Insert a <a href="_cp_node_.cpnode.html">CpNode</a> into the MAT tree graph after the specified point
and returns the freshly inserted <a href="_cp_node_.cpnode.html">CpNode</a>.</p>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>isHoleClosing: <span class="tsd-signature-type">boolean</span></h5>
<div class="tsd-comment tsd-typography">
<p>True if this is a hole closing contact point.</p>
</div>
</li>
<li>
<h5>isIntersection: <span class="tsd-signature-type">boolean</span></h5>
<div class="tsd-comment tsd-typography">
<p>True if this is a contact point at a shape boundary
intersection point.</p>
</div>
</li>
<li>
<h5>cpTree: <span class="tsd-signature-type">LlRbTree</span><span class="tsd-signature-symbol"><</span><a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a><span class="tsd-signature-symbol">></span></h5>
<div class="tsd-comment tsd-typography">
<p>The tree graph holding the [[CpNodes]] of the MAT.</p>
</div>
</li>
<li>
<h5>cp: <a href="_contact_point_.contactpoint.html" class="tsd-signature-type">ContactPoint</a></h5>
<div class="tsd-comment tsd-typography">
<p><a href="_contact_point_.contactpoint.html">ContactPoint</a> defining the <a href="_cp_node_.cpnode.html">CpNode</a>.</p>
</div>
</li>
<li>
<h5>prev_: <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a></h5>
<div class="tsd-comment tsd-typography">
<p>Inserts the new <a href="_cp_node_.cpnode.html">CpNode</a> right after this item if the
loop is not empty, else insert the new <a href="_cp_node_.cpnode.html">CpNode</a> as the only item in the
loop.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-static tsd-is-not-exported">
<a name="isonsamecircle" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagStatic">Static</span> is<wbr>OnSame<wbr>Circle</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-static tsd-is-not-exported">
<li class="tsd-signature tsd-kind-icon">is<wbr>OnSame<wbr>Circle<span class="tsd-signature-symbol">(</span>cpNode1<span class="tsd-signature-symbol">: </span><a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a>, cpNode2<span class="tsd-signature-symbol">: </span><a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/FlorisSteenkamp/MAT/blob/de18fdb/src/cp-node.ts#L261">cp-node.ts:261</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns true if the 2 given <a href="_cp_node_.cpnode.html">CpNode</a>s are on the same maximal disk
circle.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>cpNode1: <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a></h5>
<div class="tsd-comment tsd-typography">
<p>A <a href="_cp_node_.cpnode.html">CpNode</a>.</p>
</div>
</li>
<li>
<h5>cpNode2: <a href="_cp_node_.cpnode.html" class="tsd-signature-type">CpNode</a></h5>
<div class="tsd-comment tsd-typography">
<p>A