geos_390_docs/classgeos_1_1operation_1_1o...

574 lines
31 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::GeometrySnapper 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_1GeometrySnapper.html">GeometrySnapper</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<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="#pri-static-attribs">Static Private Attributes</a> &#124;
<a href="classgeos_1_1operation_1_1overlay_1_1snap_1_1GeometrySnapper-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::operation::overlay::snap::GeometrySnapper Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Snaps the vertices and segments of a <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> to another Geometry's vertices.
<a href="classgeos_1_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="GeometrySnapper_8h_source.html">GeometrySnapper.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for geos::operation::overlay::snap::GeometrySnapper:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classgeos_1_1operation_1_1overlay_1_1snap_1_1GeometrySnapper__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-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a180d2ac23d44f90083cb871e6fb227a9"><td class="memItemLeft" align="right" valign="top">typedef 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_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html#a180d2ac23d44f90083cb871e6fb227a9">GeomPtr</a></td></tr>
<tr class="separator:a180d2ac23d44f90083cb871e6fb227a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:a5df260fee1d8af571aa0e01ff2b3397c"><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_1GeometrySnapper.html#a5df260fee1d8af571aa0e01ff2b3397c">GeometrySnapper</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;g)</td></tr>
<tr class="separator:a5df260fee1d8af571aa0e01ff2b3397c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78346d2c85fce6e18e5ad73ca3836f49"><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_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html#a78346d2c85fce6e18e5ad73ca3836f49">snapTo</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;g, double snapTolerance)</td></tr>
<tr class="memdesc:a78346d2c85fce6e18e5ad73ca3836f49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Snaps the vertices in the component <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a>s of the source geometry to the vertices of the given snap geometry with a given snap tolerance. <a href="#a78346d2c85fce6e18e5ad73ca3836f49">More...</a><br /></td></tr>
<tr class="separator:a78346d2c85fce6e18e5ad73ca3836f49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92f237621995e4684709cf2bced0142b"><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_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html#a92f237621995e4684709cf2bced0142b">snapToSelf</a> (double snapTolerance, bool cleanResult)</td></tr>
<tr class="memdesc:a92f237621995e4684709cf2bced0142b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Snaps the vertices in the component <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a>s of the source geometry to the vertices of itself with a given snap tolerance and optionally cleaning the result. <a href="#a92f237621995e4684709cf2bced0142b">More...</a><br /></td></tr>
<tr class="separator:a92f237621995e4684709cf2bced0142b"><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:a03a4e54e4de1d0abbcdcd1dbae97a209"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html#a03a4e54e4de1d0abbcdcd1dbae97a209">snap</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;g0, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;g1, double snapTolerance, <a class="el" href="structgeos_1_1geom_1_1GeomPtrPair.html">geom::GeomPtrPair</a> &amp;ret)</td></tr>
<tr class="separator:a03a4e54e4de1d0abbcdcd1dbae97a209"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8e2b477b306cf9ccd3b64cec9604c10"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html#a180d2ac23d44f90083cb871e6fb227a9">GeomPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html#ae8e2b477b306cf9ccd3b64cec9604c10">snapToSelf</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;g0, double snapTolerance, bool cleanResult)</td></tr>
<tr class="separator:ae8e2b477b306cf9ccd3b64cec9604c10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a365c500444f8a70c0c532d56ce3820ce"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html#a365c500444f8a70c0c532d56ce3820ce">computeOverlaySnapTolerance</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;g)</td></tr>
<tr class="memdesc:a365c500444f8a70c0c532d56ce3820ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Estimates the snap tolerance for a Geometry, taking into account its precision model. <a href="#a365c500444f8a70c0c532d56ce3820ce">More...</a><br /></td></tr>
<tr class="separator:a365c500444f8a70c0c532d56ce3820ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49e12e706f753453eda28dcce18ca880"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html#a49e12e706f753453eda28dcce18ca880">computeSizeBasedSnapTolerance</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;g)</td></tr>
<tr class="separator:a49e12e706f753453eda28dcce18ca880"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a844f3b94d6ca1f698ada0dd1de517d"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html#a2a844f3b94d6ca1f698ada0dd1de517d">computeOverlaySnapTolerance</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;g1, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;g2)</td></tr>
<tr class="memdesc:a2a844f3b94d6ca1f698ada0dd1de517d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the snap tolerance based on input geometries;. <a href="#a2a844f3b94d6ca1f698ada0dd1de517d">More...</a><br /></td></tr>
<tr class="separator:a2a844f3b94d6ca1f698ada0dd1de517d"><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:a9f7c52b9b5aabb7b76860b53b15ebc4c"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Coordinate.html#a59a363dbe699943a46ea014355e63cac">geom::Coordinate::ConstVect</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html#a9f7c52b9b5aabb7b76860b53b15ebc4c">extractTargetCoordinates</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;g)</td></tr>
<tr class="memdesc:a9f7c52b9b5aabb7b76860b53b15ebc4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract target (unique) coordinates. <a href="#a9f7c52b9b5aabb7b76860b53b15ebc4c">More...</a><br /></td></tr>
<tr class="separator:a9f7c52b9b5aabb7b76860b53b15ebc4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa292b0180a60cbc3bc72e131ec01b85f"><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_1GeometrySnapper.html#aa292b0180a60cbc3bc72e131ec01b85f">GeometrySnapper</a> (const <a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html">GeometrySnapper</a> &amp;other)=delete</td></tr>
<tr class="separator:aa292b0180a60cbc3bc72e131ec01b85f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa116b61bf176ed82e11e6f2d2435e4d3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html">GeometrySnapper</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html#aa116b61bf176ed82e11e6f2d2435e4d3">operator=</a> (const <a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html">GeometrySnapper</a> &amp;rhs)=delete</td></tr>
<tr class="separator:aa116b61bf176ed82e11e6f2d2435e4d3"><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:affc7dde38f39b5dc9130d0897d7774d0"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html#affc7dde38f39b5dc9130d0897d7774d0">srcGeom</a></td></tr>
<tr class="separator:affc7dde38f39b5dc9130d0897d7774d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-attribs"></a>
Static Private Attributes</h2></td></tr>
<tr class="memitem:a204b5301885910dd0295833f5d707167"><td class="memItemLeft" align="right" valign="top">static const double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html#a204b5301885910dd0295833f5d707167">snapPrecisionFactor</a></td></tr>
<tr class="separator:a204b5301885910dd0295833f5d707167"><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 <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> to another Geometry's vertices. </p>
<p>A snap distance tolerance is used to control where snapping is performed. Snapping one geometry to another can improve robustness for overlay operations by eliminating nearly-coincident edges (which cause problems during noding and intersection calculation). Too much snapping can result in invalid topology being created, so the number and location of snapped vertices is decided using heuristics to determine when it is safe to snap. This can result in some potential snaps being omitted, however. </p>
<p>Definition at line <a class="el" href="GeometrySnapper_8h_source.html#l00058">58</a> of file <a class="el" href="GeometrySnapper_8h_source.html">GeometrySnapper.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="a180d2ac23d44f90083cb871e6fb227a9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>&gt; <a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html#a180d2ac23d44f90083cb871e6fb227a9">geos::operation::overlay::snap::GeometrySnapper::GeomPtr</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="GeometrySnapper_8h_source.html#l00062">62</a> of file <a class="el" href="GeometrySnapper_8h_source.html">GeometrySnapper.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a5df260fee1d8af571aa0e01ff2b3397c"></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::GeometrySnapper::GeometrySnapper </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>g</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>Creates a new snapper acting on the given geometry</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">g</td><td>the geometry to snap </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="GeometrySnapper_8h_source.html#l00085">85</a> of file <a class="el" href="GeometrySnapper_8h_source.html">GeometrySnapper.h</a>.</p>
</div>
</div>
<a class="anchor" id="aa292b0180a60cbc3bc72e131ec01b85f"></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::GeometrySnapper::GeometrySnapper </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html">GeometrySnapper</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="a365c500444f8a70c0c532d56ce3820ce"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static double geos::operation::overlay::snap::GeometrySnapper::computeOverlaySnapTolerance </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>g</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>Estimates the snap tolerance for a Geometry, taking into account its precision model. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">g</td><td>a Geometry </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the estimated snap tolerance </dd></dl>
</div>
</div>
<a class="anchor" id="a2a844f3b94d6ca1f698ada0dd1de517d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static double geos::operation::overlay::snap::GeometrySnapper::computeOverlaySnapTolerance </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>g1</em>, </td>
</tr>
<tr>
<td class="paramkey"></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>g2</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 snap tolerance based on input geometries;. </p>
</div>
</div>
<a class="anchor" id="a49e12e706f753453eda28dcce18ca880"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static double geos::operation::overlay::snap::GeometrySnapper::computeSizeBasedSnapTolerance </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>g</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">
</div>
</div>
<a class="anchor" id="a9f7c52b9b5aabb7b76860b53b15ebc4c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Coordinate.html#a59a363dbe699943a46ea014355e63cac">geom::Coordinate::ConstVect</a>&gt; geos::operation::overlay::snap::GeometrySnapper::extractTargetCoordinates </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>g</em></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>Extract target (unique) coordinates. </p>
</div>
</div>
<a class="anchor" id="aa116b61bf176ed82e11e6f2d2435e4d3"></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_1GeometrySnapper.html">GeometrySnapper</a>&amp; geos::operation::overlay::snap::GeometrySnapper::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html">GeometrySnapper</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="a03a4e54e4de1d0abbcdcd1dbae97a209"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void geos::operation::overlay::snap::GeometrySnapper::snap </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>g0</em>, </td>
</tr>
<tr>
<td class="paramkey"></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>g1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>snapTolerance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgeos_1_1geom_1_1GeomPtrPair.html">geom::GeomPtrPair</a> &amp;&#160;</td>
<td class="paramname"><em>ret</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>Snaps two geometries together with a given tolerance.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">g0</td><td>a geometry to snap </td></tr>
<tr><td class="paramname">g1</td><td>a geometry to snap </td></tr>
<tr><td class="paramname">snapTolerance</td><td>the tolerance to use </td></tr>
<tr><td class="paramname">ret</td><td>the snapped geometries as a pair of smart pointers (output parameter) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a78346d2c85fce6e18e5ad73ca3836f49"></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::operation::overlay::snap::GeometrySnapper::snapTo </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>g</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>snapTolerance</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Snaps the vertices in the component <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a>s of the source geometry to the vertices of the given snap geometry with a given snap tolerance. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">g</td><td>a geometry to snap the source to </td></tr>
<tr><td class="paramname">snapTolerance</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a new snapped Geometry </dd></dl>
</div>
</div>
<a class="anchor" id="ae8e2b477b306cf9ccd3b64cec9604c10"></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_1operation_1_1overlay_1_1snap_1_1GeometrySnapper.html#a180d2ac23d44f90083cb871e6fb227a9">GeomPtr</a> geos::operation::overlay::snap::GeometrySnapper::snapToSelf </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>g0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>snapTolerance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>cleanResult</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">
</div>
</div>
<a class="anchor" id="a92f237621995e4684709cf2bced0142b"></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::operation::overlay::snap::GeometrySnapper::snapToSelf </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>snapTolerance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>cleanResult</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Snaps the vertices in the component <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a>s of the source geometry to the vertices of itself with a given snap tolerance and optionally cleaning the result. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">snapTolerance</td><td></td></tr>
<tr><td class="paramname">cleanResult</td><td>clean the result </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a new snapped Geometry </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a204b5301885910dd0295833f5d707167"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const double geos::operation::overlay::snap::GeometrySnapper::snapPrecisionFactor</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="GeometrySnapper_8h_source.html#l00138">138</a> of file <a class="el" href="GeometrySnapper_8h_source.html">GeometrySnapper.h</a>.</p>
</div>
</div>
<a class="anchor" id="affc7dde38f39b5dc9130d0897d7774d0"></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>&amp; geos::operation::overlay::snap::GeometrySnapper::srcGeom</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="GeometrySnapper_8h_source.html#l00140">140</a> of file <a class="el" href="GeometrySnapper_8h_source.html">GeometrySnapper.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="GeometrySnapper_8h_source.html">GeometrySnapper.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>