geos_390_docs/classgeos_1_1linearref_1_1L...

574 lines
33 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GEOS: geos::linearref::LengthIndexedLine Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GEOS
&#160;<span id="projectnumber">3.9.1dev</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacegeos.html">geos</a></li><li class="navelem"><a class="el" href="namespacegeos_1_1linearref.html">linearref</a></li><li class="navelem"><a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html">LengthIndexedLine</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classgeos_1_1linearref_1_1LengthIndexedLine-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::linearref::LengthIndexedLine Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Supports linear referencing along a linear <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">geom::Geometry</a> using the length along the line as the index.
<a href="classgeos_1_1linearref_1_1LengthIndexedLine.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="LengthIndexedLine_8h_source.html">LengthIndexedLine.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for geos::linearref::LengthIndexedLine:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classgeos_1_1linearref_1_1LengthIndexedLine__coll__graph.svg" width="100%" height="431"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a7f1fd2d3467a3bae6e28e2da893506f9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#a7f1fd2d3467a3bae6e28e2da893506f9">LengthIndexedLine</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *<a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#ad40730582f60cbff9eafc2f9daf423cf">linearGeom</a>)</td></tr>
<tr class="memdesc:a7f1fd2d3467a3bae6e28e2da893506f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an object which allows a linear <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> to be linearly referenced using length as an index. <a href="#a7f1fd2d3467a3bae6e28e2da893506f9">More...</a><br /></td></tr>
<tr class="separator:a7f1fd2d3467a3bae6e28e2da893506f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b80c5460decdea8001a10f6a87539e7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#a6b80c5460decdea8001a10f6a87539e7">extractPoint</a> (double index) const </td></tr>
<tr class="memdesc:a6b80c5460decdea8001a10f6a87539e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> for the point on the line at the given index. <a href="#a6b80c5460decdea8001a10f6a87539e7">More...</a><br /></td></tr>
<tr class="separator:a6b80c5460decdea8001a10f6a87539e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4da9d042a9af211a365c7528a0f4f911"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#a4da9d042a9af211a365c7528a0f4f911">extractPoint</a> (double index, double offsetDistance) const </td></tr>
<tr class="memdesc:a4da9d042a9af211a365c7528a0f4f911"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> for the point on the line at the given index, offset by the given distance. <a href="#a4da9d042a9af211a365c7528a0f4f911">More...</a><br /></td></tr>
<tr class="separator:a4da9d042a9af211a365c7528a0f4f911"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab34242da5ff609906ee79b7d1fd55b82"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#ab34242da5ff609906ee79b7d1fd55b82">extractLine</a> (double startIndex, double endIndex) const </td></tr>
<tr class="memdesc:ab34242da5ff609906ee79b7d1fd55b82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the <a class="el" href="classgeos_1_1geom_1_1LineString.html">LineString</a> for the interval on the line between the given indices. <a href="#ab34242da5ff609906ee79b7d1fd55b82">More...</a><br /></td></tr>
<tr class="separator:ab34242da5ff609906ee79b7d1fd55b82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40f40d83b12ccdc464d04ab869a97c81"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#a40f40d83b12ccdc464d04ab869a97c81">indexOf</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;pt) const </td></tr>
<tr class="memdesc:a40f40d83b12ccdc464d04ab869a97c81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the minimum index for a point on the line. <a href="#a40f40d83b12ccdc464d04ab869a97c81">More...</a><br /></td></tr>
<tr class="separator:a40f40d83b12ccdc464d04ab869a97c81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5aa1c0436999e2bd799f5a2905079c73"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#a5aa1c0436999e2bd799f5a2905079c73">indexOfAfter</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;pt, double minIndex) const </td></tr>
<tr class="memdesc:a5aa1c0436999e2bd799f5a2905079c73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds the index for a point on the line which is greater than the given index. <a href="#a5aa1c0436999e2bd799f5a2905079c73">More...</a><br /></td></tr>
<tr class="separator:a5aa1c0436999e2bd799f5a2905079c73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6f4d0d45a6e657f7baa0fe361555aaf"><td class="memItemLeft" align="right" valign="top">double *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#ab6f4d0d45a6e657f7baa0fe361555aaf">indicesOf</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *subLine) const </td></tr>
<tr class="memdesc:ab6f4d0d45a6e657f7baa0fe361555aaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the indices for a subline of the line. <a href="#ab6f4d0d45a6e657f7baa0fe361555aaf">More...</a><br /></td></tr>
<tr class="separator:ab6f4d0d45a6e657f7baa0fe361555aaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3da3ec0f862333ba52847414f1ed239e"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#a3da3ec0f862333ba52847414f1ed239e">project</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;pt) const </td></tr>
<tr class="memdesc:a3da3ec0f862333ba52847414f1ed239e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the index for the closest point on the line to the given point. <a href="#a3da3ec0f862333ba52847414f1ed239e">More...</a><br /></td></tr>
<tr class="separator:a3da3ec0f862333ba52847414f1ed239e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98ea7745c049335ca69ab733dc252a5e"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#a98ea7745c049335ca69ab733dc252a5e">getStartIndex</a> () const </td></tr>
<tr class="memdesc:a98ea7745c049335ca69ab733dc252a5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the index of the start of the line. <a href="#a98ea7745c049335ca69ab733dc252a5e">More...</a><br /></td></tr>
<tr class="separator:a98ea7745c049335ca69ab733dc252a5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf238c5e4be1f3f7d68a18e20af8310c"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#aaf238c5e4be1f3f7d68a18e20af8310c">getEndIndex</a> () const </td></tr>
<tr class="memdesc:aaf238c5e4be1f3f7d68a18e20af8310c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the index of the end of the line. <a href="#aaf238c5e4be1f3f7d68a18e20af8310c">More...</a><br /></td></tr>
<tr class="separator:aaf238c5e4be1f3f7d68a18e20af8310c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f315b0ccf0a0a07b9188cb0e4584c16"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#a0f315b0ccf0a0a07b9188cb0e4584c16">isValidIndex</a> (double index) const </td></tr>
<tr class="memdesc:a0f315b0ccf0a0a07b9188cb0e4584c16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether an index is in the valid index range for the line. <a href="#a0f315b0ccf0a0a07b9188cb0e4584c16">More...</a><br /></td></tr>
<tr class="separator:a0f315b0ccf0a0a07b9188cb0e4584c16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada441865fae4714a7d1ba3d9820b04c9"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#ada441865fae4714a7d1ba3d9820b04c9">clampIndex</a> (double index) const </td></tr>
<tr class="memdesc:ada441865fae4714a7d1ba3d9820b04c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes a valid index for this line by clamping the given index to the valid range of index values. <a href="#ada441865fae4714a7d1ba3d9820b04c9">More...</a><br /></td></tr>
<tr class="separator:ada441865fae4714a7d1ba3d9820b04c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a6378bfc5cdecf1028adece41c2b88126"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html">LinearLocation</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#a6378bfc5cdecf1028adece41c2b88126">locationOf</a> (double index) const </td></tr>
<tr class="separator:a6378bfc5cdecf1028adece41c2b88126"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abeddb8939a98e8b333e8d9b949e69be0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html">LinearLocation</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#abeddb8939a98e8b333e8d9b949e69be0">locationOf</a> (double index, bool resolveLower) const </td></tr>
<tr class="separator:abeddb8939a98e8b333e8d9b949e69be0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55b0e316ab4d975f6e41bd1ec789a31a"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#a55b0e316ab4d975f6e41bd1ec789a31a">positiveIndex</a> (double index) const </td></tr>
<tr class="separator:a55b0e316ab4d975f6e41bd1ec789a31a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:ad40730582f60cbff9eafc2f9daf423cf"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#ad40730582f60cbff9eafc2f9daf423cf">linearGeom</a></td></tr>
<tr class="separator:ad40730582f60cbff9eafc2f9daf423cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Supports linear referencing along a linear <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">geom::Geometry</a> using the length along the line as the index. </p>
<p>Negative length values are taken as measured in the reverse direction from the end of the geometry. Out-of-range index values are handled by clamping them to the valid range of values. Non-simple lines (i.e. which loop back to cross or touch themselves) are supported. </p>
<p>Definition at line <a class="el" href="LengthIndexedLine_8h_source.html#l00044">44</a> of file <a class="el" href="LengthIndexedLine_8h_source.html">LengthIndexedLine.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a7f1fd2d3467a3bae6e28e2da893506f9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">geos::linearref::LengthIndexedLine::LengthIndexedLine </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td>
<td class="paramname"><em>linearGeom</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs an object which allows a linear <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> to be linearly referenced using length as an index. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">linearGeom</td><td>the linear geometry to reference along </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ada441865fae4714a7d1ba3d9820b04c9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double geos::linearref::LengthIndexedLine::clampIndex </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes a valid index for this line by clamping the given index to the valid range of index values. </p>
<dl class="section return"><dt>Returns</dt><dd>a valid index value </dd></dl>
</div>
</div>
<a class="anchor" id="ab34242da5ff609906ee79b7d1fd55b82"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>&gt; geos::linearref::LengthIndexedLine::extractLine </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>startIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>endIndex</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the <a class="el" href="classgeos_1_1geom_1_1LineString.html">LineString</a> for the interval on the line between the given indices. </p>
<p>If the endIndex lies before the startIndex, the computed geometry is reversed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">startIndex</td><td>the index of the start of the interval </td></tr>
<tr><td class="paramname">endIndex</td><td>the index of the end of the interval </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the linear interval between the indices </dd></dl>
</div>
</div>
<a class="anchor" id="a6b80c5460decdea8001a10f6a87539e7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> geos::linearref::LengthIndexedLine::extractPoint </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> for the point on the line at the given index. </p>
<p>If the index is out of range the first or last point on the line will be returned. The Z-ordinate of the computed point will be interpolated from the Z-ordinates of the line segment containing it, if they exist.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">index</td><td>the index of the desired point </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the Coordinate at the given index </dd></dl>
</div>
</div>
<a class="anchor" id="a4da9d042a9af211a365c7528a0f4f911"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> geos::linearref::LengthIndexedLine::extractPoint </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>offsetDistance</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> for the point on the line at the given index, offset by the given distance. </p>
<p>If the index is out of range the first or last point on the line will be returned. The computed point is offset to the left of the line if the offset distance is positive, to the right if negative.</p>
<p>The Z-ordinate of the computed point will be interpolated from the Z-ordinates of the line segment containing it, if they exist.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">index</td><td>the index of the desired point </td></tr>
<tr><td class="paramname">offsetDistance</td><td>the distance the point is offset from the segment (positive is to the left, negative is to the right) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the Coordinate at the given index </dd></dl>
</div>
</div>
<a class="anchor" id="aaf238c5e4be1f3f7d68a18e20af8310c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double geos::linearref::LengthIndexedLine::getEndIndex </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the index of the end of the line. </p>
<dl class="section return"><dt>Returns</dt><dd>the end index </dd></dl>
</div>
</div>
<a class="anchor" id="a98ea7745c049335ca69ab733dc252a5e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double geos::linearref::LengthIndexedLine::getStartIndex </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the index of the start of the line. </p>
<dl class="section return"><dt>Returns</dt><dd>the start index </dd></dl>
</div>
</div>
<a class="anchor" id="a40f40d83b12ccdc464d04ab869a97c81"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double geos::linearref::LengthIndexedLine::indexOf </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>pt</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the minimum index for a point on the line. </p>
<p>If the line is not simple (i.e. loops back on itself) a single point may have more than one possible index. In this case, the smallest index is returned.</p>
<p>The supplied point does not <em>necessarily</em> have to lie precisely on the line, but if it is far from the line the accuracy and performance of this function is not guaranteed. Use <a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#a3da3ec0f862333ba52847414f1ed239e">project</a> to compute a guaranteed result for points which may be far from the line.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pt</td><td>a point on the line </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the minimum index of the point</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#a3da3ec0f862333ba52847414f1ed239e" title="Computes the index for the closest point on the line to the given point. ">project</a> </dd></dl>
</div>
</div>
<a class="anchor" id="a5aa1c0436999e2bd799f5a2905079c73"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double geos::linearref::LengthIndexedLine::indexOfAfter </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>pt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>minIndex</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Finds the index for a point on the line which is greater than the given index. </p>
<p>If no such index exists, returns <code>minIndex</code>. This method can be used to determine all indexes for a point which occurs more than once on a non-simple line. It can also be used to disambiguate cases where the given point lies slightly off the line and is equidistant from two different points on the line.</p>
<p>The supplied point does not `*necessarily* have to lie precisely on the line, but if it is far from the line the accuracy and performance of this function is not guaranteed. Use <a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#a3da3ec0f862333ba52847414f1ed239e">project</a> to compute a guaranteed result for points which may be far from the line.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pt</td><td>a point on the line </td></tr>
<tr><td class="paramname">minIndex</td><td>the value the returned index must be greater than </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the index of the point greater than the given minimum index</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classgeos_1_1linearref_1_1LengthIndexedLine.html#a3da3ec0f862333ba52847414f1ed239e" title="Computes the index for the closest point on the line to the given point. ">project</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ab6f4d0d45a6e657f7baa0fe361555aaf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double* geos::linearref::LengthIndexedLine::indicesOf </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td>
<td class="paramname"><em>subLine</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the indices for a subline of the line. </p>
<p>(The subline must <b>conform</b> to the line; that is, all vertices in the subline (except possibly the first and last) must be vertices of the line and occcur in the same order).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">subLine</td><td>a subLine of the line </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pair of indices for the start and end of the subline. </dd></dl>
</div>
</div>
<a class="anchor" id="a0f315b0ccf0a0a07b9188cb0e4584c16"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool geos::linearref::LengthIndexedLine::isValidIndex </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Tests whether an index is in the valid index range for the line. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">index</td><td>the index to test </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the index is in the valid range </dd></dl>
</div>
</div>
<a class="anchor" id="a6378bfc5cdecf1028adece41c2b88126"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html">LinearLocation</a> geos::linearref::LengthIndexedLine::locationOf </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="abeddb8939a98e8b333e8d9b949e69be0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html">LinearLocation</a> geos::linearref::LengthIndexedLine::locationOf </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>index</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>resolveLower</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a55b0e316ab4d975f6e41bd1ec789a31a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double geos::linearref::LengthIndexedLine::positiveIndex </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a3da3ec0f862333ba52847414f1ed239e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double geos::linearref::LengthIndexedLine::project </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>pt</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the index for the closest point on the line to the given point. </p>
<p>If more than one point has the closest distance the first one along the line is returned. (The point does not necessarily have to lie precisely on the line.)</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pt</td><td>a point on the line </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the index of the point </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="ad40730582f60cbff9eafc2f9daf423cf"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>* geos::linearref::LengthIndexedLine::linearGeom</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="LengthIndexedLine_8h_source.html#l00046">46</a> of file <a class="el" href="LengthIndexedLine_8h_source.html">LengthIndexedLine.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="LengthIndexedLine_8h_source.html">LengthIndexedLine.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>