geos_390_docs/classgeos_1_1operation_1_1p...

270 lines
14 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::predicate::SegmentIntersectionTester 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_1predicate.html">predicate</a></li><li class="navelem"><a class="el" href="classgeos_1_1operation_1_1predicate_1_1SegmentIntersectionTester.html">SegmentIntersectionTester</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classgeos_1_1operation_1_1predicate_1_1SegmentIntersectionTester-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::operation::predicate::SegmentIntersectionTester Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Tests if any line segments in two sets of CoordinateSequences intersect.
<a href="classgeos_1_1operation_1_1predicate_1_1SegmentIntersectionTester.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="SegmentIntersectionTester_8h_source.html">SegmentIntersectionTester.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for geos::operation::predicate::SegmentIntersectionTester:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1operation_1_1predicate_1_1SegmentIntersectionTester__coll__graph.svg" width="512" 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:abd3f722188e7232d5f7766df405639d9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1predicate_1_1SegmentIntersectionTester.html#abd3f722188e7232d5f7766df405639d9">SegmentIntersectionTester</a> ()</td></tr>
<tr class="separator:abd3f722188e7232d5f7766df405639d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a558b77aa9a0834e23ceec77cb845580f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1predicate_1_1SegmentIntersectionTester.html#a558b77aa9a0834e23ceec77cb845580f">hasIntersectionWithLineStrings</a> (const <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> &amp;line, const std::vector&lt; const <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> * &gt; &amp;lines)</td></tr>
<tr class="separator:a558b77aa9a0834e23ceec77cb845580f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6f45156d4052c2a58cd72b454c5c37e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1predicate_1_1SegmentIntersectionTester.html#ad6f45156d4052c2a58cd72b454c5c37e">hasIntersection</a> (const <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> &amp;line, const <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> &amp;testLine)</td></tr>
<tr class="separator:ad6f45156d4052c2a58cd72b454c5c37e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb2a4b93b9c6054c1257c3e6f215fcaf"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1predicate_1_1SegmentIntersectionTester.html#abb2a4b93b9c6054c1257c3e6f215fcaf">hasIntersectionWithEnvelopeFilter</a> (const <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> &amp;line, const <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> &amp;testLine)</td></tr>
<tr class="separator:abb2a4b93b9c6054c1257c3e6f215fcaf"><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:a6be42ec83b0c6c6b4778cec81f5b4719"><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_1predicate_1_1SegmentIntersectionTester.html#a6be42ec83b0c6c6b4778cec81f5b4719">li</a></td></tr>
<tr class="memdesc:a6be42ec83b0c6c6b4778cec81f5b4719"><td class="mdescLeft">&#160;</td><td class="mdescRight">For purposes of intersection testing, don't need to set precision model. <a href="#a6be42ec83b0c6c6b4778cec81f5b4719">More...</a><br /></td></tr>
<tr class="separator:a6be42ec83b0c6c6b4778cec81f5b4719"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38bbf7f4574a5c6df8a6ab5f24f42568"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1predicate_1_1SegmentIntersectionTester.html#a38bbf7f4574a5c6df8a6ab5f24f42568">hasIntersectionVar</a></td></tr>
<tr class="separator:a38bbf7f4574a5c6df8a6ab5f24f42568"><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>Tests if any line segments in two sets of CoordinateSequences intersect. </p>
<p>The algorithm is optimized for use when the first input has smaller extent than the set of test lines. The code is short-circuited to return as soon an intersection is found. </p>
<p>Definition at line <a class="el" href="SegmentIntersectionTester_8h_source.html#l00048">48</a> of file <a class="el" href="SegmentIntersectionTester_8h_source.html">SegmentIntersectionTester.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="abd3f722188e7232d5f7766df405639d9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::operation::predicate::SegmentIntersectionTester::SegmentIntersectionTester </td>
<td>(</td>
<td class="paramname"></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="SegmentIntersectionTester_8h_source.html#l00062">62</a> of file <a class="el" href="SegmentIntersectionTester_8h_source.html">SegmentIntersectionTester.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ad6f45156d4052c2a58cd72b454c5c37e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool geos::operation::predicate::SegmentIntersectionTester::hasIntersection </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> &amp;&#160;</td>
<td class="paramname"><em>line</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> &amp;&#160;</td>
<td class="paramname"><em>testLine</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="abb2a4b93b9c6054c1257c3e6f215fcaf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool geos::operation::predicate::SegmentIntersectionTester::hasIntersectionWithEnvelopeFilter </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> &amp;&#160;</td>
<td class="paramname"><em>line</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> &amp;&#160;</td>
<td class="paramname"><em>testLine</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Tests the segments of a LineString against the segs in another LineString for intersection. Uses the envelope of the query LineString to filter before testing segments directly. This is optimized for the case when the query LineString is a rectangle.</p>
<p>Testing shows this is somewhat faster than not checking the envelope.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">line</td><td></td></tr>
<tr><td class="paramname">testLine</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>
</div>
</div>
<a class="anchor" id="a558b77aa9a0834e23ceec77cb845580f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool geos::operation::predicate::SegmentIntersectionTester::hasIntersectionWithLineStrings </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> &amp;&#160;</td>
<td class="paramname"><em>line</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; const <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>lines</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a38bbf7f4574a5c6df8a6ab5f24f42568"></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::predicate::SegmentIntersectionTester::hasIntersectionVar</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="SegmentIntersectionTester_8h_source.html#l00058">58</a> of file <a class="el" href="SegmentIntersectionTester_8h_source.html">SegmentIntersectionTester.h</a>.</p>
</div>
</div>
<a class="anchor" id="a6be42ec83b0c6c6b4778cec81f5b4719"></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::predicate::SegmentIntersectionTester::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>For purposes of intersection testing, don't need to set precision model. </p>
<p>Definition at line <a class="el" href="SegmentIntersectionTester_8h_source.html#l00056">56</a> of file <a class="el" href="SegmentIntersectionTester_8h_source.html">SegmentIntersectionTester.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="SegmentIntersectionTester_8h_source.html">SegmentIntersectionTester.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>