geos_390_docs/classgeos_1_1precision_1_1G...

747 lines
40 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::precision::GeometryPrecisionReducer 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_1precision.html">precision</a></li><li class="navelem"><a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html">GeometryPrecisionReducer</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="classgeos_1_1precision_1_1GeometryPrecisionReducer-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::precision::GeometryPrecisionReducer Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Reduces the precision of a <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> according to the supplied <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a>, ensuring that the result is valid (unless specified otherwise).
<a href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="GeometryPrecisionReducer_8h_source.html">GeometryPrecisionReducer.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for geos::precision::GeometryPrecisionReducer:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1precision_1_1GeometryPrecisionReducer__coll__graph.svg" width="480" height="255"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:afbf0bea4334e3eea5d4635d26d732c10"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html#afbf0bea4334e3eea5d4635d26d732c10">GeometryPrecisionReducer</a> (const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a> &amp;pm)</td></tr>
<tr class="separator:afbf0bea4334e3eea5d4635d26d732c10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23eec3922377921a160cbc16e97d89fc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html#a23eec3922377921a160cbc16e97d89fc">GeometryPrecisionReducer</a> (const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;changeFactory)</td></tr>
<tr class="memdesc:a23eec3922377921a160cbc16e97d89fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a reducer that will change the precision model of the new reduced Geometry. <a href="#a23eec3922377921a160cbc16e97d89fc">More...</a><br /></td></tr>
<tr class="separator:a23eec3922377921a160cbc16e97d89fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad183c4084fd47b52a9a059463b06ec4f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html#ad183c4084fd47b52a9a059463b06ec4f">setRemoveCollapsedComponents</a> (bool remove)</td></tr>
<tr class="separator:ad183c4084fd47b52a9a059463b06ec4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49bcfa95700d9b7e309049bdcee25d2c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html#a49bcfa95700d9b7e309049bdcee25d2c">setChangePrecisionModel</a> (bool change)</td></tr>
<tr class="memdesc:a49bcfa95700d9b7e309049bdcee25d2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets whether the <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a> of the new reduced Geometry will be changed to be the <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a> supplied to specify the precision reduction. The default is to not change the precision model. <a href="#a49bcfa95700d9b7e309049bdcee25d2c">More...</a><br /></td></tr>
<tr class="separator:a49bcfa95700d9b7e309049bdcee25d2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cf5c1580a719fe349b5e0d2c7fd3181"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html#a2cf5c1580a719fe349b5e0d2c7fd3181">setUseAreaReducer</a> (bool useAR)</td></tr>
<tr class="separator:a2cf5c1580a719fe349b5e0d2c7fd3181"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a443eb455858dbd88d5712cf8ce3a1519"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html#a443eb455858dbd88d5712cf8ce3a1519">setPointwise</a> (bool pointwise)</td></tr>
<tr class="memdesc:a443eb455858dbd88d5712cf8ce3a1519"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets whether the precision reduction will be done in pointwise fashion only. <a href="#a443eb455858dbd88d5712cf8ce3a1519">More...</a><br /></td></tr>
<tr class="separator:a443eb455858dbd88d5712cf8ce3a1519"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83495222957eecc4c66d870a4c16e707"><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_1precision_1_1GeometryPrecisionReducer.html#a83495222957eecc4c66d870a4c16e707">reduce</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;geom)</td></tr>
<tr class="separator:a83495222957eecc4c66d870a4c16e707"><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:aad2456c5ccb843c29cfdec6907e113ab"><td class="memItemLeft" align="right" valign="top">static 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_1precision_1_1GeometryPrecisionReducer.html#aad2456c5ccb843c29cfdec6907e113ab">reduce</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;g, const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a> &amp;precModel)</td></tr>
<tr class="separator:aad2456c5ccb843c29cfdec6907e113ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a506dd7e0656b72953848f584f43f78bb"><td class="memItemLeft" align="right" valign="top">static 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_1precision_1_1GeometryPrecisionReducer.html#a506dd7e0656b72953848f584f43f78bb">reducePointwise</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;g, const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a> &amp;precModel)</td></tr>
<tr class="separator:a506dd7e0656b72953848f584f43f78bb"><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:ad602df848cb1194ef65e681041d62303"><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_1precision_1_1GeometryPrecisionReducer.html#ad602df848cb1194ef65e681041d62303">reducePointwise</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;geom)</td></tr>
<tr class="separator:ad602df848cb1194ef65e681041d62303"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd5440ce2bed88543a93ca8a501fb453"><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_1precision_1_1GeometryPrecisionReducer.html#afd5440ce2bed88543a93ca8a501fb453">fixPolygonalTopology</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;geom)</td></tr>
<tr class="separator:afd5440ce2bed88543a93ca8a501fb453"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ebc9c3cfbec19ba15819e9fe8bb8d89"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html#a4acdc96c586d8e67bad393abae76220b">geom::GeometryFactory::Ptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html#a7ebc9c3cfbec19ba15819e9fe8bb8d89">createFactory</a> (const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;oldGF, const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a> &amp;newPM)</td></tr>
<tr class="separator:a7ebc9c3cfbec19ba15819e9fe8bb8d89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a185e7abc38206c3f33e6383352daf50a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html#a185e7abc38206c3f33e6383352daf50a">GeometryPrecisionReducer</a> (<a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html">GeometryPrecisionReducer</a> const &amp;)</td></tr>
<tr class="separator:a185e7abc38206c3f33e6383352daf50a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b42bbb4ddedf952ddfebe07b7709e1d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html">GeometryPrecisionReducer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html#a2b42bbb4ddedf952ddfebe07b7709e1d">operator=</a> (<a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html">GeometryPrecisionReducer</a> const &amp;)</td></tr>
<tr class="separator:a2b42bbb4ddedf952ddfebe07b7709e1d"><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:a63483fdb4fb194a3e5444380b67a3f34"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html#a63483fdb4fb194a3e5444380b67a3f34">newFactory</a></td></tr>
<tr class="separator:a63483fdb4fb194a3e5444380b67a3f34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a642cf48860cabc54e243c7377cc9c17d"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html#a642cf48860cabc54e243c7377cc9c17d">targetPM</a></td></tr>
<tr class="separator:a642cf48860cabc54e243c7377cc9c17d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a326f1c55b893749c053fa4855cc99c59"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html#a326f1c55b893749c053fa4855cc99c59">removeCollapsed</a></td></tr>
<tr class="separator:a326f1c55b893749c053fa4855cc99c59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b5e2cb08053b6b13dd7e7f3b54fc843"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html#a0b5e2cb08053b6b13dd7e7f3b54fc843">changePrecisionModel</a></td></tr>
<tr class="separator:a0b5e2cb08053b6b13dd7e7f3b54fc843"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e1515c812154e869f1b1b5b8f898e3b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html#a1e1515c812154e869f1b1b5b8f898e3b">useAreaReducer</a></td></tr>
<tr class="separator:a1e1515c812154e869f1b1b5b8f898e3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d3631630a419ed01af01d34002f2297"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html#a7d3631630a419ed01af01d34002f2297">isPointwise</a></td></tr>
<tr class="separator:a7d3631630a419ed01af01d34002f2297"><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>Reduces the precision of a <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> according to the supplied <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a>, ensuring that the result is valid (unless specified otherwise). </p>
<p>By default the reduced result is topologically valid To ensure this a polygonal geometry is reduced in a topologically valid fashion (technically, by using snap-rounding). It can be forced to be reduced pointwise by using setPointwise(boolean). Note that in this case the result geometry may be invalid. Linear and point geometry is always reduced pointwise (i.e. without further change to its topology or stucture), since this does not change validity.</p>
<p>By default the geometry precision model is not changed. This can be overridden by usingsetChangePrecisionModel(boolean).</p>
<p>Normally collapsed components (e.g. lines collapsing to a point) are not included in the result. This behavior can be changed by using setRemoveCollapsedComponents(boolean). </p>
<p>Definition at line <a class="el" href="GeometryPrecisionReducer_8h_source.html#l00058">58</a> of file <a class="el" href="GeometryPrecisionReducer_8h_source.html">GeometryPrecisionReducer.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a185e7abc38206c3f33e6383352daf50a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::precision::GeometryPrecisionReducer::GeometryPrecisionReducer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html">GeometryPrecisionReducer</a> const &amp;&#160;</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">
</div>
</div>
<a class="anchor" id="afbf0bea4334e3eea5d4635d26d732c10"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::precision::GeometryPrecisionReducer::GeometryPrecisionReducer </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a> &amp;&#160;</td>
<td class="paramname"><em>pm</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="GeometryPrecisionReducer_8h_source.html#l00126">126</a> of file <a class="el" href="GeometryPrecisionReducer_8h_source.html">GeometryPrecisionReducer.h</a>.</p>
</div>
</div>
<a class="anchor" id="a23eec3922377921a160cbc16e97d89fc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::precision::GeometryPrecisionReducer::GeometryPrecisionReducer </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;&#160;</td>
<td class="paramname"><em>changeFactory</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>Create a reducer that will change the precision model of the new reduced Geometry. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">changeFactory</td><td>the factory for the created Geometry. Its PrecisionModel will be used for the reduction. NOTE: ownership left to caller must be kept alive for the whole lifetime of the returned Geometry. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="GeometryPrecisionReducer_8h_source.html#l00145">145</a> of file <a class="el" href="GeometryPrecisionReducer_8h_source.html">GeometryPrecisionReducer.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a7ebc9c3cfbec19ba15819e9fe8bb8d89"></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_1GeometryFactory.html#a4acdc96c586d8e67bad393abae76220b">geom::GeometryFactory::Ptr</a> geos::precision::GeometryPrecisionReducer::createFactory </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;&#160;</td>
<td class="paramname"><em>oldGF</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a> &amp;&#160;</td>
<td class="paramname"><em>newPM</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="afd5440ce2bed88543a93ca8a501fb453"></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_1Geometry.html">geom::Geometry</a>&gt; geos::precision::GeometryPrecisionReducer::fixPolygonalTopology </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>geom</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">
</div>
</div>
<a class="anchor" id="a2b42bbb4ddedf952ddfebe07b7709e1d"></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_1precision_1_1GeometryPrecisionReducer.html">GeometryPrecisionReducer</a>&amp; geos::precision::GeometryPrecisionReducer::operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1precision_1_1GeometryPrecisionReducer.html">GeometryPrecisionReducer</a> const &amp;&#160;</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">
</div>
</div>
<a class="anchor" id="aad2456c5ccb843c29cfdec6907e113ab"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>&gt; geos::precision::GeometryPrecisionReducer::reduce </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">const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a> &amp;&#160;</td>
<td class="paramname"><em>precModel</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 class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Convenience method for doing precision reduction on a single geometry, with collapses removed and keeping the geometry precision model the same, and preserving polygonal topology.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">g</td><td>the geometry to reduce </td></tr>
<tr><td class="paramname">precModel</td><td>the precision model to use </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the reduced geometry </dd></dl>
<p>Definition at line <a class="el" href="GeometryPrecisionReducer_8h_source.html#l00097">97</a> of file <a class="el" href="GeometryPrecisionReducer_8h_source.html">GeometryPrecisionReducer.h</a>.</p>
<p>References <a class="el" href="GeometryPrecisionReducer_8h_source.html#l00097">reduce()</a>.</p>
<p>Referenced by <a class="el" href="GeometryPrecisionReducer_8h_source.html#l00097">reduce()</a>, and <a class="el" href="GeometryPrecisionReducer_8h_source.html#l00117">reducePointwise()</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1precision_1_1GeometryPrecisionReducer_aad2456c5ccb843c29cfdec6907e113ab_cgraph.svg" width="200" height="79"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</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_1precision_1_1GeometryPrecisionReducer_aad2456c5ccb843c29cfdec6907e113ab_icgraph.svg" width="499" height="79"><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="a83495222957eecc4c66d870a4c16e707"></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::precision::GeometryPrecisionReducer::reduce </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>geom</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad602df848cb1194ef65e681041d62303"></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_1Geometry.html">geom::Geometry</a>&gt; geos::precision::GeometryPrecisionReducer::reducePointwise </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>geom</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">
</div>
</div>
<a class="anchor" id="a506dd7e0656b72953848f584f43f78bb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>&gt; geos::precision::GeometryPrecisionReducer::reducePointwise </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">const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a> &amp;&#160;</td>
<td class="paramname"><em>precModel</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 class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Convenience method for doing precision reduction on a single geometry, with collapses removed and keeping the geometry precision model the same, but NOT preserving valid polygonal topology.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">g</td><td>the geometry to reduce </td></tr>
<tr><td class="paramname">precModel</td><td>the precision model to use </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the reduced geometry </dd></dl>
<p>Definition at line <a class="el" href="GeometryPrecisionReducer_8h_source.html#l00117">117</a> of file <a class="el" href="GeometryPrecisionReducer_8h_source.html">GeometryPrecisionReducer.h</a>.</p>
<p>References <a class="el" href="GeometryPrecisionReducer_8h_source.html#l00097">reduce()</a>, and <a class="el" href="GeometryPrecisionReducer_8h_source.html#l00201">setPointwise()</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1precision_1_1GeometryPrecisionReducer_a506dd7e0656b72953848f584f43f78bb_cgraph.svg" width="535" height="147"><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="a49bcfa95700d9b7e309049bdcee25d2c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::precision::GeometryPrecisionReducer::setChangePrecisionModel </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>change</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>Sets whether the <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a> of the new reduced Geometry will be changed to be the <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a> supplied to specify the precision reduction. The default is to not change the precision model. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">change</td><td>if true the precision model of the created Geometry will be the the precisionModel supplied in the constructor. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="GeometryPrecisionReducer_8h_source.html#l00178">178</a> of file <a class="el" href="GeometryPrecisionReducer_8h_source.html">GeometryPrecisionReducer.h</a>.</p>
</div>
</div>
<a class="anchor" id="a443eb455858dbd88d5712cf8ce3a1519"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::precision::GeometryPrecisionReducer::setPointwise </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>pointwise</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>Sets whether the precision reduction will be done in pointwise fashion only. </p>
<p>Pointwise precision reduction reduces the precision of the individual coordinates only, but does not attempt to recreate valid topology. This is only relevant for geometries containing polygonal components.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pointwise</td><td>if reduction should be done pointwise only </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="GeometryPrecisionReducer_8h_source.html#l00201">201</a> of file <a class="el" href="GeometryPrecisionReducer_8h_source.html">GeometryPrecisionReducer.h</a>.</p>
<p>Referenced by <a class="el" href="GeometryPrecisionReducer_8h_source.html#l00117">reducePointwise()</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_1precision_1_1GeometryPrecisionReducer_a443eb455858dbd88d5712cf8ce3a1519_icgraph.svg" width="535" 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="ad183c4084fd47b52a9a059463b06ec4f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::precision::GeometryPrecisionReducer::setRemoveCollapsedComponents </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>remove</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>Sets whether the reduction will result in collapsed components being removed completely, or simply being collapsed to an (invalid) Geometry of the same type.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">remove</td><td>if true collapsed components will be removed </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="GeometryPrecisionReducer_8h_source.html#l00162">162</a> of file <a class="el" href="GeometryPrecisionReducer_8h_source.html">GeometryPrecisionReducer.h</a>.</p>
</div>
</div>
<a class="anchor" id="a2cf5c1580a719fe349b5e0d2c7fd3181"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::precision::GeometryPrecisionReducer::setUseAreaReducer </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>useAR</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="GeometryPrecisionReducer_8h_source.html#l00184">184</a> of file <a class="el" href="GeometryPrecisionReducer_8h_source.html">GeometryPrecisionReducer.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a0b5e2cb08053b6b13dd7e7f3b54fc843"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::precision::GeometryPrecisionReducer::changePrecisionModel</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="GeometryPrecisionReducer_8h_source.html#l00068">68</a> of file <a class="el" href="GeometryPrecisionReducer_8h_source.html">GeometryPrecisionReducer.h</a>.</p>
</div>
</div>
<a class="anchor" id="a7d3631630a419ed01af01d34002f2297"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::precision::GeometryPrecisionReducer::isPointwise</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="GeometryPrecisionReducer_8h_source.html#l00070">70</a> of file <a class="el" href="GeometryPrecisionReducer_8h_source.html">GeometryPrecisionReducer.h</a>.</p>
</div>
</div>
<a class="anchor" id="a63483fdb4fb194a3e5444380b67a3f34"></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_1GeometryFactory.html">geom::GeometryFactory</a>* geos::precision::GeometryPrecisionReducer::newFactory</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="GeometryPrecisionReducer_8h_source.html#l00063">63</a> of file <a class="el" href="GeometryPrecisionReducer_8h_source.html">GeometryPrecisionReducer.h</a>.</p>
</div>
</div>
<a class="anchor" id="a326f1c55b893749c053fa4855cc99c59"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::precision::GeometryPrecisionReducer::removeCollapsed</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="GeometryPrecisionReducer_8h_source.html#l00067">67</a> of file <a class="el" href="GeometryPrecisionReducer_8h_source.html">GeometryPrecisionReducer.h</a>.</p>
</div>
</div>
<a class="anchor" id="a642cf48860cabc54e243c7377cc9c17d"></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_1PrecisionModel.html">geom::PrecisionModel</a>&amp; geos::precision::GeometryPrecisionReducer::targetPM</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="GeometryPrecisionReducer_8h_source.html#l00065">65</a> of file <a class="el" href="GeometryPrecisionReducer_8h_source.html">GeometryPrecisionReducer.h</a>.</p>
</div>
</div>
<a class="anchor" id="a1e1515c812154e869f1b1b5b8f898e3b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::precision::GeometryPrecisionReducer::useAreaReducer</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="GeometryPrecisionReducer_8h_source.html#l00069">69</a> of file <a class="el" href="GeometryPrecisionReducer_8h_source.html">GeometryPrecisionReducer.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="GeometryPrecisionReducer_8h_source.html">GeometryPrecisionReducer.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>