geos_390_docs/classgeos_1_1operation_1_1o...

1485 lines
77 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::overlayng::OverlayNG 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_1overlayng.html">overlayng</a></li><li class="navelem"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html">OverlayNG</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="#pub-static-attribs">Static Public Attributes</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_1overlayng_1_1OverlayNG-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::operation::overlayng::OverlayNG Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for geos::operation::overlayng::OverlayNG:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classgeos_1_1operation_1_1overlayng_1_1OverlayNG__coll__graph.svg" width="100%" height="460"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a028f1b1e7d4bf8e3c69a55599386c451"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a028f1b1e7d4bf8e3c69a55599386c451">OverlayNG</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *geom0, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *geom1, const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> *p_geomFact, int p_opCode)</td></tr>
<tr class="separator:a028f1b1e7d4bf8e3c69a55599386c451"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fdf1a8b256145f38ea1c7471c47f2af"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a5fdf1a8b256145f38ea1c7471c47f2af">OverlayNG</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *geom0, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *geom1, const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a> *p_pm, int p_opCode)</td></tr>
<tr class="separator:a5fdf1a8b256145f38ea1c7471c47f2af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1bcf968cdde37d6cbf96d88d85bf118"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#aa1bcf968cdde37d6cbf96d88d85bf118">OverlayNG</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *geom0, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *geom1, int p_opCode)</td></tr>
<tr class="separator:aa1bcf968cdde37d6cbf96d88d85bf118"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a812cbafea45419755711ccf073300819"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a812cbafea45419755711ccf073300819">OverlayNG</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *geom0, const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a> *p_pm)</td></tr>
<tr class="separator:a812cbafea45419755711ccf073300819"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02220fc33347c756dfbb417ca10b8280"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a02220fc33347c756dfbb417ca10b8280">setOptimized</a> (bool p_isOptimized)</td></tr>
<tr class="separator:a02220fc33347c756dfbb417ca10b8280"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51bcbee51d091a0447f682f146132e9e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a51bcbee51d091a0447f682f146132e9e">setStrictMode</a> (bool p_isStrictMode)</td></tr>
<tr class="separator:a51bcbee51d091a0447f682f146132e9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94e04831a5febf197000149d3b451810"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a94e04831a5febf197000149d3b451810">setAreaResultOnly</a> (bool p_areaResultOnly)</td></tr>
<tr class="separator:a94e04831a5febf197000149d3b451810"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70e47f61785d6a259402e763d26a5c3d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a70e47f61785d6a259402e763d26a5c3d">setOutputEdges</a> (bool p_isOutputEdges)</td></tr>
<tr class="separator:a70e47f61785d6a259402e763d26a5c3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32e0f2d1be98a96f0850e29ab43a7170"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a32e0f2d1be98a96f0850e29ab43a7170">setOutputResultEdges</a> (bool p_isOutputResultEdges)</td></tr>
<tr class="separator:a32e0f2d1be98a96f0850e29ab43a7170"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdbf7c550b73dbbdde6ec071530819e1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#afdbf7c550b73dbbdde6ec071530819e1">setNoder</a> (<a class="el" href="classgeos_1_1noding_1_1Noder.html">noding::Noder</a> *p_noder)</td></tr>
<tr class="separator:afdbf7c550b73dbbdde6ec071530819e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebaf4c47c46131c645dad6609ebbd25a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#aebaf4c47c46131c645dad6609ebbd25a">setOutputNodedEdges</a> (bool p_isOutputNodedEdges)</td></tr>
<tr class="separator:aebaf4c47c46131c645dad6609ebbd25a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f46f4dbe54b1becf905f6e18b4cf024"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a1f46f4dbe54b1becf905f6e18b4cf024">getResult</a> ()</td></tr>
<tr class="separator:a1f46f4dbe54b1becf905f6e18b4cf024"><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:a861dff2e6811cc4481d53faab52bd9bb"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a861dff2e6811cc4481d53faab52bd9bb">isResultOfOpPoint</a> (const <a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayLabel.html">OverlayLabel</a> *label, int <a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#abb07e9e0c14a55b00125ad56e80ce8dc">opCode</a>)</td></tr>
<tr class="separator:a861dff2e6811cc4481d53faab52bd9bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebcee7a793f31557609bd9693da288a1"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#aebcee7a793f31557609bd9693da288a1">isResultOfOp</a> (int overlayOpCode, <a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">Location</a> loc0, <a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">Location</a> loc1)</td></tr>
<tr class="separator:aebcee7a793f31557609bd9693da288a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d221d6d775f0f48fd78c53629e9ea5d"><td class="memItemLeft" align="right" valign="top">static std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a1d221d6d775f0f48fd78c53629e9ea5d">overlay</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *geom0, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *geom1, int <a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#abb07e9e0c14a55b00125ad56e80ce8dc">opCode</a>, const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">PrecisionModel</a> *<a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a25e26c5a4fb86ef2dfdf3dc17b36ba33">pm</a>)</td></tr>
<tr class="separator:a1d221d6d775f0f48fd78c53629e9ea5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85a27ac3474b581975217963fb2fc296"><td class="memItemLeft" align="right" valign="top">static std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a85a27ac3474b581975217963fb2fc296">overlay</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *geom0, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *geom1, int <a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#abb07e9e0c14a55b00125ad56e80ce8dc">opCode</a>, const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">PrecisionModel</a> *<a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a25e26c5a4fb86ef2dfdf3dc17b36ba33">pm</a>, <a class="el" href="classgeos_1_1noding_1_1Noder.html">noding::Noder</a> *<a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#aa6fcf3dd3dec1962aed5758042e86ff0">noder</a>)</td></tr>
<tr class="separator:a85a27ac3474b581975217963fb2fc296"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cc862090b22a28506f0b5a9272232f3"><td class="memItemLeft" align="right" valign="top">static std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a0cc862090b22a28506f0b5a9272232f3">overlay</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *geom0, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *geom1, int <a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#abb07e9e0c14a55b00125ad56e80ce8dc">opCode</a>, <a class="el" href="classgeos_1_1noding_1_1Noder.html">noding::Noder</a> *<a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#aa6fcf3dd3dec1962aed5758042e86ff0">noder</a>)</td></tr>
<tr class="separator:a0cc862090b22a28506f0b5a9272232f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53184e4ba7cea306959495f896ac07f8"><td class="memItemLeft" align="right" valign="top">static std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a53184e4ba7cea306959495f896ac07f8">overlay</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *geom0, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *geom1, int <a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#abb07e9e0c14a55b00125ad56e80ce8dc">opCode</a>)</td></tr>
<tr class="separator:a53184e4ba7cea306959495f896ac07f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14a6b3c883a3270dbd8e712f86f0546a"><td class="memItemLeft" align="right" valign="top">static std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a14a6b3c883a3270dbd8e712f86f0546a">geomunion</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *geom, const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">PrecisionModel</a> *<a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a25e26c5a4fb86ef2dfdf3dc17b36ba33">pm</a>)</td></tr>
<tr class="separator:a14a6b3c883a3270dbd8e712f86f0546a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecafb3f9ea185c72a388948738ed86d7"><td class="memItemLeft" align="right" valign="top">static std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#aecafb3f9ea185c72a388948738ed86d7">geomunion</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *geom, const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">PrecisionModel</a> *<a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a25e26c5a4fb86ef2dfdf3dc17b36ba33">pm</a>, <a class="el" href="classgeos_1_1noding_1_1Noder.html">noding::Noder</a> *<a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#aa6fcf3dd3dec1962aed5758042e86ff0">noder</a>)</td></tr>
<tr class="separator:aecafb3f9ea185c72a388948738ed86d7"><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-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:acd97de26f1e416ead4c73073977c5a6b"><td class="memItemLeft" align="right" valign="top">static constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#acd97de26f1e416ead4c73073977c5a6b">STRICT_MODE_DEFAULT</a> = false</td></tr>
<tr class="separator:acd97de26f1e416ead4c73073977c5a6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae377cb489b5244fb00b7042948790f02"><td class="memItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#ae377cb489b5244fb00b7042948790f02">INTERSECTION</a> = <a class="el" href="classgeos_1_1operation_1_1overlay_1_1OverlayOp.html#a1f2552b975ce852f0b192dc00997b131a8fa6810898ed996b483dd401ef1be6d6">overlay::OverlayOp::opINTERSECTION</a></td></tr>
<tr class="separator:ae377cb489b5244fb00b7042948790f02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f97adb6ea20a65cf6e0be1a9ae515ea"><td class="memItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a2f97adb6ea20a65cf6e0be1a9ae515ea">UNION</a> = <a class="el" href="classgeos_1_1operation_1_1overlay_1_1OverlayOp.html#a1f2552b975ce852f0b192dc00997b131a0d2c09b2c3433c4944aaa1ee2b3777a6">overlay::OverlayOp::opUNION</a></td></tr>
<tr class="separator:a2f97adb6ea20a65cf6e0be1a9ae515ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9bbd4b0ce9c18a9e43f23b5c4b6e1cd"><td class="memItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#aa9bbd4b0ce9c18a9e43f23b5c4b6e1cd">DIFFERENCE</a> = <a class="el" href="classgeos_1_1operation_1_1overlay_1_1OverlayOp.html#a1f2552b975ce852f0b192dc00997b131aa4cb2fc2dbc9ddc1a73eea913a681c2f">overlay::OverlayOp::opDIFFERENCE</a></td></tr>
<tr class="separator:aa9bbd4b0ce9c18a9e43f23b5c4b6e1cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e8110f8489231588c03bc60fdff81c2"><td class="memItemLeft" align="right" valign="top">static constexpr int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a6e8110f8489231588c03bc60fdff81c2">SYMDIFFERENCE</a> = <a class="el" href="classgeos_1_1operation_1_1overlay_1_1OverlayOp.html#a1f2552b975ce852f0b192dc00997b131a05af5ddccedfdb8135c4b6967229254d">overlay::OverlayOp::opSYMDIFFERENCE</a></td></tr>
<tr class="separator:a6e8110f8489231588c03bc60fdff81c2"><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:aa58e43dae12b2a3dec5a461dec2089d8"><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_1overlayng_1_1OverlayNG.html#aa58e43dae12b2a3dec5a461dec2089d8">computeEdgeOverlay</a> ()</td></tr>
<tr class="separator:aa58e43dae12b2a3dec5a461dec2089d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03baa0d103834c264af100339858970a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a03baa0d103834c264af100339858970a">labelGraph</a> (<a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayGraph.html">OverlayGraph</a> *graph)</td></tr>
<tr class="separator:a03baa0d103834c264af100339858970a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbd7cc47f8540b1e7b2511a93536e29a"><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_1overlayng_1_1OverlayNG.html#afbd7cc47f8540b1e7b2511a93536e29a">extractResult</a> (int <a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#abb07e9e0c14a55b00125ad56e80ce8dc">opCode</a>, <a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayGraph.html">OverlayGraph</a> *graph)</td></tr>
<tr class="separator:afbd7cc47f8540b1e7b2511a93536e29a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbaa7553d7a2f3501124d67e7f847d8d"><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_1overlayng_1_1OverlayNG.html#adbaa7553d7a2f3501124d67e7f847d8d">createEmptyResult</a> ()</td></tr>
<tr class="separator:adbaa7553d7a2f3501124d67e7f847d8d"><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:a25e26c5a4fb86ef2dfdf3dc17b36ba33"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a25e26c5a4fb86ef2dfdf3dc17b36ba33">pm</a></td></tr>
<tr class="separator:a25e26c5a4fb86ef2dfdf3dc17b36ba33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1240a28a38f8f3bf549912150304c85"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1InputGeometry.html">InputGeometry</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#ae1240a28a38f8f3bf549912150304c85">inputGeom</a></td></tr>
<tr class="separator:ae1240a28a38f8f3bf549912150304c85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9c36f645afb202e1e04881853abf763"><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_1operation_1_1overlayng_1_1OverlayNG.html#af9c36f645afb202e1e04881853abf763">geomFact</a></td></tr>
<tr class="separator:af9c36f645afb202e1e04881853abf763"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb07e9e0c14a55b00125ad56e80ce8dc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#abb07e9e0c14a55b00125ad56e80ce8dc">opCode</a></td></tr>
<tr class="separator:abb07e9e0c14a55b00125ad56e80ce8dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6fcf3dd3dec1962aed5758042e86ff0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1noding_1_1Noder.html">noding::Noder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#aa6fcf3dd3dec1962aed5758042e86ff0">noder</a></td></tr>
<tr class="separator:aa6fcf3dd3dec1962aed5758042e86ff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b85c1e80f7ebd68aa2db5b51da7510b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a3b85c1e80f7ebd68aa2db5b51da7510b">isStrictMode</a></td></tr>
<tr class="separator:a3b85c1e80f7ebd68aa2db5b51da7510b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab61ccb2522375dbc9a72b82950f76361"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#ab61ccb2522375dbc9a72b82950f76361">isOptimized</a></td></tr>
<tr class="separator:ab61ccb2522375dbc9a72b82950f76361"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd9827990edd18d61d77656688d79b95"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#abd9827990edd18d61d77656688d79b95">isAreaResultOnly</a></td></tr>
<tr class="separator:abd9827990edd18d61d77656688d79b95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9308c77010f4eda06b08e83a30919e04"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a9308c77010f4eda06b08e83a30919e04">isOutputEdges</a></td></tr>
<tr class="separator:a9308c77010f4eda06b08e83a30919e04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fd3556e782204ab0e8e43c8b9a5847e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#a9fd3556e782204ab0e8e43c8b9a5847e">isOutputResultEdges</a></td></tr>
<tr class="separator:a9fd3556e782204ab0e8e43c8b9a5847e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1dbbf893e1178037a5f872ca0cfd121"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNG.html#ab1dbbf893e1178037a5f872ca0cfd121">isOutputNodedEdges</a></td></tr>
<tr class="separator:ab1dbbf893e1178037a5f872ca0cfd121"><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>Computes the geometric overlay of two <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>s, using an explicit precision model to allow robust computation. The overlay can be used to determine any of the following set-theoretic operations (boolean combinations) of the geometries:</p>
<ul>
<li>INTERSECTION - all points which lie in both geometries</li>
<li>UNION - all points which lie in at least one geometry</li>
<li>DIFFERENCE - all points which lie in the first geometry but not the second</li>
<li>SYMDIFFERENCE - all points which lie in one geometry but not both</li>
</ul>
<p>Input geometries may have different dimension. Input collections must be homogeneous (all elements must have the same dimension).</p>
<p>The precision model used for the computation can be supplied independent of the precision model of the input geometry. The main use for this is to allow using a fixed precision for geometry with a floating precision model. This does two things: ensures robust computation; and forces the output to be validly rounded to the precision model.</p>
<p>For fixed precision models noding is performed using a <a class="el" href="classgeos_1_1noding_1_1snapround_1_1SnapRoundingNoder.html">noding::snapround::SnapRoundingNoder</a>. This provides robust computation (as long as precision is limited to around 13 decimal digits).</p>
<p>For floating precision an <a class="el" href="classgeos_1_1noding_1_1MCIndexNoder.html">noding::MCIndexNoder</a> is used. This is not fully robust, so can sometimes result in <a class="el" href="classgeos_1_1util_1_1TopologyException.html">util::TopologyException</a>s being thrown. For robust full-precision overlay see <a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNGRobust.html">OverlayNGRobust</a>.</p>
<p>Note: If a <a class="el" href="classgeos_1_1noding_1_1snap_1_1SnappingNoder.html">noding::snap::SnappingNoder</a> is used it is best to specify a fairly small snap tolerance, since the intersection clipping optimization can interact with the snapping to alter the result.</p>
<p>TOptionally the overlay computation can process using strict mode (via setStrictMode(boolean). In strict mode result semantics are:</p>
<ul>
<li>Lines and Points resulting from topology collapses are not included in the result</li>
<li>Result geometry is homogeneous for the INTERSECTION and DIFFERENCE operations.</li>
<li>Result geometry is homogeneous for the UNION and SYMDIFFERENCE operations if the inputs have the same dimension.</li>
</ul>
<p>Strict mode has the following benefits:</p>
<ul>
<li>Results are simpler</li>
<li>Overlay operations are chainable without needing to remove lower-dimension elements</li>
</ul>
<p>The original JTS overlay semantics correspond to non-strict mode.</p>
<p>If a robustness error occurs, a TopologyException is thrown. These are usually caused by numerical rounding causing the noding output to not be fully noded. For robust computation with full-precision <a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNGRobust.html">OverlayNGRobust</a> can be used.</p>
<dl class="section author"><dt>Author</dt><dd>mdavis </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayNGRobust.html">OverlayNGRobust</a> </dd></dl>
<p>Definition at line <a class="el" href="OverlayNG_8h_source.html#l00115">115</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a028f1b1e7d4bf8e3c69a55599386c451"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::operation::overlayng::OverlayNG::OverlayNG </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td>
<td class="paramname"><em>geom0</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> *&#160;</td>
<td class="paramname"><em>geom1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> *&#160;</td>
<td class="paramname"><em>p_geomFact</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>p_opCode</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 an overlay operation on the given geometries, with a defined precision model. The noding strategy is determined by the precision model. </p>
<p>Definition at line <a class="el" href="OverlayNG_8h_source.html#l00177">177</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="a5fdf1a8b256145f38ea1c7471c47f2af"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::operation::overlayng::OverlayNG::OverlayNG </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td>
<td class="paramname"><em>geom0</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> *&#160;</td>
<td class="paramname"><em>geom1</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> *&#160;</td>
<td class="paramname"><em>p_pm</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>p_opCode</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 an overlay operation on the given geometries, with a defined precision model. The noding strategy is determined by the precision model. </p>
<p>Definition at line <a class="el" href="OverlayNG_8h_source.html#l00196">196</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="aa1bcf968cdde37d6cbf96d88d85bf118"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::operation::overlayng::OverlayNG::OverlayNG </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td>
<td class="paramname"><em>geom0</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> *&#160;</td>
<td class="paramname"><em>geom1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>p_opCode</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 an overlay operation on the given geometries using the precision model of the geometries.</p>
<p>The noder is chosen according to the precision model specified.</p>
<ul>
<li>For <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html#aa32be4a02d1faf45306fee75d68a2e12a702c5051872b1eae28e5f8d3c0f2e8af">PrecisionModel#FIXED</a> a snap-rounding noder is used, and the computation is robust.</li>
<li>For <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html#aa32be4a02d1faf45306fee75d68a2e12a871d90e033044acdd1db738dc2934aaf">PrecisionModel#FLOATING</a> a non-snapping noder is used, and this computation may not be robust. If errors occur a <a class="el" href="classgeos_1_1util_1_1TopologyException.html">util::TopologyException</a> is thrown. </li>
</ul>
<p>Definition at line <a class="el" href="OverlayNG_8h_source.html#l00223">223</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="a812cbafea45419755711ccf073300819"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::operation::overlayng::OverlayNG::OverlayNG </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td>
<td class="paramname"><em>geom0</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> *&#160;</td>
<td class="paramname"><em>p_pm</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>Definition at line <a class="el" href="OverlayNG_8h_source.html#l00227">227</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="aa58e43dae12b2a3dec5a461dec2089d8"></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::operation::overlayng::OverlayNG::computeEdgeOverlay </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="adbaa7553d7a2f3501124d67e7f847d8d"></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::operation::overlayng::OverlayNG::createEmptyResult </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="afbd7cc47f8540b1e7b2511a93536e29a"></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::operation::overlayng::OverlayNG::extractResult </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>opCode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayGraph.html">OverlayGraph</a> *&#160;</td>
<td class="paramname"><em>graph</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>Extracts the result geometry components from the fully labelled topology graph.</p>
<p>This method implements the semantic that the result of an intersection operation is homogeneous with highest dimension. In other words, if an intersection has components of a given dimension no lower-dimension components are output. For example, if two polygons intersect in an area, no linestrings or points are included in the result, even if portions of the input do meet in lines or points. This semantic choice makes more sense for typical usage, in which only the highest dimension components are of interest. </p>
</div>
</div>
<a class="anchor" id="a14a6b3c883a3270dbd8e712f86f0546a"></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">Geometry</a>&gt; geos::operation::overlayng::OverlayNG::geomunion </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>geom</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">PrecisionModel</a> *&#160;</td>
<td class="paramname"><em>pm</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 a union operation on the given geometry, with the supplied precision model. The primary use for this is to perform precision reduction (round the geometry to the supplied precision).</p>
<p>The input must be a valid geometry. Collections must be homogeneous. IMPORTANT: You probably want OverlayNGUnaryUnion, not this.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geom</td><td>the geometry </td></tr>
<tr><td class="paramname">pm</td><td>the precision model to use </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the result of the union operation</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayMixedPoints.html">OverlayMixedPoints</a> </dd>
<dd>
<a class="el" href="classgeos_1_1operation_1_1overlayng_1_1PrecisionReducer.html">PrecisionReducer</a> </dd>
<dd>
<a class="el" href="classgeos_1_1operation_1_1overlayng_1_1UnaryUnionNG.html">UnaryUnionNG</a> </dd>
<dd>
CoverageUnion </dd></dl>
</div>
</div>
<a class="anchor" id="aecafb3f9ea185c72a388948738ed86d7"></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">Geometry</a>&gt; geos::operation::overlayng::OverlayNG::geomunion </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>geom</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">PrecisionModel</a> *&#160;</td>
<td class="paramname"><em>pm</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1noding_1_1Noder.html">noding::Noder</a> *&#160;</td>
<td class="paramname"><em>noder</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 a union of a single geometry using a custom noder.</p>
<p>The primary use of this is to support coverage union.</p>
<p>The input must be a valid geometry. Collections must be homogeneous. IMPORTANT: You probably want OverlayNGUnaryUnion, not this.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geom</td><td>the geometry to union </td></tr>
<tr><td class="paramname">pm</td><td>the precision model to use (maybe be null) </td></tr>
<tr><td class="paramname">noder</td><td>the noder to use </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the result geometry</dd></dl>
<dl class="section see"><dt>See also</dt><dd>CoverageUnion </dd></dl>
</div>
</div>
<a class="anchor" id="a1f46f4dbe54b1becf905f6e18b4cf024"></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">Geometry</a>&gt; geos::operation::overlayng::OverlayNG::getResult </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the result of the overlay operation.</p>
<dl class="section return"><dt>Returns</dt><dd>the result of the overlay operation.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">IllegalArgumentException</td><td>if the input is not supported (e.g. a mixed-dimension geometry) </td></tr>
<tr><td class="paramname">TopologyException</td><td>if a robustness error occurs </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="aebcee7a793f31557609bd9693da288a1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool geos::operation::overlayng::OverlayNG::isResultOfOp </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>overlayOpCode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">Location</a>&#160;</td>
<td class="paramname"><em>loc0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">Location</a>&#160;</td>
<td class="paramname"><em>loc1</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>Tests whether a point with given <a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">geom::Location</a>s relative to two geometries would be contained in the result of overlaying the geometries using a given overlay operation. This is used to determine whether components computed during the overlay process should be included in the result geometry.</p>
<p>The method handles arguments of <a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8ab50339a10e1de285ac99d4c3990b8693">Location#NONE</a> correctly. </p>
</div>
</div>
<a class="anchor" id="a861dff2e6811cc4481d53faab52bd9bb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool geos::operation::overlayng::OverlayNG::isResultOfOpPoint </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayLabel.html">OverlayLabel</a> *&#160;</td>
<td class="paramname"><em>label</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>opCode</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>Tests whether a point with a given topological <a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayLabel.html">OverlayLabel</a> relative to two geometries is contained in the result of overlaying the geometries using a given overlay operation.</p>
<p>The method handles arguments of <a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8ab50339a10e1de285ac99d4c3990b8693">Location#NONE</a> correctly </p>
</div>
</div>
<a class="anchor" id="a03baa0d103834c264af100339858970a"></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::overlayng::OverlayNG::labelGraph </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayGraph.html">OverlayGraph</a> *&#160;</td>
<td class="paramname"><em>graph</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="a1d221d6d775f0f48fd78c53629e9ea5d"></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">Geometry</a>&gt; geos::operation::overlayng::OverlayNG::overlay </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>geom0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>geom1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>opCode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">PrecisionModel</a> *&#160;</td>
<td class="paramname"><em>pm</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 an overlay operation for the given geometry operands, with the noding strategy determined by the precision model.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geom0</td><td>the first geometry argument </td></tr>
<tr><td class="paramname">geom1</td><td>the second geometry argument </td></tr>
<tr><td class="paramname">opCode</td><td>the code for the desired overlay operation </td></tr>
<tr><td class="paramname">pm</td><td>the precision model to use </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the result of the overlay operation </dd></dl>
</div>
</div>
<a class="anchor" id="a85a27ac3474b581975217963fb2fc296"></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">Geometry</a>&gt; geos::operation::overlayng::OverlayNG::overlay </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>geom0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>geom1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>opCode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">PrecisionModel</a> *&#160;</td>
<td class="paramname"><em>pm</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1noding_1_1Noder.html">noding::Noder</a> *&#160;</td>
<td class="paramname"><em>noder</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 an overlay operation on the given geometry operands, using a supplied <a class="el" href="classgeos_1_1noding_1_1Noder.html">noding::Noder</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geom0</td><td>the first geometry argument </td></tr>
<tr><td class="paramname">geom1</td><td>the second geometry argument </td></tr>
<tr><td class="paramname">opCode</td><td>the code for the desired overlay operation </td></tr>
<tr><td class="paramname">pm</td><td>the precision model to use (which may be null if the noder does not use one) </td></tr>
<tr><td class="paramname">noder</td><td>the noder to use </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the result of the overlay operation </dd></dl>
</div>
</div>
<a class="anchor" id="a0cc862090b22a28506f0b5a9272232f3"></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">Geometry</a>&gt; geos::operation::overlayng::OverlayNG::overlay </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>geom0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>geom1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>opCode</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1noding_1_1Noder.html">noding::Noder</a> *&#160;</td>
<td class="paramname"><em>noder</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 an overlay operation on the given geometry operands, using a supplied <a class="el" href="classgeos_1_1noding_1_1Noder.html">noding::Noder</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geom0</td><td>the first geometry argument </td></tr>
<tr><td class="paramname">geom1</td><td>the second geometry argument </td></tr>
<tr><td class="paramname">opCode</td><td>the code for the desired overlay operation </td></tr>
<tr><td class="paramname">noder</td><td>the noder to use </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the result of the overlay operation </dd></dl>
</div>
</div>
<a class="anchor" id="a53184e4ba7cea306959495f896ac07f8"></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">Geometry</a>&gt; geos::operation::overlayng::OverlayNG::overlay </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>geom0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>geom1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>opCode</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 an overlay operation on the given geometry operands, using the precision model of the geometry. and an appropriate noder.</p>
<p>The noder is chosen according to the precision model specified.</p>
<ul>
<li>For <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html#aa32be4a02d1faf45306fee75d68a2e12a702c5051872b1eae28e5f8d3c0f2e8af">geom::PrecisionModel#FIXED</a> a snap-rounding noder is used, and the computation is robust.</li>
<li>For <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html#aa32be4a02d1faf45306fee75d68a2e12a871d90e033044acdd1db738dc2934aaf">geom::PrecisionModel#FLOATING</a> a non-snapping noder is used, and this computation may not be robust. If errors occur a <a class="el" href="classgeos_1_1util_1_1TopologyException.html">util::TopologyException</a> is thrown.</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geom0</td><td>the first argument geometry </td></tr>
<tr><td class="paramname">geom1</td><td>the second argument geometry </td></tr>
<tr><td class="paramname">opCode</td><td>the code for the desired overlay operation </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the result of the overlay operation </dd></dl>
</div>
</div>
<a class="anchor" id="a94e04831a5febf197000149d3b451810"></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::overlayng::OverlayNG::setAreaResultOnly </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>p_areaResultOnly</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="OverlayNG_8h_source.html#l00241">241</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="afdbf7c550b73dbbdde6ec071530819e1"></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::overlayng::OverlayNG::setNoder </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1noding_1_1Noder.html">noding::Noder</a> *&#160;</td>
<td class="paramname"><em>p_noder</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="OverlayNG_8h_source.html#l00244">244</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="a02220fc33347c756dfbb417ca10b8280"></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::overlayng::OverlayNG::setOptimized </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>p_isOptimized</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 overlay processing optimizations are enabled. It may be useful to disable optimizations for testing purposes. Default is TRUE (optimization enabled).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">p_isOptimized</td><td>whether to optimize processing </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="OverlayNG_8h_source.html#l00239">239</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="a70e47f61785d6a259402e763d26a5c3d"></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::overlayng::OverlayNG::setOutputEdges </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>p_isOutputEdges</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="OverlayNG_8h_source.html#l00242">242</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="aebaf4c47c46131c645dad6609ebbd25a"></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::overlayng::OverlayNG::setOutputNodedEdges </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>p_isOutputNodedEdges</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="OverlayNG_8h_source.html#l00246">246</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="a32e0f2d1be98a96f0850e29ab43a7170"></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::overlayng::OverlayNG::setOutputResultEdges </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>p_isOutputResultEdges</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="OverlayNG_8h_source.html#l00243">243</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="a51bcbee51d091a0447f682f146132e9e"></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::overlayng::OverlayNG::setStrictMode </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>p_isStrictMode</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="OverlayNG_8h_source.html#l00240">240</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="aa9bbd4b0ce9c18a9e43f23b5c4b6e1cd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr int geos::operation::overlayng::OverlayNG::DIFFERENCE = <a class="el" href="classgeos_1_1operation_1_1overlay_1_1OverlayOp.html#a1f2552b975ce852f0b192dc00997b131aa4cb2fc2dbc9ddc1a73eea913a681c2f">overlay::OverlayOp::opDIFFERENCE</a></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>Definition at line <a class="el" href="OverlayNG_8h_source.html#l00169">169</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="af9c36f645afb202e1e04881853abf763"></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::operation::overlayng::OverlayNG::geomFact</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="OverlayNG_8h_source.html#l00122">122</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="ae1240a28a38f8f3bf549912150304c85"></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_1overlayng_1_1InputGeometry.html">InputGeometry</a> geos::operation::overlayng::OverlayNG::inputGeom</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="OverlayNG_8h_source.html#l00121">121</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="ae377cb489b5244fb00b7042948790f02"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr int geos::operation::overlayng::OverlayNG::INTERSECTION = <a class="el" href="classgeos_1_1operation_1_1overlay_1_1OverlayOp.html#a1f2552b975ce852f0b192dc00997b131a8fa6810898ed996b483dd401ef1be6d6">overlay::OverlayOp::opINTERSECTION</a></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>Definition at line <a class="el" href="OverlayNG_8h_source.html#l00167">167</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="abd9827990edd18d61d77656688d79b95"></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::overlayng::OverlayNG::isAreaResultOnly</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="OverlayNG_8h_source.html#l00127">127</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="ab61ccb2522375dbc9a72b82950f76361"></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::overlayng::OverlayNG::isOptimized</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="OverlayNG_8h_source.html#l00126">126</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9308c77010f4eda06b08e83a30919e04"></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::overlayng::OverlayNG::isOutputEdges</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="OverlayNG_8h_source.html#l00128">128</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="ab1dbbf893e1178037a5f872ca0cfd121"></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::overlayng::OverlayNG::isOutputNodedEdges</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="OverlayNG_8h_source.html#l00130">130</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9fd3556e782204ab0e8e43c8b9a5847e"></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::overlayng::OverlayNG::isOutputResultEdges</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="OverlayNG_8h_source.html#l00129">129</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="a3b85c1e80f7ebd68aa2db5b51da7510b"></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::overlayng::OverlayNG::isStrictMode</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="OverlayNG_8h_source.html#l00125">125</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="aa6fcf3dd3dec1962aed5758042e86ff0"></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_1noding_1_1Noder.html">noding::Noder</a>* geos::operation::overlayng::OverlayNG::noder</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="OverlayNG_8h_source.html#l00124">124</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="abb07e9e0c14a55b00125ad56e80ce8dc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int geos::operation::overlayng::OverlayNG::opCode</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="OverlayNG_8h_source.html#l00123">123</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="a25e26c5a4fb86ef2dfdf3dc17b36ba33"></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>* geos::operation::overlayng::OverlayNG::pm</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="OverlayNG_8h_source.html#l00120">120</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="acd97de26f1e416ead4c73073977c5a6b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr bool geos::operation::overlayng::OverlayNG::STRICT_MODE_DEFAULT = false</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>The default setting for Strict Mode.</p>
<p>The original JTS overlay semantics used non-strict result semantics, including;</p><ul>
<li>An Intersection result can be mixed-dimension, due to inclusion of intersection components of all dimensions</li>
<li>Results can include lines caused by Area topology collapse </li>
</ul>
<p>Definition at line <a class="el" href="OverlayNG_8h_source.html#l00165">165</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="a6e8110f8489231588c03bc60fdff81c2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr int geos::operation::overlayng::OverlayNG::SYMDIFFERENCE = <a class="el" href="classgeos_1_1operation_1_1overlay_1_1OverlayOp.html#a1f2552b975ce852f0b192dc00997b131a05af5ddccedfdb8135c4b6967229254d">overlay::OverlayOp::opSYMDIFFERENCE</a></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>Definition at line <a class="el" href="OverlayNG_8h_source.html#l00170">170</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<a class="anchor" id="a2f97adb6ea20a65cf6e0be1a9ae515ea"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr int geos::operation::overlayng::OverlayNG::UNION = <a class="el" href="classgeos_1_1operation_1_1overlay_1_1OverlayOp.html#a1f2552b975ce852f0b192dc00997b131a0d2c09b2c3433c4944aaa1ee2b3777a6">overlay::OverlayOp::opUNION</a></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>Definition at line <a class="el" href="OverlayNG_8h_source.html#l00168">168</a> of file <a class="el" href="OverlayNG_8h_source.html">OverlayNG.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="OverlayNG_8h_source.html">OverlayNG.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>