geos_390_docs/classgeos_1_1linearref_1_1L...

952 lines
52 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::LinearLocation 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_1LinearLocation.html">LinearLocation</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classgeos_1_1linearref_1_1LinearLocation-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::linearref::LinearLocation Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Represents a location along a <a class="el" href="classgeos_1_1geom_1_1LineString.html">LineString</a> or <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html">MultiLineString</a>.
<a href="classgeos_1_1linearref_1_1LinearLocation.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="LinearLocation_8h_source.html">LinearLocation.h</a>&gt;</code></p>
<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:adbc2d0094055a020468c11fd14c504b1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#adbc2d0094055a020468c11fd14c504b1">LinearLocation</a> (size_t <a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#aa3529e2f1b4aa3d97a8862f99c1f13d0">segmentIndex</a>=0, double <a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#ac3c3cc8aa4a461abf7e125bf8af21012">segmentFraction</a>=0.0)</td></tr>
<tr class="memdesc:adbc2d0094055a020468c11fd14c504b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a location referring to the start of a linear geometry. <a href="#adbc2d0094055a020468c11fd14c504b1">More...</a><br /></td></tr>
<tr class="separator:adbc2d0094055a020468c11fd14c504b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0807cf3a9f01bfef558191a60e41e549"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#a0807cf3a9f01bfef558191a60e41e549">LinearLocation</a> (size_t <a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#a3b269d2f5e864d6b3c3a5f3258d001fc">componentIndex</a>, size_t <a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#aa3529e2f1b4aa3d97a8862f99c1f13d0">segmentIndex</a>, double <a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#ac3c3cc8aa4a461abf7e125bf8af21012">segmentFraction</a>)</td></tr>
<tr class="separator:a0807cf3a9f01bfef558191a60e41e549"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1de5d7e436b7249e57c2227c566eafa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#ac1de5d7e436b7249e57c2227c566eafa">clamp</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *linear)</td></tr>
<tr class="memdesc:ac1de5d7e436b7249e57c2227c566eafa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensures the indexes are valid for a given linear <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>. <a href="#ac1de5d7e436b7249e57c2227c566eafa">More...</a><br /></td></tr>
<tr class="separator:ac1de5d7e436b7249e57c2227c566eafa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe73a6c5d10b6bc8f2dbfa5bd25ddc82"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#abe73a6c5d10b6bc8f2dbfa5bd25ddc82">snapToVertex</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *linearGeom, double minDistance)</td></tr>
<tr class="memdesc:abe73a6c5d10b6bc8f2dbfa5bd25ddc82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Snaps the value of this location to the nearest vertex on the given linear <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>, if the vertex is closer than <code>minDistance</code>. <a href="#abe73a6c5d10b6bc8f2dbfa5bd25ddc82">More...</a><br /></td></tr>
<tr class="separator:abe73a6c5d10b6bc8f2dbfa5bd25ddc82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad85594096af5010d17cfa365b90c5fc6"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#ad85594096af5010d17cfa365b90c5fc6">getSegmentLength</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *linearGeom) const </td></tr>
<tr class="memdesc:ad85594096af5010d17cfa365b90c5fc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the length of the segment in the given Geometry containing this location. <a href="#ad85594096af5010d17cfa365b90c5fc6">More...</a><br /></td></tr>
<tr class="separator:ad85594096af5010d17cfa365b90c5fc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9480d64cb462dc9ae0aacb9489f2d71a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#a9480d64cb462dc9ae0aacb9489f2d71a">setToEnd</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *linear)</td></tr>
<tr class="memdesc:a9480d64cb462dc9ae0aacb9489f2d71a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the value of this location to refer the end of a linear geometry. <a href="#a9480d64cb462dc9ae0aacb9489f2d71a">More...</a><br /></td></tr>
<tr class="separator:a9480d64cb462dc9ae0aacb9489f2d71a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cf29e0da01a96313ae63759835cba57"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#a3cf29e0da01a96313ae63759835cba57">getComponentIndex</a> () const </td></tr>
<tr class="memdesc:a3cf29e0da01a96313ae63759835cba57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the component index for this location. <a href="#a3cf29e0da01a96313ae63759835cba57">More...</a><br /></td></tr>
<tr class="separator:a3cf29e0da01a96313ae63759835cba57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a801f6db68967f91b51aa0a426cc6b438"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#a801f6db68967f91b51aa0a426cc6b438">getSegmentIndex</a> () const </td></tr>
<tr class="memdesc:a801f6db68967f91b51aa0a426cc6b438"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the segment index for this location. <a href="#a801f6db68967f91b51aa0a426cc6b438">More...</a><br /></td></tr>
<tr class="separator:a801f6db68967f91b51aa0a426cc6b438"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2ecfec59697bdd38274173e5fb847e4"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#ab2ecfec59697bdd38274173e5fb847e4">getSegmentFraction</a> () const </td></tr>
<tr class="memdesc:ab2ecfec59697bdd38274173e5fb847e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the segment fraction for this location. <a href="#ab2ecfec59697bdd38274173e5fb847e4">More...</a><br /></td></tr>
<tr class="separator:ab2ecfec59697bdd38274173e5fb847e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8492cc339a966a44c2db8a0446110fb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#aa8492cc339a966a44c2db8a0446110fb">isVertex</a> () const </td></tr>
<tr class="memdesc:aa8492cc339a966a44c2db8a0446110fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether this location refers to a vertex. <a href="#aa8492cc339a966a44c2db8a0446110fb">More...</a><br /></td></tr>
<tr class="separator:aa8492cc339a966a44c2db8a0446110fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50df7142413e9e0f71c08a17e44fb53a"><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_1LinearLocation.html#a50df7142413e9e0f71c08a17e44fb53a">getCoordinate</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *linearGeom) const </td></tr>
<tr class="memdesc:a50df7142413e9e0f71c08a17e44fb53a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> along the given linear <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> which is referenced by this location. <a href="#a50df7142413e9e0f71c08a17e44fb53a">More...</a><br /></td></tr>
<tr class="separator:a50df7142413e9e0f71c08a17e44fb53a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3303b29a06005f9aec33f98f13ba06a"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#af3303b29a06005f9aec33f98f13ba06a">getSegment</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *linearGeom) const </td></tr>
<tr class="memdesc:af3303b29a06005f9aec33f98f13ba06a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a <a class="el" href="classgeos_1_1geom_1_1LineSegment.html">LineSegment</a> representing the segment of the given linear <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> which contains this location. <a href="#af3303b29a06005f9aec33f98f13ba06a">More...</a><br /></td></tr>
<tr class="separator:af3303b29a06005f9aec33f98f13ba06a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a7f6a53225266e50cd5e9f74aacd975"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#a0a7f6a53225266e50cd5e9f74aacd975">isValid</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *linearGeom) const </td></tr>
<tr class="memdesc:a0a7f6a53225266e50cd5e9f74aacd975"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether this location refers to a valid location on the given linear <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>. <a href="#a0a7f6a53225266e50cd5e9f74aacd975">More...</a><br /></td></tr>
<tr class="separator:a0a7f6a53225266e50cd5e9f74aacd975"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb879ed9f26e208b409a5911bbd181fc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#aeb879ed9f26e208b409a5911bbd181fc">compareTo</a> (const <a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html">LinearLocation</a> &amp;other) const </td></tr>
<tr class="memdesc:aeb879ed9f26e208b409a5911bbd181fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares this object with the specified object for order. <a href="#aeb879ed9f26e208b409a5911bbd181fc">More...</a><br /></td></tr>
<tr class="separator:aeb879ed9f26e208b409a5911bbd181fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79d7e63643fc4608a15bc5217c092dc0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#a79d7e63643fc4608a15bc5217c092dc0">compareLocationValues</a> (size_t componentIndex1, size_t segmentIndex1, double segmentFraction1) const </td></tr>
<tr class="memdesc:a79d7e63643fc4608a15bc5217c092dc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares this object with the specified index values for order. <a href="#a79d7e63643fc4608a15bc5217c092dc0">More...</a><br /></td></tr>
<tr class="separator:a79d7e63643fc4608a15bc5217c092dc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2afb586307fce0af72b060354f1c78c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#aa2afb586307fce0af72b060354f1c78c">isOnSameSegment</a> (const <a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html">LinearLocation</a> &amp;loc) const </td></tr>
<tr class="memdesc:aa2afb586307fce0af72b060354f1c78c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether two locations are on the same segment in the parent <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>. <a href="#aa2afb586307fce0af72b060354f1c78c">More...</a><br /></td></tr>
<tr class="separator:aa2afb586307fce0af72b060354f1c78c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92e789161df73b41357125289d9b767a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#a92e789161df73b41357125289d9b767a">isEndpoint</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;linearGeom) const </td></tr>
<tr class="memdesc:a92e789161df73b41357125289d9b767a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether this location is an endpoint of the linear component it refers to. <a href="#a92e789161df73b41357125289d9b767a">More...</a><br /></td></tr>
<tr class="separator:a92e789161df73b41357125289d9b767a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a017a305a4c32502bb87ab61cd569fbc7"><td class="memItemLeft" align="right" valign="top">static <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_1LinearLocation.html#a017a305a4c32502bb87ab61cd569fbc7">getEndLocation</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *linear)</td></tr>
<tr class="memdesc:a017a305a4c32502bb87ab61cd569fbc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a location which refers to the end of a linear <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>. <a href="#a017a305a4c32502bb87ab61cd569fbc7">More...</a><br /></td></tr>
<tr class="separator:a017a305a4c32502bb87ab61cd569fbc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9137b3ee11b144d01d928a2ad85ac14"><td class="memItemLeft" align="right" valign="top">static <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_1LinearLocation.html#ae9137b3ee11b144d01d928a2ad85ac14">pointAlongSegmentByFraction</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p0, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p1, double frac)</td></tr>
<tr class="memdesc:ae9137b3ee11b144d01d928a2ad85ac14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> of a point a given fraction along the line segment <code>(p0, p1)</code>. <a href="#ae9137b3ee11b144d01d928a2ad85ac14">More...</a><br /></td></tr>
<tr class="separator:ae9137b3ee11b144d01d928a2ad85ac14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae419e8b00c63c48273f184c80ec8bbdc"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#ae419e8b00c63c48273f184c80ec8bbdc">compareLocationValues</a> (size_t componentIndex0, size_t segmentIndex0, double segmentFraction0, size_t componentIndex1, size_t segmentIndex1, double segmentFraction1)</td></tr>
<tr class="memdesc:ae419e8b00c63c48273f184c80ec8bbdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two sets of location values for order. <a href="#ae419e8b00c63c48273f184c80ec8bbdc">More...</a><br /></td></tr>
<tr class="separator:ae419e8b00c63c48273f184c80ec8bbdc"><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:ad34e67ca38de697d11dc3e255224b920"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#ad34e67ca38de697d11dc3e255224b920">normalize</a> ()</td></tr>
<tr class="memdesc:ad34e67ca38de697d11dc3e255224b920"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensures the individual values are locally valid. <a href="#ad34e67ca38de697d11dc3e255224b920">More...</a><br /></td></tr>
<tr class="separator:ad34e67ca38de697d11dc3e255224b920"><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:a3b269d2f5e864d6b3c3a5f3258d001fc"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#a3b269d2f5e864d6b3c3a5f3258d001fc">componentIndex</a></td></tr>
<tr class="separator:a3b269d2f5e864d6b3c3a5f3258d001fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3529e2f1b4aa3d97a8862f99c1f13d0"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#aa3529e2f1b4aa3d97a8862f99c1f13d0">segmentIndex</a></td></tr>
<tr class="separator:aa3529e2f1b4aa3d97a8862f99c1f13d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3c3cc8aa4a461abf7e125bf8af21012"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#ac3c3cc8aa4a461abf7e125bf8af21012">segmentFraction</a></td></tr>
<tr class="separator:ac3c3cc8aa4a461abf7e125bf8af21012"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a52969730714ff3945d04707c6d045179"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#a52969730714ff3945d04707c6d045179">operator&lt;&lt;</a> (std::ostream &amp;out, const <a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html">LinearLocation</a> &amp;obj)</td></tr>
<tr class="separator:a52969730714ff3945d04707c6d045179"><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>Represents a location along a <a class="el" href="classgeos_1_1geom_1_1LineString.html">LineString</a> or <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html">MultiLineString</a>. </p>
<p>The referenced geometry is not maintained within this location, but must be provided for operations which require it. Various methods are provided to manipulate the location value and query the geometry it references. </p>
<p>Definition at line <a class="el" href="LinearLocation_8h_source.html#l00044">44</a> of file <a class="el" href="LinearLocation_8h_source.html">LinearLocation.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="adbc2d0094055a020468c11fd14c504b1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">geos::linearref::LinearLocation::LinearLocation </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>segmentIndex</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>segmentFraction</em> = <code>0.0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a location referring to the start of a linear geometry. </p>
</div>
</div>
<a class="anchor" id="a0807cf3a9f01bfef558191a60e41e549"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">geos::linearref::LinearLocation::LinearLocation </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>componentIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>segmentIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>segmentFraction</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ac1de5d7e436b7249e57c2227c566eafa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::linearref::LinearLocation::clamp </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>linear</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Ensures the indexes are valid for a given linear <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">linear</td><td>a linear geometry </td></tr>
</table>
</dd>
</dl>
<p>Referenced by <a class="el" href="LocationIndexedLine_8h_source.html#l00268">geos::linearref::LocationIndexedLine::clampIndex()</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1linearref_1_1LinearLocation_ac1de5d7e436b7249e57c2227c566eafa_icgraph.svg" width="455" height="55"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</p>
</div>
</div>
<a class="anchor" id="a79d7e63643fc4608a15bc5217c092dc0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int geos::linearref::LinearLocation::compareLocationValues </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>componentIndex1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>segmentIndex1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>segmentFraction1</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Compares this object with the specified index values for order. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">componentIndex1</td><td>a component index </td></tr>
<tr><td class="paramname">segmentIndex1</td><td>a segment index </td></tr>
<tr><td class="paramname">segmentFraction1</td><td>a segment fraction </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a negative integer, zero, or a positive integer as this <a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html" title="Represents a location along a LineString or MultiLineString. ">LinearLocation</a> is less than, equal to, or greater than the specified locationValues </dd></dl>
</div>
</div>
<a class="anchor" id="ae419e8b00c63c48273f184c80ec8bbdc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int geos::linearref::LinearLocation::compareLocationValues </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>componentIndex0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>segmentIndex0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>segmentFraction0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>componentIndex1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>segmentIndex1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>segmentFraction1</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Compares two sets of location values for order. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">componentIndex0</td><td>a component index </td></tr>
<tr><td class="paramname">segmentIndex0</td><td>a segment index </td></tr>
<tr><td class="paramname">segmentFraction0</td><td>a segment fraction </td></tr>
<tr><td class="paramname">componentIndex1</td><td>another component index </td></tr>
<tr><td class="paramname">segmentIndex1</td><td>another segment index </td></tr>
<tr><td class="paramname">segmentFraction1</td><td>another segment fraction </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a negative integer, zero, or a positive integer as the first set of location values is less than, equal to, or greater than the second set of locationValues </dd></dl>
</div>
</div>
<a class="anchor" id="aeb879ed9f26e208b409a5911bbd181fc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int geos::linearref::LinearLocation::compareTo </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html">LinearLocation</a> &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Compares this object with the specified object for order. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>the <a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html" title="Represents a location along a LineString or MultiLineString. ">LinearLocation</a> with which this Coordinate is being compared </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a negative integer, zero, or a positive integer as this <a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html" title="Represents a location along a LineString or MultiLineString. ">LinearLocation</a> is less than, equal to, or greater than the specified <a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html" title="Represents a location along a LineString or MultiLineString. ">LinearLocation</a> </dd></dl>
</div>
</div>
<a class="anchor" id="a3cf29e0da01a96313ae63759835cba57"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t geos::linearref::LinearLocation::getComponentIndex </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the component index for this location. </p>
<dl class="section return"><dt>Returns</dt><dd>the component index </dd></dl>
</div>
</div>
<a class="anchor" id="a50df7142413e9e0f71c08a17e44fb53a"></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::LinearLocation::getCoordinate </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> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> along the given linear <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> which is referenced by this location. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">linearGeom</td><td>the linear geometry referenced by this location </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the Coordinate at the location </dd></dl>
<p>Referenced by <a class="el" href="LocationIndexedLine_8h_source.html#l00080">geos::linearref::LocationIndexedLine::extractPoint()</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1linearref_1_1LinearLocation_a50df7142413e9e0f71c08a17e44fb53a_icgraph.svg" width="458" height="55"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</p>
</div>
</div>
<a class="anchor" id="a017a305a4c32502bb87ab61cd569fbc7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html">LinearLocation</a> geos::linearref::LinearLocation::getEndLocation </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>linear</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets a location which refers to the end of a linear <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">linear</td><td>the linear geometry </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a new <code><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html" title="Represents a location along a LineString or MultiLineString. ">LinearLocation</a></code> </dd></dl>
<p>Referenced by <a class="el" href="LocationIndexedLine_8h_source.html#l00241">geos::linearref::LocationIndexedLine::getEndIndex()</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1linearref_1_1LinearLocation_a017a305a4c32502bb87ab61cd569fbc7_icgraph.svg" width="463" height="55"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</p>
</div>
</div>
<a class="anchor" id="af3303b29a06005f9aec33f98f13ba06a"></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_1LineSegment.html">geom::LineSegment</a>&gt; geos::linearref::LinearLocation::getSegment </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> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets a <a class="el" href="classgeos_1_1geom_1_1LineSegment.html">LineSegment</a> representing the segment of the given linear <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> which contains this location. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">linearGeom</td><td>a linear geometry </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the LineSegment containing the location </dd></dl>
<p>Referenced by <a class="el" href="LocationIndexedLine_8h_source.html#l00105">geos::linearref::LocationIndexedLine::extractPoint()</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1linearref_1_1LinearLocation_af3303b29a06005f9aec33f98f13ba06a_icgraph.svg" width="458" height="55"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</p>
</div>
</div>
<a class="anchor" id="ab2ecfec59697bdd38274173e5fb847e4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double geos::linearref::LinearLocation::getSegmentFraction </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the segment fraction for this location. </p>
<dl class="section return"><dt>Returns</dt><dd>the segment fraction </dd></dl>
<p>Referenced by <a class="el" href="LocationIndexedLine_8h_source.html#l00105">geos::linearref::LocationIndexedLine::extractPoint()</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1linearref_1_1LinearLocation_ab2ecfec59697bdd38274173e5fb847e4_icgraph.svg" width="458" height="55"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</p>
</div>
</div>
<a class="anchor" id="a801f6db68967f91b51aa0a426cc6b438"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t geos::linearref::LinearLocation::getSegmentIndex </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the segment index for this location. </p>
<dl class="section return"><dt>Returns</dt><dd>the segment index </dd></dl>
</div>
</div>
<a class="anchor" id="ad85594096af5010d17cfa365b90c5fc6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double geos::linearref::LinearLocation::getSegmentLength </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> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the length of the segment in the given Geometry containing this location. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">linearGeom</td><td>a linear geometry </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the length of the segment </dd></dl>
</div>
</div>
<a class="anchor" id="a92e789161df73b41357125289d9b767a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool geos::linearref::LinearLocation::isEndpoint </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;&#160;</td>
<td class="paramname"><em>linearGeom</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Tests whether this location is an endpoint of the linear component it refers to. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">linearGeom</td><td>the linear geometry referenced by this location </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the location is a component endpoint </dd></dl>
</div>
</div>
<a class="anchor" id="aa2afb586307fce0af72b060354f1c78c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool geos::linearref::LinearLocation::isOnSameSegment </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html">LinearLocation</a> &amp;&#160;</td>
<td class="paramname"><em>loc</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Tests whether two locations are on the same segment in the parent <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">loc</td><td>a location on the same geometry </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the locations are on the same segment of the parent geometry </dd></dl>
</div>
</div>
<a class="anchor" id="a0a7f6a53225266e50cd5e9f74aacd975"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool geos::linearref::LinearLocation::isValid </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> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Tests whether this location refers to a valid location on the given linear <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">linearGeom</td><td>a linear geometry </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if this location is valid </dd></dl>
<p>Referenced by <a class="el" href="LocationIndexedLine_8h_source.html#l00254">geos::linearref::LocationIndexedLine::isValidIndex()</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1linearref_1_1LinearLocation_a0a7f6a53225266e50cd5e9f74aacd975_icgraph.svg" width="459" height="55"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</p>
</div>
</div>
<a class="anchor" id="aa8492cc339a966a44c2db8a0446110fb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool geos::linearref::LinearLocation::isVertex </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Tests whether this location refers to a vertex. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the location is a vertex </dd></dl>
</div>
</div>
<a class="anchor" id="ad34e67ca38de697d11dc3e255224b920"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::linearref::LinearLocation::normalize </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></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>Ensures the individual values are locally valid. </p>
<p>Does <b>not</b> ensure that the indexes are valid for a particular linear geometry.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html#ac1de5d7e436b7249e57c2227c566eafa" title="Ensures the indexes are valid for a given linear Geometry. ">clamp</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ae9137b3ee11b144d01d928a2ad85ac14"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> geos::linearref::LinearLocation::pointAlongSegmentByFraction </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>p0</em>, </td>
</tr>
<tr>
<td class="paramkey"></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>p1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>frac</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> of a point a given fraction along the line segment <code>(p0, p1)</code>. </p>
<p>If the fraction is greater than 1.0 the last point of the segment is returned. If the fraction is less than or equal to 0.0 the first point of the segment is returned. The Z ordinate is interpolated from the Z-ordinates of the given points, if they are specified.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">p0</td><td>the first point of the line segment </td></tr>
<tr><td class="paramname">p1</td><td>the last point of the line segment </td></tr>
<tr><td class="paramname">frac</td><td>the length to the desired point </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the Coordinate of the desired point </dd></dl>
</div>
</div>
<a class="anchor" id="a9480d64cb462dc9ae0aacb9489f2d71a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::linearref::LinearLocation::setToEnd </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>linear</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the value of this location to refer the end of a linear geometry. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">linear</td><td>the linear geometry to set </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="abe73a6c5d10b6bc8f2dbfa5bd25ddc82"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::linearref::LinearLocation::snapToVertex </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>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>minDistance</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Snaps the value of this location to the nearest vertex on the given linear <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>, if the vertex is closer than <code>minDistance</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">linearGeom</td><td>a linear geometry </td></tr>
<tr><td class="paramname">minDistance</td><td>the minimum allowable distance to a vertex </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a class="anchor" id="a52969730714ff3945d04707c6d045179"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::ostream&amp; operator&lt;&lt; </td>
<td>(</td>
<td class="paramtype">std::ostream &amp;&#160;</td>
<td class="paramname"><em>out</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1linearref_1_1LinearLocation.html">LinearLocation</a> &amp;&#160;</td>
<td class="paramname"><em>obj</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a3b269d2f5e864d6b3c3a5f3258d001fc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t geos::linearref::LinearLocation::componentIndex</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="LinearLocation_8h_source.html#l00046">46</a> of file <a class="el" href="LinearLocation_8h_source.html">LinearLocation.h</a>.</p>
</div>
</div>
<a class="anchor" id="ac3c3cc8aa4a461abf7e125bf8af21012"></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::LinearLocation::segmentFraction</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="LinearLocation_8h_source.html#l00048">48</a> of file <a class="el" href="LinearLocation_8h_source.html">LinearLocation.h</a>.</p>
</div>
</div>
<a class="anchor" id="aa3529e2f1b4aa3d97a8862f99c1f13d0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t geos::linearref::LinearLocation::segmentIndex</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="LinearLocation_8h_source.html#l00047">47</a> of file <a class="el" href="LinearLocation_8h_source.html">LinearLocation.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="LinearLocation_8h_source.html">LinearLocation.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>