geos_390_docs/classgeos_1_1operation_1_1o...

421 lines
22 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::IntersectionPointBuilder 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_1IntersectionPointBuilder.html">IntersectionPointBuilder</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classgeos_1_1operation_1_1overlayng_1_1IntersectionPointBuilder-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::operation::overlayng::IntersectionPointBuilder Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="IntersectionPointBuilder_8h_source.html">IntersectionPointBuilder.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for geos::operation::overlayng::IntersectionPointBuilder:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1operation_1_1overlayng_1_1IntersectionPointBuilder__coll__graph.svg" width="559" height="271"><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:ae4943b6ffefde07c507c2109d886871a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1IntersectionPointBuilder.html#ae4943b6ffefde07c507c2109d886871a">IntersectionPointBuilder</a> (<a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayGraph.html">OverlayGraph</a> *p_graph, const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> *geomFact)</td></tr>
<tr class="separator:ae4943b6ffefde07c507c2109d886871a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a199864c1f5c005a1219059bdfc5ede56"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Point.html">geom::Point</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1IntersectionPointBuilder.html#a199864c1f5c005a1219059bdfc5ede56">getPoints</a> ()</td></tr>
<tr class="separator:a199864c1f5c005a1219059bdfc5ede56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34bb92a1556ede125a12462ad6f29851"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1IntersectionPointBuilder.html#a34bb92a1556ede125a12462ad6f29851">IntersectionPointBuilder</a> (const <a class="el" href="classgeos_1_1operation_1_1overlayng_1_1IntersectionPointBuilder.html">IntersectionPointBuilder</a> &amp;)=delete</td></tr>
<tr class="separator:a34bb92a1556ede125a12462ad6f29851"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f600fc3cd59b408b4ec5662f8f8f190"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1IntersectionPointBuilder.html">IntersectionPointBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1IntersectionPointBuilder.html#a5f600fc3cd59b408b4ec5662f8f8f190">operator=</a> (const <a class="el" href="classgeos_1_1operation_1_1overlayng_1_1IntersectionPointBuilder.html">IntersectionPointBuilder</a> &amp;)=delete</td></tr>
<tr class="separator:a5f600fc3cd59b408b4ec5662f8f8f190"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfff56ddbb5fd2bb5feadfc933956e30"><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_1IntersectionPointBuilder.html#adfff56ddbb5fd2bb5feadfc933956e30">setStrictMode</a> (bool p_isStrictMode)</td></tr>
<tr class="separator:adfff56ddbb5fd2bb5feadfc933956e30"><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:a74f7681f7e742cb1986df36149be1609"><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_1IntersectionPointBuilder.html#a74f7681f7e742cb1986df36149be1609">addResultPoints</a> ()</td></tr>
<tr class="separator:a74f7681f7e742cb1986df36149be1609"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6eb356834b258a1054c6c6347dddce0a"><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_1IntersectionPointBuilder.html#a6eb356834b258a1054c6c6347dddce0a">isResultPoint</a> (<a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayEdge.html">OverlayEdge</a> *nodeEdge) const </td></tr>
<tr class="separator:a6eb356834b258a1054c6c6347dddce0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90b32d14bd01dc956303ed0081861cb8"><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_1IntersectionPointBuilder.html#a90b32d14bd01dc956303ed0081861cb8">isEdgeOf</a> (const <a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayLabel.html">OverlayLabel</a> *label, int i) const </td></tr>
<tr class="separator:a90b32d14bd01dc956303ed0081861cb8"><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:a72114e8a5a85cc6a4eb4ee0fb2c3fce7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayGraph.html">OverlayGraph</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1IntersectionPointBuilder.html#a72114e8a5a85cc6a4eb4ee0fb2c3fce7">graph</a></td></tr>
<tr class="separator:a72114e8a5a85cc6a4eb4ee0fb2c3fce7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ee579355f1467dfee9fd948cde7bdfa"><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_1IntersectionPointBuilder.html#a3ee579355f1467dfee9fd948cde7bdfa">geometryFactory</a></td></tr>
<tr class="separator:a3ee579355f1467dfee9fd948cde7bdfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b302578a7f9c6ea9dd9c526bc508a99"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Point.html">geom::Point</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1IntersectionPointBuilder.html#a6b302578a7f9c6ea9dd9c526bc508a99">points</a></td></tr>
<tr class="separator:a6b302578a7f9c6ea9dd9c526bc508a99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20d15b3b6717dd96dd40f707a3900ed2"><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_1IntersectionPointBuilder.html#a20d15b3b6717dd96dd40f707a3900ed2">isAllowCollapseLines</a></td></tr>
<tr class="separator:a20d15b3b6717dd96dd40f707a3900ed2"><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>Extracts Point resultants from an overlay graph created by an Intersection operation between non-Point inputs. Points may be created during intersection if lines or areas touch one another at single points. Intersection is the only overlay operation which can result in Points from non-Point inputs. </p>
<p>Overlay operations where one or more inputs are Points are handled via a different code path.</p>
<dl class="section author"><dt>Author</dt><dd>Martin Davis</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayPoints.html">OverlayPoints</a> </dd></dl>
<p>Definition at line <a class="el" href="IntersectionPointBuilder_8h_source.html#l00060">60</a> of file <a class="el" href="IntersectionPointBuilder_8h_source.html">IntersectionPointBuilder.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ae4943b6ffefde07c507c2109d886871a"></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::IntersectionPointBuilder::IntersectionPointBuilder </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>p_graph</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>geomFact</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="IntersectionPointBuilder_8h_source.html#l00090">90</a> of file <a class="el" href="IntersectionPointBuilder_8h_source.html">IntersectionPointBuilder.h</a>.</p>
</div>
</div>
<a class="anchor" id="a34bb92a1556ede125a12462ad6f29851"></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::IntersectionPointBuilder::IntersectionPointBuilder </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1operation_1_1overlayng_1_1IntersectionPointBuilder.html">IntersectionPointBuilder</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a74f7681f7e742cb1986df36149be1609"></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::IntersectionPointBuilder::addResultPoints </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="a199864c1f5c005a1219059bdfc5ede56"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Point.html">geom::Point</a>&gt; &gt; geos::operation::overlayng::IntersectionPointBuilder::getPoints </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a90b32d14bd01dc956303ed0081861cb8"></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::IntersectionPointBuilder::isEdgeOf </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>i</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</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="a6eb356834b258a1054c6c6347dddce0a"></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::IntersectionPointBuilder::isResultPoint </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1operation_1_1overlayng_1_1OverlayEdge.html">OverlayEdge</a> *&#160;</td>
<td class="paramname"><em>nodeEdge</em></td><td>)</td>
<td> const</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>Tests if a node is a result point. This is the case if the node is incident on edges from both inputs, and none of the edges are themselves in the result. </p>
</div>
</div>
<a class="anchor" id="a5f600fc3cd59b408b4ec5662f8f8f190"></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_1IntersectionPointBuilder.html">IntersectionPointBuilder</a>&amp; geos::operation::overlayng::IntersectionPointBuilder::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1operation_1_1overlayng_1_1IntersectionPointBuilder.html">IntersectionPointBuilder</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="adfff56ddbb5fd2bb5feadfc933956e30"></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::IntersectionPointBuilder::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="IntersectionPointBuilder_8h_source.html#l00101">101</a> of file <a class="el" href="IntersectionPointBuilder_8h_source.html">IntersectionPointBuilder.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a3ee579355f1467dfee9fd948cde7bdfa"></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::IntersectionPointBuilder::geometryFactory</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="IntersectionPointBuilder_8h_source.html#l00066">66</a> of file <a class="el" href="IntersectionPointBuilder_8h_source.html">IntersectionPointBuilder.h</a>.</p>
</div>
</div>
<a class="anchor" id="a72114e8a5a85cc6a4eb4ee0fb2c3fce7"></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_1OverlayGraph.html">OverlayGraph</a>* geos::operation::overlayng::IntersectionPointBuilder::graph</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="IntersectionPointBuilder_8h_source.html#l00065">65</a> of file <a class="el" href="IntersectionPointBuilder_8h_source.html">IntersectionPointBuilder.h</a>.</p>
</div>
</div>
<a class="anchor" id="a20d15b3b6717dd96dd40f707a3900ed2"></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::IntersectionPointBuilder::isAllowCollapseLines</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>Controls whether lines created by area topology collapses to participate in the result computation. True provides the original JTS semantics. </p>
<p>Definition at line <a class="el" href="IntersectionPointBuilder_8h_source.html#l00073">73</a> of file <a class="el" href="IntersectionPointBuilder_8h_source.html">IntersectionPointBuilder.h</a>.</p>
</div>
</div>
<a class="anchor" id="a6b302578a7f9c6ea9dd9c526bc508a99"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Point.html">geom::Point</a>&gt; &gt; geos::operation::overlayng::IntersectionPointBuilder::points</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="IntersectionPointBuilder_8h_source.html#l00067">67</a> of file <a class="el" href="IntersectionPointBuilder_8h_source.html">IntersectionPointBuilder.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="IntersectionPointBuilder_8h_source.html">IntersectionPointBuilder.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>