geos_390_docs/classgeos_1_1operation_1_1o...

553 lines
30 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::operation::overlay::snap::LineStringSnapper 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_1operation.html">operation</a></li><li class="navelem"><a class="el" href="namespacegeos_1_1operation_1_1overlay.html">overlay</a></li><li class="navelem"><a class="el" href="namespacegeos_1_1operation_1_1overlay_1_1snap.html">snap</a></li><li class="navelem"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html">LineStringSnapper</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_1operation_1_1overlay_1_1snap_1_1LineStringSnapper-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::operation::overlay::snap::LineStringSnapper Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Snaps the vertices and segments of a LineString to a set of target snap vertices.
<a href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="LineStringSnapper_8h_source.html">LineStringSnapper.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:ac1ed05effa3c85f646a7be278f460fdc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html#ac1ed05effa3c85f646a7be278f460fdc">LineStringSnapper</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html#a59345d3a409b5d2ebe01fcfcdcca92cb">geom::Coordinate::Vect</a> &amp;nSrcPts, double nSnapTol)</td></tr>
<tr class="separator:ac1ed05effa3c85f646a7be278f460fdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1829a66d38ef7c673a31684d7427f731"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Coordinate.html#a59345d3a409b5d2ebe01fcfcdcca92cb">geom::Coordinate::Vect</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html#a1829a66d38ef7c673a31684d7427f731">snapTo</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html#a59a363dbe699943a46ea014355e63cac">geom::Coordinate::ConstVect</a> &amp;snapPts)</td></tr>
<tr class="separator:a1829a66d38ef7c673a31684d7427f731"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb13fd1f9b87bd5d8f42c7acacc4cc42"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html#adb13fd1f9b87bd5d8f42c7acacc4cc42">setAllowSnappingToSourceVertices</a> (bool allow)</td></tr>
<tr class="separator:adb13fd1f9b87bd5d8f42c7acacc4cc42"><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:a6c35dd1bebdcef0e2f88c9f16fe1ae1d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html#a6c35dd1bebdcef0e2f88c9f16fe1ae1d">snapVertices</a> (<a class="el" href="classgeos_1_1geom_1_1CoordinateList.html">geom::CoordinateList</a> &amp;srcCoords, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html#a59a363dbe699943a46ea014355e63cac">geom::Coordinate::ConstVect</a> &amp;snapPts)</td></tr>
<tr class="separator:a6c35dd1bebdcef0e2f88c9f16fe1ae1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cad55b7fd00f37feb182970b7cf2f17"><td class="memItemLeft" align="right" valign="top">geom::Coordinate::ConstVect::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html#a0cad55b7fd00f37feb182970b7cf2f17">findSnapForVertex</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;pt, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html#a59a363dbe699943a46ea014355e63cac">geom::Coordinate::ConstVect</a> &amp;snapPts)</td></tr>
<tr class="separator:a0cad55b7fd00f37feb182970b7cf2f17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d00065de70108f90dedb6d5a0ce5d61"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html#a7d00065de70108f90dedb6d5a0ce5d61">snapSegments</a> (<a class="el" href="classgeos_1_1geom_1_1CoordinateList.html">geom::CoordinateList</a> &amp;srcCoords, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html#a59a363dbe699943a46ea014355e63cac">geom::Coordinate::ConstVect</a> &amp;snapPts)</td></tr>
<tr class="memdesc:a7d00065de70108f90dedb6d5a0ce5d61"><td class="mdescLeft">&#160;</td><td class="mdescRight">Snap segments of the source to nearby snap vertices. <a href="#a7d00065de70108f90dedb6d5a0ce5d61">More...</a><br /></td></tr>
<tr class="separator:a7d00065de70108f90dedb6d5a0ce5d61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79c7d7d829f111238fb388996318536d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1CoordinateList.html#a1c5d129b14a3475478e8f9bd150153f8">geom::CoordinateList::iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html#a79c7d7d829f111238fb388996318536d">findSegmentToSnap</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;snapPt, <a class="el" href="classgeos_1_1geom_1_1CoordinateList.html#a1c5d129b14a3475478e8f9bd150153f8">geom::CoordinateList::iterator</a> from, <a class="el" href="classgeos_1_1geom_1_1CoordinateList.html#a1c5d129b14a3475478e8f9bd150153f8">geom::CoordinateList::iterator</a> too_far)</td></tr>
<tr class="memdesc:a79c7d7d829f111238fb388996318536d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds a src segment which snaps to (is close to) the given snap point. <a href="#a79c7d7d829f111238fb388996318536d">More...</a><br /></td></tr>
<tr class="separator:a79c7d7d829f111238fb388996318536d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aceb3d2018a53945d063dceb3ee688e4c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1CoordinateList.html#a1c5d129b14a3475478e8f9bd150153f8">geom::CoordinateList::iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html#aceb3d2018a53945d063dceb3ee688e4c">findVertexToSnap</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;snapPt, <a class="el" href="classgeos_1_1geom_1_1CoordinateList.html#a1c5d129b14a3475478e8f9bd150153f8">geom::CoordinateList::iterator</a> from, <a class="el" href="classgeos_1_1geom_1_1CoordinateList.html#a1c5d129b14a3475478e8f9bd150153f8">geom::CoordinateList::iterator</a> too_far)</td></tr>
<tr class="separator:aceb3d2018a53945d063dceb3ee688e4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f3676ab980bbd5ae639b3ba568af45f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html#a9f3676ab980bbd5ae639b3ba568af45f">LineStringSnapper</a> (const <a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html">LineStringSnapper</a> &amp;other)=delete</td></tr>
<tr class="separator:a9f3676ab980bbd5ae639b3ba568af45f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5badab1b1b47eb7deaadb21ffb7b2438"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html">LineStringSnapper</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html#a5badab1b1b47eb7deaadb21ffb7b2438">operator=</a> (const <a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html">LineStringSnapper</a> &amp;rhs)=delete</td></tr>
<tr class="separator:a5badab1b1b47eb7deaadb21ffb7b2438"><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:a2123bdd30ced8c296ab17521c491943a"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html#a59345d3a409b5d2ebe01fcfcdcca92cb">geom::Coordinate::Vect</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html#a2123bdd30ced8c296ab17521c491943a">srcPts</a></td></tr>
<tr class="separator:a2123bdd30ced8c296ab17521c491943a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57be7c7162f7f1e8797d30404fd88635"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html#a57be7c7162f7f1e8797d30404fd88635">snapTolerance</a></td></tr>
<tr class="separator:a57be7c7162f7f1e8797d30404fd88635"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2745bb9a84915af4f1cd926ba4a1604"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html#ad2745bb9a84915af4f1cd926ba4a1604">allowSnappingToSourceVertices</a></td></tr>
<tr class="separator:ad2745bb9a84915af4f1cd926ba4a1604"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3caa4ef41463b3d33db5a86d17894719"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html#a3caa4ef41463b3d33db5a86d17894719">isClosed</a></td></tr>
<tr class="separator:a3caa4ef41463b3d33db5a86d17894719"><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>Snaps the vertices and segments of a LineString to a set of target snap vertices. </p>
<p>A snapping distance tolerance is used to control where snapping is performed. </p>
<p>Definition at line <a class="el" href="LineStringSnapper_8h_source.html#l00051">51</a> of file <a class="el" href="LineStringSnapper_8h_source.html">LineStringSnapper.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ac1ed05effa3c85f646a7be278f460fdc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::operation::overlay::snap::LineStringSnapper::LineStringSnapper </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html#a59345d3a409b5d2ebe01fcfcdcca92cb">geom::Coordinate::Vect</a> &amp;&#160;</td>
<td class="paramname"><em>nSrcPts</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>nSnapTol</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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a new snapper using the given points as source points to be snapped.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">nSrcPts</td><td>the points to snap </td></tr>
<tr><td class="paramname">nSnapTol</td><td>the snap tolerance to use </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="LineStringSnapper_8h_source.html#l00062">62</a> of file <a class="el" href="LineStringSnapper_8h_source.html">LineStringSnapper.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9f3676ab980bbd5ae639b3ba568af45f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::operation::overlay::snap::LineStringSnapper::LineStringSnapper </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html">LineStringSnapper</a> &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a79c7d7d829f111238fb388996318536d"></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_1geom_1_1CoordinateList.html#a1c5d129b14a3475478e8f9bd150153f8">geom::CoordinateList::iterator</a> geos::operation::overlay::snap::LineStringSnapper::findSegmentToSnap </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>snapPt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1CoordinateList.html#a1c5d129b14a3475478e8f9bd150153f8">geom::CoordinateList::iterator</a>&#160;</td>
<td class="paramname"><em>from</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1CoordinateList.html#a1c5d129b14a3475478e8f9bd150153f8">geom::CoordinateList::iterator</a>&#160;</td>
<td class="paramname"><em>too_far</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">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Finds a src segment which snaps to (is close to) the given snap point. </p>
<p>Only a single segment is selected for snapping. This prevents multiple segments snapping to the same snap vertex, which would almost certainly cause invalid geometry to be created. (The heuristic approach to snapping used here is really only appropriate when snap pts snap to a unique spot on the src geometry.)</p>
<p>Also, if the snap vertex occurs as a vertex in the src coordinate list, no snapping is performed (may be changed using setAllowSnappingToSourceVertices).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">from</td><td>an iterator to first point of first segment to be checked</td></tr>
<tr><td class="paramname">too_far</td><td>an iterator to last point of last segment to be checked</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>an iterator to the snapped segment or too_far if no segment needs snapping (either none within snapTol distance, or one found on the snapPt) </dd></dl>
</div>
</div>
<a class="anchor" id="a0cad55b7fd00f37feb182970b7cf2f17"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geom::Coordinate::ConstVect::const_iterator geos::operation::overlay::snap::LineStringSnapper::findSnapForVertex </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">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html#a59a363dbe699943a46ea014355e63cac">geom::Coordinate::ConstVect</a> &amp;&#160;</td>
<td class="paramname"><em>snapPts</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">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aceb3d2018a53945d063dceb3ee688e4c"></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_1geom_1_1CoordinateList.html#a1c5d129b14a3475478e8f9bd150153f8">geom::CoordinateList::iterator</a> geos::operation::overlay::snap::LineStringSnapper::findVertexToSnap </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>snapPt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1CoordinateList.html#a1c5d129b14a3475478e8f9bd150153f8">geom::CoordinateList::iterator</a>&#160;</td>
<td class="paramname"><em>from</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1CoordinateList.html#a1c5d129b14a3475478e8f9bd150153f8">geom::CoordinateList::iterator</a>&#160;</td>
<td class="paramname"><em>too_far</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">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5badab1b1b47eb7deaadb21ffb7b2438"></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_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html">LineStringSnapper</a>&amp; geos::operation::overlay::snap::LineStringSnapper::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1LineStringSnapper.html">LineStringSnapper</a> &amp;&#160;</td>
<td class="paramname"><em>rhs</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="adb13fd1f9b87bd5d8f42c7acacc4cc42"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::operation::overlay::snap::LineStringSnapper::setAllowSnappingToSourceVertices </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>allow</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="LineStringSnapper_8h_source.html#l00077">77</a> of file <a class="el" href="LineStringSnapper_8h_source.html">LineStringSnapper.h</a>.</p>
</div>
</div>
<a class="anchor" id="a7d00065de70108f90dedb6d5a0ce5d61"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::operation::overlay::snap::LineStringSnapper::snapSegments </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1CoordinateList.html">geom::CoordinateList</a> &amp;&#160;</td>
<td class="paramname"><em>srcCoords</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html#a59a363dbe699943a46ea014355e63cac">geom::Coordinate::ConstVect</a> &amp;&#160;</td>
<td class="paramname"><em>snapPts</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">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Snap segments of the source to nearby snap vertices. </p>
<p>Source segments are "cracked" at a snap vertex. A single input segment may be snapped several times to different snap vertices.</p>
<p>For each distinct snap vertex, at most one source segment is snapped to. This prevents "cracking" multiple segments at the same point, which would likely cause topology collapse when being used on polygonal linework.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">srcCoords</td><td>the coordinates of the source linestring to be snapped the object will be modified (coords snapped) </td></tr>
<tr><td class="paramname">snapPts</td><td>the target snap vertices </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a1829a66d38ef7c673a31684d7427f731"></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_1Coordinate.html#a59345d3a409b5d2ebe01fcfcdcca92cb">geom::Coordinate::Vect</a>&gt; geos::operation::overlay::snap::LineStringSnapper::snapTo </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html#a59a363dbe699943a46ea014355e63cac">geom::Coordinate::ConstVect</a> &amp;&#160;</td>
<td class="paramname"><em>snapPts</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a6c35dd1bebdcef0e2f88c9f16fe1ae1d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::operation::overlay::snap::LineStringSnapper::snapVertices </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1CoordinateList.html">geom::CoordinateList</a> &amp;&#160;</td>
<td class="paramname"><em>srcCoords</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html#a59a363dbe699943a46ea014355e63cac">geom::Coordinate::ConstVect</a> &amp;&#160;</td>
<td class="paramname"><em>snapPts</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">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="ad2745bb9a84915af4f1cd926ba4a1604"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::operation::overlay::snap::LineStringSnapper::allowSnappingToSourceVertices</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="LineStringSnapper_8h_source.html#l00088">88</a> of file <a class="el" href="LineStringSnapper_8h_source.html">LineStringSnapper.h</a>.</p>
</div>
</div>
<a class="anchor" id="a3caa4ef41463b3d33db5a86d17894719"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::operation::overlay::snap::LineStringSnapper::isClosed</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="LineStringSnapper_8h_source.html#l00089">89</a> of file <a class="el" href="LineStringSnapper_8h_source.html">LineStringSnapper.h</a>.</p>
</div>
</div>
<a class="anchor" id="a57be7c7162f7f1e8797d30404fd88635"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double geos::operation::overlay::snap::LineStringSnapper::snapTolerance</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="LineStringSnapper_8h_source.html#l00086">86</a> of file <a class="el" href="LineStringSnapper_8h_source.html">LineStringSnapper.h</a>.</p>
</div>
</div>
<a class="anchor" id="a2123bdd30ced8c296ab17521c491943a"></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_1Coordinate.html#a59345d3a409b5d2ebe01fcfcdcca92cb">geom::Coordinate::Vect</a>&amp; geos::operation::overlay::snap::LineStringSnapper::srcPts</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="LineStringSnapper_8h_source.html#l00084">84</a> of file <a class="el" href="LineStringSnapper_8h_source.html">LineStringSnapper.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="LineStringSnapper_8h_source.html">LineStringSnapper.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>