geos_390_docs/classgeos_1_1geom_1_1prep_1...

529 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::geom::prep::AbstractPreparedPolygonContains 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_1geom.html">geom</a></li><li class="navelem"><a class="el" href="namespacegeos_1_1geom_1_1prep.html">prep</a></li><li class="navelem"><a class="el" href="classgeos_1_1geom_1_1prep_1_1AbstractPreparedPolygonContains.html">AbstractPreparedPolygonContains</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classgeos_1_1geom_1_1prep_1_1AbstractPreparedPolygonContains-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::geom::prep::AbstractPreparedPolygonContains Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>A base class containing the logic for computes the <code>contains</code> and <code>covers</code> spatial relationship predicates for a <a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygon.html">PreparedPolygon</a> relative to all other <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> classes.
<a href="classgeos_1_1geom_1_1prep_1_1AbstractPreparedPolygonContains.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="AbstractPreparedPolygonContains_8h_source.html">AbstractPreparedPolygonContains.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for geos::geom::prep::AbstractPreparedPolygonContains:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1geom_1_1prep_1_1AbstractPreparedPolygonContains__inherit__graph.svg" width="440" 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>
<div class="dynheader">
Collaboration diagram for geos::geom::prep::AbstractPreparedPolygonContains:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classgeos_1_1geom_1_1prep_1_1AbstractPreparedPolygonContains__coll__graph.svg" width="100%" height="431"><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:ac9b99d505c8fd0eca1cf1f6e41acf975"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1AbstractPreparedPolygonContains.html#ac9b99d505c8fd0eca1cf1f6e41acf975">AbstractPreparedPolygonContains</a> (const <a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygon.html">PreparedPolygon</a> *const p_prepPoly)</td></tr>
<tr class="separator:ac9b99d505c8fd0eca1cf1f6e41acf975"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a508d01c213ef9a643107a38b01f811ce"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1AbstractPreparedPolygonContains.html#a508d01c213ef9a643107a38b01f811ce">AbstractPreparedPolygonContains</a> (const <a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygon.html">PreparedPolygon</a> *const p_prepPoly, bool p_requireSomePointInInterior)</td></tr>
<tr class="separator:a508d01c213ef9a643107a38b01f811ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7cc49847e766c1ba4b466affa6258fa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1AbstractPreparedPolygonContains.html#af7cc49847e766c1ba4b466affa6258fa">~AbstractPreparedPolygonContains</a> () override</td></tr>
<tr class="separator:af7cc49847e766c1ba4b466affa6258fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate.html">geos::geom::prep::PreparedPolygonPredicate</a></td></tr>
<tr class="memitem:acc3037ea8c0c92745bef8896031987ee inherit pub_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate.html#acc3037ea8c0c92745bef8896031987ee">PreparedPolygonPredicate</a> (const <a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygon.html">PreparedPolygon</a> *const p_prepPoly)</td></tr>
<tr class="memdesc:acc3037ea8c0c92745bef8896031987ee inherit pub_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an instance of this operation. <a href="#acc3037ea8c0c92745bef8896031987ee">More...</a><br /></td></tr>
<tr class="separator:acc3037ea8c0c92745bef8896031987ee inherit pub_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07a62c52429a39cef74ba1b329ef3d6b inherit pub_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate.html#a07a62c52429a39cef74ba1b329ef3d6b">~PreparedPolygonPredicate</a> ()</td></tr>
<tr class="separator:a07a62c52429a39cef74ba1b329ef3d6b inherit pub_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a40a340530e4d7ebf07a731258497a357"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1AbstractPreparedPolygonContains.html#a40a340530e4d7ebf07a731258497a357">eval</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *geom)</td></tr>
<tr class="separator:a40a340530e4d7ebf07a731258497a357"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a944c84309f8771cb3891f7d19c2a555c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1AbstractPreparedPolygonContains.html#a944c84309f8771cb3891f7d19c2a555c">evalPointTestGeom</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *geom, <a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">geom::Location</a> outermostLoc)</td></tr>
<tr class="separator:a944c84309f8771cb3891f7d19c2a555c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0fba49106f225fd7399605437560823"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1AbstractPreparedPolygonContains.html#ae0fba49106f225fd7399605437560823">fullTopologicalPredicate</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *geom)=0</td></tr>
<tr class="separator:ae0fba49106f225fd7399605437560823"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate.html">geos::geom::prep::PreparedPolygonPredicate</a></td></tr>
<tr class="memitem:a3827ccf6121181663854b8771504d81a inherit pro_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">geom::Location</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate.html#a3827ccf6121181663854b8771504d81a">getOutermostTestComponentLocation</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *testGeom) const </td></tr>
<tr class="memdesc:a3827ccf6121181663854b8771504d81a inherit pro_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the outermost Location among a test point from each components of the test geometry. <a href="#a3827ccf6121181663854b8771504d81a">More...</a><br /></td></tr>
<tr class="separator:a3827ccf6121181663854b8771504d81a inherit pro_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7becc3cfe82252a97109c08ec060d6b0 inherit pro_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate.html#a7becc3cfe82252a97109c08ec060d6b0">isAllTestComponentsInTargetInterior</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *testGeom) const </td></tr>
<tr class="memdesc:a7becc3cfe82252a97109c08ec060d6b0 inherit pro_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether all components of the test <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> are contained in the interior of the target geometry. <a href="#a7becc3cfe82252a97109c08ec060d6b0">More...</a><br /></td></tr>
<tr class="separator:a7becc3cfe82252a97109c08ec060d6b0 inherit pro_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3da12d4d133b3968f585838ac295ed09 inherit pro_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate.html#a3da12d4d133b3968f585838ac295ed09">isAnyTestComponentInTarget</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *testGeom) const </td></tr>
<tr class="memdesc:a3da12d4d133b3968f585838ac295ed09 inherit pro_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether any component of the test <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> intersects the area of the target geometry. <a href="#a3da12d4d133b3968f585838ac295ed09">More...</a><br /></td></tr>
<tr class="separator:a3da12d4d133b3968f585838ac295ed09 inherit pro_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeababb3d0a044f7f43b4a3f01aeb295a inherit pro_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate.html#aeababb3d0a044f7f43b4a3f01aeb295a">isAnyTestComponentInTargetInterior</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *testGeom) const </td></tr>
<tr class="memdesc:aeababb3d0a044f7f43b4a3f01aeb295a inherit pro_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether any component of the test <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> intersects the interior of the target geometry. <a href="#aeababb3d0a044f7f43b4a3f01aeb295a">More...</a><br /></td></tr>
<tr class="separator:aeababb3d0a044f7f43b4a3f01aeb295a inherit pro_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9b54696e21fa2730742e7742ae55bdc inherit pro_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate.html#aa9b54696e21fa2730742e7742ae55bdc">isAnyTargetComponentInAreaTest</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *testGeom, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html#a59a363dbe699943a46ea014355e63cac">geom::Coordinate::ConstVect</a> *targetRepPts) const </td></tr>
<tr class="separator:aa9b54696e21fa2730742e7742ae55bdc inherit pro_methods_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:ae45e6b71a8d85892d13e34f7622cdd31"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1AbstractPreparedPolygonContains.html#ae45e6b71a8d85892d13e34f7622cdd31">requireSomePointInInterior</a></td></tr>
<tr class="separator:ae45e6b71a8d85892d13e34f7622cdd31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate.html">geos::geom::prep::PreparedPolygonPredicate</a></td></tr>
<tr class="memitem:a09aca64d98f9dcb5b4ee0b0b696f6165 inherit pro_attribs_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygon.html">PreparedPolygon</a> *const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate.html#a09aca64d98f9dcb5b4ee0b0b696f6165">prepPoly</a></td></tr>
<tr class="separator:a09aca64d98f9dcb5b4ee0b0b696f6165 inherit pro_attribs_classgeos_1_1geom_1_1prep_1_1PreparedPolygonPredicate"><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:a782b2e36ae00c7a3f203344766adb0b5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1AbstractPreparedPolygonContains.html#a782b2e36ae00c7a3f203344766adb0b5">isProperIntersectionImpliesNotContainedSituation</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *testGeom)</td></tr>
<tr class="separator:a782b2e36ae00c7a3f203344766adb0b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0e1d0a894fb26239399e669e0526dda"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1AbstractPreparedPolygonContains.html#ab0e1d0a894fb26239399e669e0526dda">isSingleShell</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;geom)</td></tr>
<tr class="separator:ab0e1d0a894fb26239399e669e0526dda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0010b7c217bd4c27761232528692cc88"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1AbstractPreparedPolygonContains.html#a0010b7c217bd4c27761232528692cc88">findAndClassifyIntersections</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *geom)</td></tr>
<tr class="separator:a0010b7c217bd4c27761232528692cc88"><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:a79165adca0a0c1d7b834fa6d24fdc1eb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1AbstractPreparedPolygonContains.html#a79165adca0a0c1d7b834fa6d24fdc1eb">hasSegmentIntersection</a></td></tr>
<tr class="separator:a79165adca0a0c1d7b834fa6d24fdc1eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69b5fdbd8e16a0cd2eb794d4c2592131"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1AbstractPreparedPolygonContains.html#a69b5fdbd8e16a0cd2eb794d4c2592131">hasProperIntersection</a></td></tr>
<tr class="separator:a69b5fdbd8e16a0cd2eb794d4c2592131"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedac5f7c35f95525fe9d902304c65caa"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1prep_1_1AbstractPreparedPolygonContains.html#aedac5f7c35f95525fe9d902304c65caa">hasNonProperIntersection</a></td></tr>
<tr class="separator:aedac5f7c35f95525fe9d902304c65caa"><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>A base class containing the logic for computes the <code>contains</code> and <code>covers</code> spatial relationship predicates for a <a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygon.html">PreparedPolygon</a> relative to all other <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> classes. </p>
<p>Uses short-circuit tests and indexing to improve performance.</p>
<p>Contains and covers are very similar, and differ only in how certain cases along the boundary are handled. These cases require full topological evaluation to handle, so all the code in this class is common to both predicates.</p>
<p>It is not possible to short-circuit in all cases, in particular in the case where line segments of the test geometry touches the polygon linework. In this case full topology must be computed. (However, if the test geometry consists of only points, this <em>can</em> be evaluated in an optimized fashion.</p>
<dl class="section author"><dt>Author</dt><dd>Martin Davis </dd></dl>
<p>Definition at line <a class="el" href="AbstractPreparedPolygonContains_8h_source.html#l00065">65</a> of file <a class="el" href="AbstractPreparedPolygonContains_8h_source.html">AbstractPreparedPolygonContains.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ac9b99d505c8fd0eca1cf1f6e41acf975"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::geom::prep::AbstractPreparedPolygonContains::AbstractPreparedPolygonContains </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygon.html">PreparedPolygon</a> *const&#160;</td>
<td class="paramname"><em>p_prepPoly</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="AbstractPreparedPolygonContains_8h_source.html#l00121">121</a> of file <a class="el" href="AbstractPreparedPolygonContains_8h_source.html">AbstractPreparedPolygonContains.h</a>.</p>
</div>
</div>
<a class="anchor" id="a508d01c213ef9a643107a38b01f811ce"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::geom::prep::AbstractPreparedPolygonContains::AbstractPreparedPolygonContains </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygon.html">PreparedPolygon</a> *const&#160;</td>
<td class="paramname"><em>p_prepPoly</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>p_requireSomePointInInterior</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="AbstractPreparedPolygonContains_8h_source.html#l00129">129</a> of file <a class="el" href="AbstractPreparedPolygonContains_8h_source.html">AbstractPreparedPolygonContains.h</a>.</p>
</div>
</div>
<a class="anchor" id="af7cc49847e766c1ba4b466affa6258fa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::geom::prep::AbstractPreparedPolygonContains::~AbstractPreparedPolygonContains </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 class="mlabel">override</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="AbstractPreparedPolygonContains_8h_source.html#l00137">137</a> of file <a class="el" href="AbstractPreparedPolygonContains_8h_source.html">AbstractPreparedPolygonContains.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a40a340530e4d7ebf07a731258497a357"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::geom::prep::AbstractPreparedPolygonContains::eval </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>geom</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Evaluate the <code>contains</code> or <code>covers</code> relationship for the given geometry.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geom</td><td>the test geometry </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the test geometry is contained </dd></dl>
</div>
</div>
<a class="anchor" id="a944c84309f8771cb3891f7d19c2a555c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::geom::prep::AbstractPreparedPolygonContains::evalPointTestGeom </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>geom</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">geom::Location</a>&#160;</td>
<td class="paramname"><em>outermostLoc</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">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Evaluate the <code>contains</code> or <code>covers</code> relationship for the given Puntal geometry.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geom</td><td>the test geometry </td></tr>
<tr><td class="paramname">outermostLoc</td><td>outermost Location of all points in geom </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the test geometry is contained/covered in the target </dd></dl>
</div>
</div>
<a class="anchor" id="a0010b7c217bd4c27761232528692cc88"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::geom::prep::AbstractPreparedPolygonContains::findAndClassifyIntersections </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>geom</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="ae0fba49106f225fd7399605437560823"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool geos::geom::prep::AbstractPreparedPolygonContains::fullTopologicalPredicate </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>geom</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the full topological predicate. Used when short-circuit tests are not conclusive.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geom</td><td>the test geometry </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if this prepared polygon has the relationship with the test geometry </dd></dl>
<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygonContains.html#a5925609405d0961172578b9aa939fa7f">geos::geom::prep::PreparedPolygonContains</a>, and <a class="el" href="classgeos_1_1geom_1_1prep_1_1PreparedPolygonCovers.html#a5de9e86b7f817ee372418232852e894e">geos::geom::prep::PreparedPolygonCovers</a>.</p>
</div>
</div>
<a class="anchor" id="a782b2e36ae00c7a3f203344766adb0b5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::geom::prep::AbstractPreparedPolygonContains::isProperIntersectionImpliesNotContainedSituation </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>testGeom</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="ab0e1d0a894fb26239399e669e0526dda"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::geom::prep::AbstractPreparedPolygonContains::isSingleShell </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;&#160;</td>
<td class="paramname"><em>geom</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>Tests whether a geometry consists of a single polygon with no holes.</p>
<dl class="section return"><dt>Returns</dt><dd>true if the geometry is a single polygon with no holes </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="aedac5f7c35f95525fe9d902304c65caa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::geom::prep::AbstractPreparedPolygonContains::hasNonProperIntersection</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="AbstractPreparedPolygonContains_8h_source.html#l00070">70</a> of file <a class="el" href="AbstractPreparedPolygonContains_8h_source.html">AbstractPreparedPolygonContains.h</a>.</p>
</div>
</div>
<a class="anchor" id="a69b5fdbd8e16a0cd2eb794d4c2592131"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::geom::prep::AbstractPreparedPolygonContains::hasProperIntersection</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="AbstractPreparedPolygonContains_8h_source.html#l00069">69</a> of file <a class="el" href="AbstractPreparedPolygonContains_8h_source.html">AbstractPreparedPolygonContains.h</a>.</p>
</div>
</div>
<a class="anchor" id="a79165adca0a0c1d7b834fa6d24fdc1eb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::geom::prep::AbstractPreparedPolygonContains::hasSegmentIntersection</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="AbstractPreparedPolygonContains_8h_source.html#l00068">68</a> of file <a class="el" href="AbstractPreparedPolygonContains_8h_source.html">AbstractPreparedPolygonContains.h</a>.</p>
</div>
</div>
<a class="anchor" id="ae45e6b71a8d85892d13e34f7622cdd31"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::geom::prep::AbstractPreparedPolygonContains::requireSomePointInInterior</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This flag controls a difference between contains and covers.</p>
<p>For contains the value is true. For covers the value is false. </p>
<p>Definition at line <a class="el" href="AbstractPreparedPolygonContains_8h_source.html#l00090">90</a> of file <a class="el" href="AbstractPreparedPolygonContains_8h_source.html">AbstractPreparedPolygonContains.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="AbstractPreparedPolygonContains_8h_source.html">AbstractPreparedPolygonContains.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>