geos_390_docs/classgeos_1_1operation_1_1g...

709 lines
36 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::geounion::CascadedUnion 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_1geounion.html">geounion</a></li><li class="navelem"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1CascadedUnion.html">CascadedUnion</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-static-methods">Static Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#pri-static-attribs">Static Private Attributes</a> &#124;
<a href="classgeos_1_1operation_1_1geounion_1_1CascadedUnion-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::operation::geounion::CascadedUnion Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Provides an efficient method of unioning a collection of Geometries.
<a href="classgeos_1_1operation_1_1geounion_1_1CascadedUnion.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="CascadedUnion_8h_source.html">CascadedUnion.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for geos::operation::geounion::CascadedUnion:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1operation_1_1geounion_1_1CascadedUnion__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:ab3938bac40f60c4369ccbf0594fa62e3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1CascadedUnion.html#ab3938bac40f60c4369ccbf0594fa62e3">CascadedUnion</a> ()</td></tr>
<tr class="separator:ab3938bac40f60c4369ccbf0594fa62e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7590b6ba8a1a171032c033412dc19cdd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1CascadedUnion.html#a7590b6ba8a1a171032c033412dc19cdd">CascadedUnion</a> (const std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> * &gt; *geoms)</td></tr>
<tr class="separator:a7590b6ba8a1a171032c033412dc19cdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8058e358dca7c9289e800e162c312d57"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1CascadedUnion.html#a8058e358dca7c9289e800e162c312d57">Union</a> ()</td></tr>
<tr class="separator:a8058e358dca7c9289e800e162c312d57"><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:ad9f3b921425624321873128963995740"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1CascadedUnion.html#ad9f3b921425624321873128963995740">Union</a> (std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> * &gt; *geoms)</td></tr>
<tr class="separator:ad9f3b921425624321873128963995740"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a077ba2d66f993b50dcd3b8e93f204266"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a077ba2d66f993b50dcd3b8e93f204266"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1CascadedUnion.html#a077ba2d66f993b50dcd3b8e93f204266">Union</a> (T start, T end)</td></tr>
<tr class="separator:a077ba2d66f993b50dcd3b8e93f204266"><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:a7b81345c7096c5e641c791c1a047f8ce"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1CascadedUnion.html#a7b81345c7096c5e641c791c1a047f8ce">unionTree</a> (<a class="el" href="classgeos_1_1index_1_1strtree_1_1ItemsList.html">index::strtree::ItemsList</a> *geomTree)</td></tr>
<tr class="separator:a7b81345c7096c5e641c791c1a047f8ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa07b5881edbfbdc23b86ad8214096c46"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1CascadedUnion.html#aa07b5881edbfbdc23b86ad8214096c46">binaryUnion</a> (<a class="el" href="classgeos_1_1operation_1_1geounion_1_1GeometryListHolder.html">GeometryListHolder</a> *geoms)</td></tr>
<tr class="separator:aa07b5881edbfbdc23b86ad8214096c46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a966e0b1d1ce6c3ce44a1618311653b16"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1CascadedUnion.html#a966e0b1d1ce6c3ce44a1618311653b16">binaryUnion</a> (<a class="el" href="classgeos_1_1operation_1_1geounion_1_1GeometryListHolder.html">GeometryListHolder</a> *geoms, std::size_t start, std::size_t end)</td></tr>
<tr class="separator:a966e0b1d1ce6c3ce44a1618311653b16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af47481d277baf6fc51bf6b2a44a2c944"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1GeometryListHolder.html">GeometryListHolder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1CascadedUnion.html#af47481d277baf6fc51bf6b2a44a2c944">reduceToGeometries</a> (<a class="el" href="classgeos_1_1index_1_1strtree_1_1ItemsList.html">index::strtree::ItemsList</a> *geomTree)</td></tr>
<tr class="separator:af47481d277baf6fc51bf6b2a44a2c944"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa69292693a48aa894c1504df2081e8be"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1CascadedUnion.html#aa69292693a48aa894c1504df2081e8be">unionSafe</a> (<a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *g0, <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *g1)</td></tr>
<tr class="separator:aa69292693a48aa894c1504df2081e8be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2612a7899ff30c8dd73d8414f02cbc9e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1CascadedUnion.html#a2612a7899ff30c8dd73d8414f02cbc9e">unionOptimized</a> (<a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *g0, <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *g1)</td></tr>
<tr class="separator:a2612a7899ff30c8dd73d8414f02cbc9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5994c8a151e38871f4c8c9a00ced6231"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1CascadedUnion.html#a5994c8a151e38871f4c8c9a00ced6231">unionUsingEnvelopeIntersection</a> (<a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *g0, <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *g1, <a class="el" href="classgeos_1_1geom_1_1Envelope.html">geom::Envelope</a> const &amp;common)</td></tr>
<tr class="separator:a5994c8a151e38871f4c8c9a00ced6231"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24fb509f3a91201dc4888cffe8a99b4d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1CascadedUnion.html#a24fb509f3a91201dc4888cffe8a99b4d">extractByEnvelope</a> (<a class="el" href="classgeos_1_1geom_1_1Envelope.html">geom::Envelope</a> const &amp;env, <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *geom, std::vector&lt; const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> * &gt; &amp;disjointGeoms)</td></tr>
<tr class="separator:a24fb509f3a91201dc4888cffe8a99b4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-methods"></a>
Static Private Member Functions</h2></td></tr>
<tr class="memitem:ab7d53282ab4a6393dab819ba9bd0de91"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1CascadedUnion.html#ab7d53282ab4a6393dab819ba9bd0de91">unionActual</a> (<a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *g0, <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *g1)</td></tr>
<tr class="separator:ab7d53282ab4a6393dab819ba9bd0de91"><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:ab9399326c1050253210a36490c343441"><td class="memItemLeft" align="right" valign="top">const std::vector&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_1geounion_1_1CascadedUnion.html#ab9399326c1050253210a36490c343441">inputGeoms</a></td></tr>
<tr class="separator:ab9399326c1050253210a36490c343441"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8530dd3646ebaebfffa796e7181b787f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1CascadedUnion.html#a8530dd3646ebaebfffa796e7181b787f">geomFactory</a></td></tr>
<tr class="separator:a8530dd3646ebaebfffa796e7181b787f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-attribs"></a>
Static Private Attributes</h2></td></tr>
<tr class="memitem:a0802d1d20579a4ae0c0d00866f92c0e2"><td class="memItemLeft" align="right" valign="top">static int const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1CascadedUnion.html#a0802d1d20579a4ae0c0d00866f92c0e2">STRTREE_NODE_CAPACITY</a> = 4</td></tr>
<tr class="separator:a0802d1d20579a4ae0c0d00866f92c0e2"><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>Provides an efficient method of unioning a collection of Geometries. </p>
<p>This algorithm is more robust than the simple iterated approach of repeatedly unioning each geometry to a result geometry. </p>
<p>Definition at line <a class="el" href="CascadedUnion_8h_source.html#l00055">55</a> of file <a class="el" href="CascadedUnion_8h_source.html">CascadedUnion.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ab3938bac40f60c4369ccbf0594fa62e3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">geos::operation::geounion::CascadedUnion::CascadedUnion </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7590b6ba8a1a171032c033412dc19cdd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::operation::geounion::CascadedUnion::CascadedUnion </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> * &gt; *&#160;</td>
<td class="paramname"><em>geoms</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a new instance to union the given collection of <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>s.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geoms</td><td>a collection of <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>s. Ownership of elements <em>and</em> vector are left to caller. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="CascadedUnion_8h_source.html#l00106">106</a> of file <a class="el" href="CascadedUnion_8h_source.html">CascadedUnion.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="aa07b5881edbfbdc23b86ad8214096c46"></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_1Geometry.html">geom::Geometry</a>* geos::operation::geounion::CascadedUnion::binaryUnion </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1GeometryListHolder.html">GeometryListHolder</a> *&#160;</td>
<td class="paramname"><em>geoms</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Unions a list of geometries by treating the list as a flattened binary tree, and performing a cascaded union on the tree. </p>
</div>
</div>
<a class="anchor" id="a966e0b1d1ce6c3ce44a1618311653b16"></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_1Geometry.html">geom::Geometry</a>* geos::operation::geounion::CascadedUnion::binaryUnion </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1operation_1_1geounion_1_1GeometryListHolder.html">GeometryListHolder</a> *&#160;</td>
<td class="paramname"><em>geoms</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::size_t&#160;</td>
<td class="paramname"><em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::size_t&#160;</td>
<td class="paramname"><em>end</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>Unions a section of a list using a recursive binary union on each half of the section.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geoms</td><td></td></tr>
<tr><td class="paramname">start</td><td></td></tr>
<tr><td class="paramname">end</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the union of the list section </dd></dl>
</div>
</div>
<a class="anchor" id="a24fb509f3a91201dc4888cffe8a99b4d"></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_1Geometry.html">geom::Geometry</a>* geos::operation::geounion::CascadedUnion::extractByEnvelope </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1Envelope.html">geom::Envelope</a> const &amp;&#160;</td>
<td class="paramname"><em>env</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td>
<td class="paramname"><em>geom</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>disjointGeoms</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="af47481d277baf6fc51bf6b2a44a2c944"></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_1geounion_1_1GeometryListHolder.html">GeometryListHolder</a>* geos::operation::geounion::CascadedUnion::reduceToGeometries </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1index_1_1strtree_1_1ItemsList.html">index::strtree::ItemsList</a> *&#160;</td>
<td class="paramname"><em>geomTree</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reduces a tree of geometries to a list of geometries by recursively unioning the subtrees in the list.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geomTree</td><td>a tree-structured list of geometries </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a list of Geometrys </dd></dl>
</div>
</div>
<a class="anchor" id="ad9f3b921425624321873128963995740"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>* geos::operation::geounion::CascadedUnion::Union </td>
<td>(</td>
<td class="paramtype">std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> * &gt; *&#160;</td>
<td class="paramname"><em>geoms</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the union of a collection of <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>s.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geoms</td><td>a collection of <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>s. ownership of elements <em>and</em> vector are left to caller. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a077ba2d66f993b50dcd3b8e93f204266"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>* geos::operation::geounion::CascadedUnion::Union </td>
<td>(</td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T&#160;</td>
<td class="paramname"><em>end</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>Computes the union of a set of <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>s.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">T</td><td>an iterator yelding something castable to const Geometry * </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">start</td><td>start iterator </td></tr>
<tr><td class="paramname">end</td><td>end iterator </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="CascadedUnion_8h_source.html#l00089">89</a> of file <a class="el" href="CascadedUnion_8h_source.html">CascadedUnion.h</a>.</p>
</div>
</div>
<a class="anchor" id="a8058e358dca7c9289e800e162c312d57"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>* geos::operation::geounion::CascadedUnion::Union </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the union of the input geometries.</p>
<dl class="section return"><dt>Returns</dt><dd>the union of the input geometries </dd>
<dd>
null if no input geometries were provided </dd></dl>
</div>
</div>
<a class="anchor" id="ab7d53282ab4a6393dab819ba9bd0de91"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>* geos::operation::geounion::CascadedUnion::unionActual </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td>
<td class="paramname"><em>g0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td>
<td class="paramname"><em>g1</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 class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Encapsulates the actual unioning of two polygonal geometries.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">g0</td><td></td></tr>
<tr><td class="paramname">g1</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>
</div>
</div>
<a class="anchor" id="a2612a7899ff30c8dd73d8414f02cbc9e"></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_1Geometry.html">geom::Geometry</a>* geos::operation::geounion::CascadedUnion::unionOptimized </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td>
<td class="paramname"><em>g0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td>
<td class="paramname"><em>g1</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="aa69292693a48aa894c1504df2081e8be"></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_1Geometry.html">geom::Geometry</a>* geos::operation::geounion::CascadedUnion::unionSafe </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td>
<td class="paramname"><em>g0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td>
<td class="paramname"><em>g1</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>Computes the union of two geometries, either of both of which may be null.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">g0</td><td>a Geometry </td></tr>
<tr><td class="paramname">g1</td><td>a Geometry </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the union of the input(s) </dd>
<dd>
null if both inputs are null </dd></dl>
</div>
</div>
<a class="anchor" id="a7b81345c7096c5e641c791c1a047f8ce"></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_1Geometry.html">geom::Geometry</a>* geos::operation::geounion::CascadedUnion::unionTree </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1index_1_1strtree_1_1ItemsList.html">index::strtree::ItemsList</a> *&#160;</td>
<td class="paramname"><em>geomTree</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="a5994c8a151e38871f4c8c9a00ced6231"></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_1Geometry.html">geom::Geometry</a>* geos::operation::geounion::CascadedUnion::unionUsingEnvelopeIntersection </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td>
<td class="paramname"><em>g0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td>
<td class="paramname"><em>g1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1Envelope.html">geom::Envelope</a> const &amp;&#160;</td>
<td class="paramname"><em>common</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>Unions two geometries. The case of multi geometries is optimized to union only the components which lie in the intersection of the two geometry's envelopes. Geometrys outside this region can simply be combined with the union result, which is potentially much faster. This case is likely to occur often during cascaded union, and may also occur in real world data (such as unioning data for parcels on different street blocks).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">g0</td><td>a geometry </td></tr>
<tr><td class="paramname">g1</td><td>a geometry </td></tr>
<tr><td class="paramname">common</td><td>the intersection of the envelopes of the inputs </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the union of the inputs </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a8530dd3646ebaebfffa796e7181b787f"></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">geom::GeometryFactory</a> const* geos::operation::geounion::CascadedUnion::geomFactory</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="CascadedUnion_8h_source.html#l00058">58</a> of file <a class="el" href="CascadedUnion_8h_source.html">CascadedUnion.h</a>.</p>
</div>
</div>
<a class="anchor" id="ab9399326c1050253210a36490c343441"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const std::vector&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>*&gt;* geos::operation::geounion::CascadedUnion::inputGeoms</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="CascadedUnion_8h_source.html#l00057">57</a> of file <a class="el" href="CascadedUnion_8h_source.html">CascadedUnion.h</a>.</p>
</div>
</div>
<a class="anchor" id="a0802d1d20579a4ae0c0d00866f92c0e2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int const geos::operation::geounion::CascadedUnion::STRTREE_NODE_CAPACITY = 4</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The effectiveness of the index is somewhat sensitive to the node capacity. Testing indicates that a smaller capacity is better. For an STRtree, 4 is probably a good number (since this produces 2x2 "squares"). </p>
<p>Definition at line <a class="el" href="CascadedUnion_8h_source.html#l00067">67</a> of file <a class="el" href="CascadedUnion_8h_source.html">CascadedUnion.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="CascadedUnion_8h_source.html">CascadedUnion.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>