maxGraph/java/docs/com/mxgraph/util/mxCurve.html

987 lines
43 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_51) on Mon Nov 10 04:00:04 EST 2014 -->
<title>mxCurve (mxGraph 3.1.1.1 API Specification)</title>
<meta name="date" content="2014-11-10">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="mxCurve (mxGraph 3.1.1.1 API Specification)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/mxCurve.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><p><b>mxGraph 3.1.1.1</b></p></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../com/mxgraph/util/mxDomUtils.html" title="class in com.mxgraph.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/mxgraph/util/mxCurve.html" target="_top">Frames</a></li>
<li><a href="mxCurve.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.mxgraph.util</div>
<h2 title="Class mxCurve" class="title">Class mxCurve</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>com.mxgraph.util.mxCurve</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="strong">mxCurve</span>
extends java.lang.Object</pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#CORE_CURVE">CORE_CURVE</a></strong></code>
<div class="block">Defines the key for the central curve index</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected java.util.Map&lt;java.lang.String,java.lang.Double&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#curveLengths">curveLengths</a></strong></code>
<div class="block">The curve lengths of the curves</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.util.List&lt;<a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#guidePoints">guidePoints</a></strong></code>
<div class="block">The points this curve is drawn through.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected java.util.Map&lt;java.lang.String,double[]&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#intervals">intervals</a></strong></code>
<div class="block">An array of arrays of intervals.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</a></code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#INVALID_POSITION">INVALID_POSITION</a></strong></code>
<div class="block">Indicates that an invalid position on a curve was requested</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#LABEL_CURVE">LABEL_CURVE</a></strong></code>
<div class="block">Defines the key for the label curve index</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected double</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#labelBuffer">labelBuffer</a></strong></code>
<div class="block">Offset of the label curve from the curve the label curve is based on.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected double</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#maxXBounds">maxXBounds</a></strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected double</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#maxYBounds">maxYBounds</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected double</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#minXBounds">minXBounds</a></strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected double</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#minYBounds">minYBounds</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected java.util.Map&lt;java.lang.String,<a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>[]&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#points">points</a></strong></code>
<div class="block">A collection of arrays of curve points</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#valid">valid</a></strong></code>
<div class="block">Whether or not the curve currently holds valid values</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#mxCurve()">mxCurve</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#mxCurve(java.util.List)">mxCurve</a></strong>(java.util.List&lt;<a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>&gt;&nbsp;points)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a></code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#collisionMove(java.lang.String, com.mxgraph.util.mxRectangle, double)">collisionMove</a></strong>(java.lang.String&nbsp;index,
<a href="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</a>&nbsp;rect,
double&nbsp;buffer)</code>
<div class="block">Returns a point to move the input rectangle to, in order to
attempt to place the rectangle away from the curve.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#createCoreCurve()">createCoreCurve</a></strong>()</code>
<div class="block">Creates the core curve that is based on the guide points passed into
this class instance</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#createLabelCurve()">createLabelCurve</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>[]</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#getBaseLabelCurve()">getBaseLabelCurve</a></strong>()</code>
<div class="block">Returns the curve the label curve is too be based on</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</a></code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#getBounds()">getBounds</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#getCurveLength(java.lang.String)">getCurveLength</a></strong>(java.lang.String&nbsp;index)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</a></code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#getCurveParallel(java.lang.String, double)">getCurveParallel</a></strong>(java.lang.String&nbsp;index,
double&nbsp;distance)</code>
<div class="block">Returns a unit vector parallel to the curve at the specified
distance along the curve.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>[]</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#getCurvePoints(java.lang.String)">getCurvePoints</a></strong>(java.lang.String&nbsp;index)</code>
<div class="block">Obtains the points that make up the curve for the specified
curve index.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>[]</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#getCurveSection(java.lang.String, double, double)">getCurveSection</a></strong>(java.lang.String&nbsp;index,
double&nbsp;start,
double&nbsp;end)</code>
<div class="block">Returns a section of the curve as an array of points</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.List&lt;<a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#getGuidePoints()">getGuidePoints</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double[]</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#getIntervals(java.lang.String)">getIntervals</a></strong>(java.lang.String&nbsp;index)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#getLowerIndexOfSegment(java.lang.String, double)">getLowerIndexOfSegment</a></strong>(java.lang.String&nbsp;index,
double&nbsp;distance)</code>
<div class="block">Calculates the index of the lower point on the segment
that contains the point <i>distance</i> along the</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</a></code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#getRelativeFromAbsPoint(com.mxgraph.util.mxPoint, java.lang.String)">getRelativeFromAbsPoint</a></strong>(<a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>&nbsp;absPoint,
java.lang.String&nbsp;index)</code>
<div class="block">Calculates the position of an absolute in terms relative
to this curve.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a></code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#intersectRectPerimeterPoint(java.lang.String, com.mxgraph.util.mxRectangle, int)">intersectRectPerimeterPoint</a></strong>(java.lang.String&nbsp;curveIndex,
<a href="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</a>&nbsp;rect,
int&nbsp;indexSeg)</code>
<div class="block">Returns the point at which this curve segment intersects the boundary
of the given rectangle, if it does so.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#intersectRectPerimeterSeg(java.lang.String, com.mxgraph.util.mxRectangle)">intersectRectPerimeterSeg</a></strong>(java.lang.String&nbsp;index,
<a href="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</a>&nbsp;rect)</code>
<div class="block">Utility method to determine within which segment the specified rectangle
intersects the specified curve</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#intersectRectPerimeterSeg(java.lang.String, com.mxgraph.util.mxRectangle, int)">intersectRectPerimeterSeg</a></strong>(java.lang.String&nbsp;index,
<a href="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</a>&nbsp;rect,
int&nbsp;startSegment)</code>
<div class="block">Utility method to determine within which segment the specified rectangle
intersects the specified curve.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#intersectsRect(java.awt.Rectangle)">intersectsRect</a></strong>(java.awt.Rectangle&nbsp;rect)</code>
<div class="block">Returns whether or not the rectangle passed in hits any part of this
curve.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a></code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#intersectsRectPerimeter(java.lang.String, com.mxgraph.util.mxRectangle)">intersectsRectPerimeter</a></strong>(java.lang.String&nbsp;index,
<a href="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</a>&nbsp;rect)</code>
<div class="block">Returns the point at which this curve intersects the boundary of
the given rectangle, if it does so.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#intersectsRectPerimeterDist(java.lang.String, com.mxgraph.util.mxRectangle)">intersectsRectPerimeterDist</a></strong>(java.lang.String&nbsp;index,
<a href="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</a>&nbsp;rect)</code>
<div class="block">Returns the distance from the start of the curve at which this
curve intersects the boundary of the given rectangle, if it does
so.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#isLabelReversed()">isLabelReversed</a></strong>()</code>
<div class="block">Whether or not the label curve starts from the end target
and traces to the start of the branch</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#populateIntervals(java.lang.String)">populateIntervals</a></strong>(java.lang.String&nbsp;index)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#setLabelBuffer(double)">setLabelBuffer</a></strong>(double&nbsp;buffer)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#updateBounds(double, double)">updateBounds</a></strong>(double&nbsp;pointX,
double&nbsp;pointY)</code>
<div class="block">Updates the total bounds of this curve, increasing any dimensions,
if necessary, to fit in the specified point</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#updateCurve(java.util.List)">updateCurve</a></strong>(java.util.List&lt;<a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>&gt;&nbsp;newPoints)</code>
<div class="block">Updates the existing curve using the points passed in.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><strong><a href="../../../com/mxgraph/util/mxCurve.html#validateCurve()">validateCurve</a></strong>()</code>
<div class="block">Method must be called before any attempt to access curve information</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="points">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>points</h4>
<pre>protected&nbsp;java.util.Map&lt;java.lang.String,<a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>[]&gt; points</pre>
<div class="block">A collection of arrays of curve points</div>
</li>
</ul>
<a name="minXBounds">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>minXBounds</h4>
<pre>protected&nbsp;double minXBounds</pre>
</li>
</ul>
<a name="maxXBounds">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maxXBounds</h4>
<pre>protected&nbsp;double maxXBounds</pre>
</li>
</ul>
<a name="minYBounds">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>minYBounds</h4>
<pre>protected&nbsp;double minYBounds</pre>
</li>
</ul>
<a name="maxYBounds">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maxYBounds</h4>
<pre>protected&nbsp;double maxYBounds</pre>
</li>
</ul>
<a name="intervals">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>intervals</h4>
<pre>protected&nbsp;java.util.Map&lt;java.lang.String,double[]&gt; intervals</pre>
<div class="block">An array of arrays of intervals. These intervals define the distance
along the edge (0 to 1) that each point lies</div>
</li>
</ul>
<a name="curveLengths">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>curveLengths</h4>
<pre>protected&nbsp;java.util.Map&lt;java.lang.String,java.lang.Double&gt; curveLengths</pre>
<div class="block">The curve lengths of the curves</div>
</li>
</ul>
<a name="CORE_CURVE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CORE_CURVE</h4>
<pre>public static&nbsp;java.lang.String CORE_CURVE</pre>
<div class="block">Defines the key for the central curve index</div>
</li>
</ul>
<a name="LABEL_CURVE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LABEL_CURVE</h4>
<pre>public static&nbsp;java.lang.String LABEL_CURVE</pre>
<div class="block">Defines the key for the label curve index</div>
</li>
</ul>
<a name="INVALID_POSITION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INVALID_POSITION</h4>
<pre>public static&nbsp;<a href="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</a> INVALID_POSITION</pre>
<div class="block">Indicates that an invalid position on a curve was requested</div>
</li>
</ul>
<a name="labelBuffer">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>labelBuffer</h4>
<pre>protected&nbsp;double labelBuffer</pre>
<div class="block">Offset of the label curve from the curve the label curve is based on.
If you wish to set this value, do so directly after creation of the curve.
The first time the curve is used the label curve will be created with
whatever value is contained in this variable. Changes to it after that point
will have no effect.</div>
</li>
</ul>
<a name="guidePoints">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>guidePoints</h4>
<pre>public&nbsp;java.util.List&lt;<a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>&gt; guidePoints</pre>
<div class="block">The points this curve is drawn through. These are typically control
points and are at distances from each other that straight lines
between them do not describe a smooth curve. This class takes
these guiding points and creates a finer set of internal points
that visually appears to be a curve when linked by straight lines</div>
</li>
</ul>
<a name="valid">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>valid</h4>
<pre>protected&nbsp;boolean valid</pre>
<div class="block">Whether or not the curve currently holds valid values</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="mxCurve()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mxCurve</h4>
<pre>public&nbsp;mxCurve()</pre>
</li>
</ul>
<a name="mxCurve(java.util.List)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>mxCurve</h4>
<pre>public&nbsp;mxCurve(java.util.List&lt;<a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>&gt;&nbsp;points)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="setLabelBuffer(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLabelBuffer</h4>
<pre>public&nbsp;void&nbsp;setLabelBuffer(double&nbsp;buffer)</pre>
</li>
</ul>
<a name="getBounds()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBounds</h4>
<pre>public&nbsp;<a href="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</a>&nbsp;getBounds()</pre>
</li>
</ul>
<a name="getLowerIndexOfSegment(java.lang.String, double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLowerIndexOfSegment</h4>
<pre>protected&nbsp;int&nbsp;getLowerIndexOfSegment(java.lang.String&nbsp;index,
double&nbsp;distance)</pre>
<div class="block">Calculates the index of the lower point on the segment
that contains the point <i>distance</i> along the</div>
</li>
</ul>
<a name="getCurveParallel(java.lang.String, double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurveParallel</h4>
<pre>public&nbsp;<a href="../../../com/mxgraph/util/mxLine.html" title="class in com.mxgraph.util">mxLine</a>&nbsp;getCurveParallel(java.lang.String&nbsp;index,
double&nbsp;distance)</pre>
<div class="block">Returns a unit vector parallel to the curve at the specified
distance along the curve. To obtain the angle the vector makes
with (1,0) perform Math.atan(segVectorY/segVectorX).</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - the curve index specifying the curve to analyse</dd><dd><code>distance</code> - the distance from start to end of curve (0.0...1.0)</dd>
<dt><span class="strong">Returns:</span></dt><dd>a unit vector at the specified point on the curve represented
as a line, parallel with the curve. If the distance or curve is
invalid, <code>mxCurve.INVALID_POSITION</code> is returned</dd></dl>
</li>
</ul>
<a name="getCurveSection(java.lang.String, double, double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurveSection</h4>
<pre>public&nbsp;<a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>[]&nbsp;getCurveSection(java.lang.String&nbsp;index,
double&nbsp;start,
double&nbsp;end)</pre>
<div class="block">Returns a section of the curve as an array of points</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - the curve index specifying the curve to analyse</dd><dd><code>start</code> - the start position of the curve segment (0.0...1.0)</dd><dd><code>end</code> - the end position of the curve segment (0.0...1.0)</dd>
<dt><span class="strong">Returns:</span></dt><dd>a sequence of point representing the curve section or null
if it cannot be calculated</dd></dl>
</li>
</ul>
<a name="intersectsRect(java.awt.Rectangle)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>intersectsRect</h4>
<pre>public&nbsp;boolean&nbsp;intersectsRect(java.awt.Rectangle&nbsp;rect)</pre>
<div class="block">Returns whether or not the rectangle passed in hits any part of this
curve.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>rect</code> - the rectangle to detect for a hit</dd>
<dt><span class="strong">Returns:</span></dt><dd>whether or not the rectangle hits this curve</dd></dl>
</li>
</ul>
<a name="intersectsRectPerimeter(java.lang.String, com.mxgraph.util.mxRectangle)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>intersectsRectPerimeter</h4>
<pre>public&nbsp;<a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>&nbsp;intersectsRectPerimeter(java.lang.String&nbsp;index,
<a href="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</a>&nbsp;rect)</pre>
<div class="block">Returns the point at which this curve intersects the boundary of
the given rectangle, if it does so. If it does not intersect,
null is returned. If it intersects multiple times, the first
intersection from the start end of the curve is returned.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - the curve index specifying the curve to analyse</dd><dd><code>rect</code> - the whose boundary is to be tested for intersection
with this curve</dd>
<dt><span class="strong">Returns:</span></dt><dd>the point at which this curve intersects the boundary of
the given rectangle, if it does so. If it does not intersect,
null is returned.</dd></dl>
</li>
</ul>
<a name="intersectsRectPerimeterDist(java.lang.String, com.mxgraph.util.mxRectangle)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>intersectsRectPerimeterDist</h4>
<pre>public&nbsp;double&nbsp;intersectsRectPerimeterDist(java.lang.String&nbsp;index,
<a href="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</a>&nbsp;rect)</pre>
<div class="block">Returns the distance from the start of the curve at which this
curve intersects the boundary of the given rectangle, if it does
so. If it does not intersect, -1 is returned.
If it intersects multiple times, the first intersection from
the start end of the curve is returned.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - the curve index specifying the curve to analyse</dd><dd><code>rect</code> - the whose boundary is to be tested for intersection
with this curve</dd>
<dt><span class="strong">Returns:</span></dt><dd>the distance along the curve from the start at which
the intersection occurs</dd></dl>
</li>
</ul>
<a name="collisionMove(java.lang.String, com.mxgraph.util.mxRectangle, double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>collisionMove</h4>
<pre>public&nbsp;<a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>&nbsp;collisionMove(java.lang.String&nbsp;index,
<a href="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</a>&nbsp;rect,
double&nbsp;buffer)</pre>
<div class="block">Returns a point to move the input rectangle to, in order to
attempt to place the rectangle away from the curve. NOTE: Curves
are scaled, the input rectangle should be also.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - the curve index specifying the curve to analyse</dd><dd><code>rect</code> - the rectangle that is to be moved</dd><dd><code>buffer</code> - the amount by which the rectangle is to be moved,
beyond the dimensions of the rect</dd>
<dt><span class="strong">Returns:</span></dt><dd>the point to move the top left of the input rect to
, otherwise null if no point can be determined</dd></dl>
</li>
</ul>
<a name="intersectRectPerimeterSeg(java.lang.String, com.mxgraph.util.mxRectangle)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>intersectRectPerimeterSeg</h4>
<pre>protected&nbsp;int&nbsp;intersectRectPerimeterSeg(java.lang.String&nbsp;index,
<a href="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</a>&nbsp;rect)</pre>
<div class="block">Utility method to determine within which segment the specified rectangle
intersects the specified curve</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - the curve index specifying the curve to analyse</dd><dd><code>rect</code> - the whose boundary is to be tested for intersection
with this curve</dd>
<dt><span class="strong">Returns:</span></dt><dd>the point at which this curve intersects the boundary of
the given rectangle, if it does so. If it does not intersect,
-1 is returned</dd></dl>
</li>
</ul>
<a name="intersectRectPerimeterSeg(java.lang.String, com.mxgraph.util.mxRectangle, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>intersectRectPerimeterSeg</h4>
<pre>protected&nbsp;int&nbsp;intersectRectPerimeterSeg(java.lang.String&nbsp;index,
<a href="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</a>&nbsp;rect,
int&nbsp;startSegment)</pre>
<div class="block">Utility method to determine within which segment the specified rectangle
intersects the specified curve. This method specifies which segment to
start searching at.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - the curve index specifying the curve to analyse</dd><dd><code>rect</code> - the whose boundary is to be tested for intersection
with this curve</dd><dd><code>startSegment</code> - the segment to start searching at. To start at the
beginning of the curve, use 1, not 0.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the point at which this curve intersects the boundary of
the given rectangle, if it does so. If it does not intersect,
-1 is returned</dd></dl>
</li>
</ul>
<a name="intersectRectPerimeterPoint(java.lang.String, com.mxgraph.util.mxRectangle, int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>intersectRectPerimeterPoint</h4>
<pre>protected&nbsp;<a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>&nbsp;intersectRectPerimeterPoint(java.lang.String&nbsp;curveIndex,
<a href="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</a>&nbsp;rect,
int&nbsp;indexSeg)</pre>
<div class="block">Returns the point at which this curve segment intersects the boundary
of the given rectangle, if it does so. If it does not intersect,
null is returned.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>curveIndex</code> - the curve index specifying the curve to analyse</dd><dd><code>rect</code> - the whose boundary is to be tested for intersection
with this curve</dd><dd><code>indexSeg</code> - the segments on this curve being checked</dd>
<dt><span class="strong">Returns:</span></dt><dd>the point at which this curve segment intersects the boundary
of the given rectangle, if it does so. If it does not intersect,
null is returned.</dd></dl>
</li>
</ul>
<a name="getRelativeFromAbsPoint(com.mxgraph.util.mxPoint, java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRelativeFromAbsPoint</h4>
<pre>public&nbsp;<a href="../../../com/mxgraph/util/mxRectangle.html" title="class in com.mxgraph.util">mxRectangle</a>&nbsp;getRelativeFromAbsPoint(<a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>&nbsp;absPoint,
java.lang.String&nbsp;index)</pre>
<div class="block">Calculates the position of an absolute in terms relative
to this curve.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>absPoint</code> - the point whose relative point is to calculated</dd><dd><code>index</code> - the index of the curve whom the relative position is to be
calculated from</dd>
<dt><span class="strong">Returns:</span></dt><dd>an mxRectangle where the x is the distance along the curve
(0 to 1), y is the orthogonal offset from the closest segment on the
curve and (width, height) is an additional Cartesian offset applied
after the other calculations</dd></dl>
</li>
</ul>
<a name="createCoreCurve()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createCoreCurve</h4>
<pre>protected&nbsp;void&nbsp;createCoreCurve()</pre>
<div class="block">Creates the core curve that is based on the guide points passed into
this class instance</div>
</li>
</ul>
<a name="isLabelReversed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLabelReversed</h4>
<pre>public&nbsp;boolean&nbsp;isLabelReversed()</pre>
<div class="block">Whether or not the label curve starts from the end target
and traces to the start of the branch</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>whether the label curve is reversed</dd></dl>
</li>
</ul>
<a name="createLabelCurve()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createLabelCurve</h4>
<pre>protected&nbsp;void&nbsp;createLabelCurve()</pre>
</li>
</ul>
<a name="getBaseLabelCurve()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBaseLabelCurve</h4>
<pre>protected&nbsp;<a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>[]&nbsp;getBaseLabelCurve()</pre>
<div class="block">Returns the curve the label curve is too be based on</div>
</li>
</ul>
<a name="populateIntervals(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>populateIntervals</h4>
<pre>protected&nbsp;void&nbsp;populateIntervals(java.lang.String&nbsp;index)</pre>
</li>
</ul>
<a name="updateCurve(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateCurve</h4>
<pre>public&nbsp;void&nbsp;updateCurve(java.util.List&lt;<a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>&gt;&nbsp;newPoints)</pre>
<div class="block">Updates the existing curve using the points passed in.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>newPoints</code> - the new guide points</dd></dl>
</li>
</ul>
<a name="getCurvePoints(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurvePoints</h4>
<pre>public&nbsp;<a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>[]&nbsp;getCurvePoints(java.lang.String&nbsp;index)</pre>
<div class="block">Obtains the points that make up the curve for the specified
curve index. If that curve, or the core curve that other curves
are based on have not yet been created, then they are lazily
created. If creation is impossible, null is returned</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>index</code> - the key specifying the curve</dd>
<dt><span class="strong">Returns:</span></dt><dd>the points making up that curve, or null</dd></dl>
</li>
</ul>
<a name="getIntervals(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIntervals</h4>
<pre>public&nbsp;double[]&nbsp;getIntervals(java.lang.String&nbsp;index)</pre>
</li>
</ul>
<a name="getCurveLength(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurveLength</h4>
<pre>public&nbsp;double&nbsp;getCurveLength(java.lang.String&nbsp;index)</pre>
</li>
</ul>
<a name="validateCurve()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>validateCurve</h4>
<pre>protected&nbsp;boolean&nbsp;validateCurve()</pre>
<div class="block">Method must be called before any attempt to access curve information</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>whether or not the curve may be used</dd></dl>
</li>
</ul>
<a name="updateBounds(double, double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateBounds</h4>
<pre>protected&nbsp;void&nbsp;updateBounds(double&nbsp;pointX,
double&nbsp;pointY)</pre>
<div class="block">Updates the total bounds of this curve, increasing any dimensions,
if necessary, to fit in the specified point</div>
</li>
</ul>
<a name="getGuidePoints()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getGuidePoints</h4>
<pre>public&nbsp;java.util.List&lt;<a href="../../../com/mxgraph/util/mxPoint.html" title="class in com.mxgraph.util">mxPoint</a>&gt;&nbsp;getGuidePoints()</pre>
<dl><dt><span class="strong">Returns:</span></dt><dd>the guidePoints</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/mxCurve.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><p><b>mxGraph 3.1.1.1</b></p></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../com/mxgraph/util/mxConstants.html" title="class in com.mxgraph.util"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../com/mxgraph/util/mxDomUtils.html" title="class in com.mxgraph.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?com/mxgraph/util/mxCurve.html" target="_top">Frames</a></li>
<li><a href="mxCurve.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><font size=1>Copyright (c) 2010 <a href="http://www.mxgraph.com/"
target="_blank">Gaudenz Alder, David Benson</a>. All rights reserved.</font></small></p>
</body>
</html>