geos_390_docs/classgeos_1_1operation_1_1r...

702 lines
35 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::relate::RelateComputer 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_1relate.html">relate</a></li><li class="navelem"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html">RelateComputer</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_1relate_1_1RelateComputer-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::operation::relate::RelateComputer Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Computes the topological relationship between two Geometries.
<a href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="RelateComputer_8h_source.html">RelateComputer.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for geos::operation::relate::RelateComputer:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classgeos_1_1operation_1_1relate_1_1RelateComputer__coll__graph.svg" width="100%" height="466"><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:a92178f89ba59eabe39bbcf128ee2caf6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#a92178f89ba59eabe39bbcf128ee2caf6">RelateComputer</a> (std::vector&lt; <a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a> * &gt; *newArg)</td></tr>
<tr class="separator:a92178f89ba59eabe39bbcf128ee2caf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa132716fe7a4b6c9f0bf8052b2fa14be"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#aa132716fe7a4b6c9f0bf8052b2fa14be">~RelateComputer</a> ()=default</td></tr>
<tr class="separator:aa132716fe7a4b6c9f0bf8052b2fa14be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a318f9f8bb5e273c20277bada6aaefaa8"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1IntersectionMatrix.html">geom::IntersectionMatrix</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#a318f9f8bb5e273c20277bada6aaefaa8">computeIM</a> ()</td></tr>
<tr class="separator:a318f9f8bb5e273c20277bada6aaefaa8"><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:a13fa90d058f0eea82e1bea80087f277e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#a13fa90d058f0eea82e1bea80087f277e">insertEdgeEnds</a> (std::vector&lt; <a class="el" href="classgeos_1_1geomgraph_1_1EdgeEnd.html">geomgraph::EdgeEnd</a> * &gt; *ee)</td></tr>
<tr class="separator:a13fa90d058f0eea82e1bea80087f277e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c9a4dd537caf54ae75ea0531c389ade"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#a7c9a4dd537caf54ae75ea0531c389ade">computeProperIntersectionIM</a> (<a class="el" href="classgeos_1_1geomgraph_1_1index_1_1SegmentIntersector.html">geomgraph::index::SegmentIntersector</a> *intersector, <a class="el" href="classgeos_1_1geom_1_1IntersectionMatrix.html">geom::IntersectionMatrix</a> *imX)</td></tr>
<tr class="separator:a7c9a4dd537caf54ae75ea0531c389ade"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9179f15ef4b94189c2fd8270e501103"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#af9179f15ef4b94189c2fd8270e501103">copyNodesAndLabels</a> (int argIndex)</td></tr>
<tr class="separator:af9179f15ef4b94189c2fd8270e501103"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaba7595139269973693b2df46bd9a03b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#aaba7595139269973693b2df46bd9a03b">computeIntersectionNodes</a> (int argIndex)</td></tr>
<tr class="separator:aaba7595139269973693b2df46bd9a03b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cdbc0cc682cf9b18fd3937523ff7e05"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#a6cdbc0cc682cf9b18fd3937523ff7e05">labelIntersectionNodes</a> (int argIndex)</td></tr>
<tr class="separator:a6cdbc0cc682cf9b18fd3937523ff7e05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4baaee733f4835ea9bd0c5e0fccec3d8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#a4baaee733f4835ea9bd0c5e0fccec3d8">computeDisjointIM</a> (<a class="el" href="classgeos_1_1geom_1_1IntersectionMatrix.html">geom::IntersectionMatrix</a> *imX)</td></tr>
<tr class="separator:a4baaee733f4835ea9bd0c5e0fccec3d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70bcf4221ae5d92e838b092a10cce86b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#a70bcf4221ae5d92e838b092a10cce86b">labelNodeEdges</a> ()</td></tr>
<tr class="separator:a70bcf4221ae5d92e838b092a10cce86b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31b6491261132811a1c6e812ca4a40c9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#a31b6491261132811a1c6e812ca4a40c9">updateIM</a> (<a class="el" href="classgeos_1_1geom_1_1IntersectionMatrix.html">geom::IntersectionMatrix</a> &amp;imX)</td></tr>
<tr class="separator:a31b6491261132811a1c6e812ca4a40c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ef4ecdda2a2d0d1ff0f64dd3c490c80"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#a5ef4ecdda2a2d0d1ff0f64dd3c490c80">labelIsolatedEdges</a> (int thisIndex, int targetIndex)</td></tr>
<tr class="separator:a5ef4ecdda2a2d0d1ff0f64dd3c490c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12b038f7b1f259496985b5d739f52a18"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#a12b038f7b1f259496985b5d739f52a18">labelIsolatedEdge</a> (<a class="el" href="classgeos_1_1geomgraph_1_1Edge.html">geomgraph::Edge</a> *e, int targetIndex, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *target)</td></tr>
<tr class="separator:a12b038f7b1f259496985b5d739f52a18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1309d24fd98e890b777640f21c87da55"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#a1309d24fd98e890b777640f21c87da55">labelIsolatedNodes</a> ()</td></tr>
<tr class="separator:a1309d24fd98e890b777640f21c87da55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a622b93bbab6fe26044dd3483d0d07db7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#a622b93bbab6fe26044dd3483d0d07db7">labelIsolatedNode</a> (<a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a> *n, int targetIndex)</td></tr>
<tr class="separator:a622b93bbab6fe26044dd3483d0d07db7"><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:ab15386c0874ae3d4895564bca3d57eb1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1algorithm_1_1LineIntersector.html">algorithm::LineIntersector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#ab15386c0874ae3d4895564bca3d57eb1">li</a></td></tr>
<tr class="separator:ab15386c0874ae3d4895564bca3d57eb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb5e27f2140641a3763df2921f07e44b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1algorithm_1_1PointLocator.html">algorithm::PointLocator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#adb5e27f2140641a3763df2921f07e44b">ptLocator</a></td></tr>
<tr class="separator:adb5e27f2140641a3763df2921f07e44b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab349765f0ba0ca0b3a8afac9eb631dd"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a> * &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#aab349765f0ba0ca0b3a8afac9eb631dd">arg</a></td></tr>
<tr class="memdesc:aab349765f0ba0ca0b3a8afac9eb631dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">the arg(s) of the operation <a href="#aab349765f0ba0ca0b3a8afac9eb631dd">More...</a><br /></td></tr>
<tr class="separator:aab349765f0ba0ca0b3a8afac9eb631dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0610d6c7601519d3c8090fbb5bab6a61"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geomgraph_1_1NodeMap.html">geomgraph::NodeMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#a0610d6c7601519d3c8090fbb5bab6a61">nodes</a></td></tr>
<tr class="separator:a0610d6c7601519d3c8090fbb5bab6a61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bdfd966e58f7337a0076fdab23a5084"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1IntersectionMatrix.html">geom::IntersectionMatrix</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#a2bdfd966e58f7337a0076fdab23a5084">im</a></td></tr>
<tr class="memdesc:a2bdfd966e58f7337a0076fdab23a5084"><td class="mdescLeft">&#160;</td><td class="mdescRight">this intersection matrix will hold the results compute for the relate <a href="#a2bdfd966e58f7337a0076fdab23a5084">More...</a><br /></td></tr>
<tr class="separator:a2bdfd966e58f7337a0076fdab23a5084"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2472dc3aafb09a4b5d18a432245a7b0c"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classgeos_1_1geomgraph_1_1Edge.html">geomgraph::Edge</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#a2472dc3aafb09a4b5d18a432245a7b0c">isolatedEdges</a></td></tr>
<tr class="separator:a2472dc3aafb09a4b5d18a432245a7b0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51c4928a0baf42f12663c1f9cf45b2df"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html#a51c4928a0baf42f12663c1f9cf45b2df">invalidPoint</a></td></tr>
<tr class="memdesc:a51c4928a0baf42f12663c1f9cf45b2df"><td class="mdescLeft">&#160;</td><td class="mdescRight">the intersection point found (if any) <a href="#a51c4928a0baf42f12663c1f9cf45b2df">More...</a><br /></td></tr>
<tr class="separator:a51c4928a0baf42f12663c1f9cf45b2df"><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 topological relationship between two Geometries. </p>
<p><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html" title="Computes the topological relationship between two Geometries. ">RelateComputer</a> does not need to build a complete graph structure to compute the IntersectionMatrix. The relationship between the geometries can be computed by simply examining the labelling of edges incident on each node.</p>
<p><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateComputer.html" title="Computes the topological relationship between two Geometries. ">RelateComputer</a> does not currently support arbitrary GeometryCollections. This is because GeometryCollections can contain overlapping Polygons. In order to correct compute relate on overlapping Polygons, they would first need to be noded and merged (if not explicitly, at least implicitly). </p>
<p>Definition at line <a class="el" href="RelateComputer_8h_source.html#l00075">75</a> of file <a class="el" href="RelateComputer_8h_source.html">RelateComputer.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a92178f89ba59eabe39bbcf128ee2caf6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">geos::operation::relate::RelateComputer::RelateComputer </td>
<td>(</td>
<td class="paramtype">std::vector&lt; <a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a> * &gt; *&#160;</td>
<td class="paramname"><em>newArg</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa132716fe7a4b6c9f0bf8052b2fa14be"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::operation::relate::RelateComputer::~RelateComputer </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a4baaee733f4835ea9bd0c5e0fccec3d8"></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::relate::RelateComputer::computeDisjointIM </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1IntersectionMatrix.html">geom::IntersectionMatrix</a> *&#160;</td>
<td class="paramname"><em>imX</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>If the Geometries are disjoint, we need to enter their dimension and boundary dimension in the Ext rows in the IM </p>
</div>
</div>
<a class="anchor" id="a318f9f8bb5e273c20277bada6aaefaa8"></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_1IntersectionMatrix.html">geom::IntersectionMatrix</a>&gt; geos::operation::relate::RelateComputer::computeIM </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aaba7595139269973693b2df46bd9a03b"></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::relate::RelateComputer::computeIntersectionNodes </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>argIndex</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="a7c9a4dd537caf54ae75ea0531c389ade"></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::relate::RelateComputer::computeProperIntersectionIM </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geomgraph_1_1index_1_1SegmentIntersector.html">geomgraph::index::SegmentIntersector</a> *&#160;</td>
<td class="paramname"><em>intersector</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1IntersectionMatrix.html">geom::IntersectionMatrix</a> *&#160;</td>
<td class="paramname"><em>imX</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="af9179f15ef4b94189c2fd8270e501103"></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::relate::RelateComputer::copyNodesAndLabels </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>argIndex</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="a13fa90d058f0eea82e1bea80087f277e"></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::relate::RelateComputer::insertEdgeEnds </td>
<td>(</td>
<td class="paramtype">std::vector&lt; <a class="el" href="classgeos_1_1geomgraph_1_1EdgeEnd.html">geomgraph::EdgeEnd</a> * &gt; *&#160;</td>
<td class="paramname"><em>ee</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="a6cdbc0cc682cf9b18fd3937523ff7e05"></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::relate::RelateComputer::labelIntersectionNodes </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>argIndex</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="a12b038f7b1f259496985b5d739f52a18"></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::relate::RelateComputer::labelIsolatedEdge </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geomgraph_1_1Edge.html">geomgraph::Edge</a> *&#160;</td>
<td class="paramname"><em>e</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>targetIndex</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>target</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>Label an isolated edge of a graph with its relationship to the target geometry. If the target has dim 2 or 1, the edge can either be in the interior or the exterior. If the target has dim 0, the edge must be in the exterior </p>
</div>
</div>
<a class="anchor" id="a5ef4ecdda2a2d0d1ff0f64dd3c490c80"></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::relate::RelateComputer::labelIsolatedEdges </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>thisIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>targetIndex</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>Processes isolated edges by computing their labelling and adding them to the isolated edges list. Isolated edges are guaranteed not to touch the boundary of the target (since if they did, they would have caused an intersection to be computed and hence would not be isolated) </p>
</div>
</div>
<a class="anchor" id="a622b93bbab6fe26044dd3483d0d07db7"></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::relate::RelateComputer::labelIsolatedNode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a> *&#160;</td>
<td class="paramname"><em>n</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>targetIndex</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>Label an isolated node with its relationship to the target geometry. </p>
</div>
</div>
<a class="anchor" id="a1309d24fd98e890b777640f21c87da55"></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::relate::RelateComputer::labelIsolatedNodes </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">
<p>Isolated nodes are nodes whose labels are incomplete (e.g. the location for one Geometry is null). This is the case because nodes in one graph which don't intersect nodes in the other are not completely labelled by the initial process of adding nodes to the nodeList. To complete the labelling we need to check for nodes that lie in the interior of edges, and in the interior of areas. </p>
</div>
</div>
<a class="anchor" id="a70bcf4221ae5d92e838b092a10cce86b"></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::relate::RelateComputer::labelNodeEdges </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="a31b6491261132811a1c6e812ca4a40c9"></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::relate::RelateComputer::updateIM </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1IntersectionMatrix.html">geom::IntersectionMatrix</a> &amp;&#160;</td>
<td class="paramname"><em>imX</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>update the IM with the sum of the IMs for each component </p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="aab349765f0ba0ca0b3a8afac9eb631dd"></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;<a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a>*&gt;* geos::operation::relate::RelateComputer::arg</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>the arg(s) of the operation </p>
<p>Definition at line <a class="el" href="RelateComputer_8h_source.html#l00088">88</a> of file <a class="el" href="RelateComputer_8h_source.html">RelateComputer.h</a>.</p>
</div>
</div>
<a class="anchor" id="a2bdfd966e58f7337a0076fdab23a5084"></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_1IntersectionMatrix.html">geom::IntersectionMatrix</a>&gt; geos::operation::relate::RelateComputer::im</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>this intersection matrix will hold the results compute for the relate </p>
<p>Definition at line <a class="el" href="RelateComputer_8h_source.html#l00093">93</a> of file <a class="el" href="RelateComputer_8h_source.html">RelateComputer.h</a>.</p>
</div>
</div>
<a class="anchor" id="a51c4928a0baf42f12663c1f9cf45b2df"></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_1Coordinate.html">geom::Coordinate</a> geos::operation::relate::RelateComputer::invalidPoint</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>the intersection point found (if any) </p>
<p>Definition at line <a class="el" href="RelateComputer_8h_source.html#l00098">98</a> of file <a class="el" href="RelateComputer_8h_source.html">RelateComputer.h</a>.</p>
</div>
</div>
<a class="anchor" id="a2472dc3aafb09a4b5d18a432245a7b0c"></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;<a class="el" href="classgeos_1_1geomgraph_1_1Edge.html">geomgraph::Edge</a>*&gt; geos::operation::relate::RelateComputer::isolatedEdges</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="RelateComputer_8h_source.html#l00095">95</a> of file <a class="el" href="RelateComputer_8h_source.html">RelateComputer.h</a>.</p>
</div>
</div>
<a class="anchor" id="ab15386c0874ae3d4895564bca3d57eb1"></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_1algorithm_1_1LineIntersector.html">algorithm::LineIntersector</a> geos::operation::relate::RelateComputer::li</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="RelateComputer_8h_source.html#l00083">83</a> of file <a class="el" href="RelateComputer_8h_source.html">RelateComputer.h</a>.</p>
</div>
</div>
<a class="anchor" id="a0610d6c7601519d3c8090fbb5bab6a61"></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_1geomgraph_1_1NodeMap.html">geomgraph::NodeMap</a> geos::operation::relate::RelateComputer::nodes</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="RelateComputer_8h_source.html#l00090">90</a> of file <a class="el" href="RelateComputer_8h_source.html">RelateComputer.h</a>.</p>
</div>
</div>
<a class="anchor" id="adb5e27f2140641a3763df2921f07e44b"></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_1algorithm_1_1PointLocator.html">algorithm::PointLocator</a> geos::operation::relate::RelateComputer::ptLocator</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="RelateComputer_8h_source.html#l00085">85</a> of file <a class="el" href="RelateComputer_8h_source.html">RelateComputer.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="RelateComputer_8h_source.html">RelateComputer.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>