geos_390_docs/classgeos_1_1operation_1_1r...

330 lines
18 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::RelateNodeGraph 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_1RelateNodeGraph.html">RelateNodeGraph</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_1RelateNodeGraph-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::operation::relate::RelateNodeGraph Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Implements the simple graph of Nodes and <a class="el" href="classgeos_1_1geomgraph_1_1EdgeEnd.html" title="Models the end of an edge incident on a node. ">geomgraph::EdgeEnd</a> which is all that is required to determine topological relationships between Geometries.
<a href="classgeos_1_1operation_1_1relate_1_1RelateNodeGraph.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="RelateNodeGraph_8h_source.html">RelateNodeGraph.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for geos::operation::relate::RelateNodeGraph:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1operation_1_1relate_1_1RelateNodeGraph__coll__graph.svg" width="236" height="239"><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:a95cf75324db28a71f961450396cf6abc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateNodeGraph.html#a95cf75324db28a71f961450396cf6abc">RelateNodeGraph</a> ()</td></tr>
<tr class="separator:a95cf75324db28a71f961450396cf6abc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09aba222f9731924dcecacb3a1a6286f"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateNodeGraph.html#a09aba222f9731924dcecacb3a1a6286f">~RelateNodeGraph</a> ()</td></tr>
<tr class="separator:a09aba222f9731924dcecacb3a1a6286f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcadb4ea25293288c13371cc437d65f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geomgraph_1_1NodeMap.html#abd76383b7933efeb93d92a27a3ff4d4f">geomgraph::NodeMap::container</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateNodeGraph.html#adcadb4ea25293288c13371cc437d65f0">getNodeMap</a> ()</td></tr>
<tr class="separator:adcadb4ea25293288c13371cc437d65f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6a69586146f29fb17cbd3d94c2886be"><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_1RelateNodeGraph.html#aa6a69586146f29fb17cbd3d94c2886be">build</a> (<a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a> *geomGraph)</td></tr>
<tr class="separator:aa6a69586146f29fb17cbd3d94c2886be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b49aa9178662f018d838548e796446d"><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_1RelateNodeGraph.html#a8b49aa9178662f018d838548e796446d">computeIntersectionNodes</a> (<a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a> *geomGraph, int argIndex)</td></tr>
<tr class="separator:a8b49aa9178662f018d838548e796446d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8a93f367fd88ef2d2720ec277a1dea3"><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_1RelateNodeGraph.html#ac8a93f367fd88ef2d2720ec277a1dea3">copyNodesAndLabels</a> (<a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a> *geomGraph, int argIndex)</td></tr>
<tr class="separator:ac8a93f367fd88ef2d2720ec277a1dea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad104e842efb0a4ecfa35b36de529631f"><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_1RelateNodeGraph.html#ad104e842efb0a4ecfa35b36de529631f">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:ad104e842efb0a4ecfa35b36de529631f"><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:aa24f1efe069e0269f916a299de24b85f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateNodeGraph.html#aa24f1efe069e0269f916a299de24b85f">RelateNodeGraph</a> (const <a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateNodeGraph.html">RelateNodeGraph</a> &amp;)=delete</td></tr>
<tr class="separator:aa24f1efe069e0269f916a299de24b85f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86cd1a712051b970b4bb42e76b096346"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateNodeGraph.html">RelateNodeGraph</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateNodeGraph.html#a86cd1a712051b970b4bb42e76b096346">operator=</a> (const <a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateNodeGraph.html">RelateNodeGraph</a> &amp;)=delete</td></tr>
<tr class="separator:a86cd1a712051b970b4bb42e76b096346"><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:aae2fc0ced4ce253e898d678f60e0c831"><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_1RelateNodeGraph.html#aae2fc0ced4ce253e898d678f60e0c831">nodes</a></td></tr>
<tr class="separator:aae2fc0ced4ce253e898d678f60e0c831"><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>Implements the simple graph of Nodes and <a class="el" href="classgeos_1_1geomgraph_1_1EdgeEnd.html" title="Models the end of an edge incident on a node. ">geomgraph::EdgeEnd</a> which is all that is required to determine topological relationships between Geometries. </p>
<p>Also supports building a topological graph of a single Geometry, to allow verification of valid topology.</p>
<p>It is <b>not</b> necessary to create a fully linked PlanarGraph to determine relationships, since it is sufficient to know how the Geometries interact locally around the nodes. In fact, this is not even feasible, since it is not possible to compute exact intersection points, and hence the topology around those nodes cannot be computed robustly. The only Nodes that are created are for improper intersections; that is, nodes which occur at existing vertices of the Geometries. Proper intersections (e.g. ones which occur between the interior of line segments) have their topology determined implicitly, without creating a <a class="el" href="classgeos_1_1geomgraph_1_1Node.html" title="The node component of a geometry graph. ">geomgraph::Node</a> object to represent them. </p>
<p>Definition at line <a class="el" href="RelateNodeGraph_8h_source.html#l00068">68</a> of file <a class="el" href="RelateNodeGraph_8h_source.html">RelateNodeGraph.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a95cf75324db28a71f961450396cf6abc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">geos::operation::relate::RelateNodeGraph::RelateNodeGraph </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a09aba222f9731924dcecacb3a1a6286f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual geos::operation::relate::RelateNodeGraph::~RelateNodeGraph </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa24f1efe069e0269f916a299de24b85f"></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::RelateNodeGraph::RelateNodeGraph </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateNodeGraph.html">RelateNodeGraph</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">private</span><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="aa6a69586146f29fb17cbd3d94c2886be"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::operation::relate::RelateNodeGraph::build </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a> *&#160;</td>
<td class="paramname"><em>geomGraph</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8b49aa9178662f018d838548e796446d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::operation::relate::RelateNodeGraph::computeIntersectionNodes </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a> *&#160;</td>
<td class="paramname"><em>geomGraph</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>argIndex</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ac8a93f367fd88ef2d2720ec277a1dea3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::operation::relate::RelateNodeGraph::copyNodesAndLabels </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a> *&#160;</td>
<td class="paramname"><em>geomGraph</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>argIndex</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="adcadb4ea25293288c13371cc437d65f0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1geomgraph_1_1NodeMap.html#abd76383b7933efeb93d92a27a3ff4d4f">geomgraph::NodeMap::container</a>&amp; geos::operation::relate::RelateNodeGraph::getNodeMap </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad104e842efb0a4ecfa35b36de529631f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::operation::relate::RelateNodeGraph::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>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a86cd1a712051b970b4bb42e76b096346"></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_1relate_1_1RelateNodeGraph.html">RelateNodeGraph</a>&amp; geos::operation::relate::RelateNodeGraph::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1operation_1_1relate_1_1RelateNodeGraph.html">RelateNodeGraph</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">private</span><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="aae2fc0ced4ce253e898d678f60e0c831"></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::RelateNodeGraph::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="RelateNodeGraph_8h_source.html#l00089">89</a> of file <a class="el" href="RelateNodeGraph_8h_source.html">RelateNodeGraph.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="RelateNodeGraph_8h_source.html">RelateNodeGraph.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>