geos_390_docs/classgeos_1_1operation_1_1v...

1065 lines
53 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::valid::IsValidOp 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_1valid.html">valid</a></li><li class="navelem"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html">IsValidOp</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classgeos_1_1operation_1_1valid_1_1IsValidOp-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::operation::valid::IsValidOp Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Implements the algorithsm required to compute the <code><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a0f76c0c74ec6b6cf33d9aece1fe12f67">isValid()</a></code> method for <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometrys</a>.
<a href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="IsValidOp_8h_source.html">IsValidOp.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for geos::operation::valid::IsValidOp:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classgeos_1_1operation_1_1valid_1_1IsValidOp__coll__graph.svg" width="100%" height="497"><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:a4dd91844a9a08a6a0b5ce79b7b02de4b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a4dd91844a9a08a6a0b5ce79b7b02de4b">IsValidOp</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *geom)</td></tr>
<tr class="separator:a4dd91844a9a08a6a0b5ce79b7b02de4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6150988bc54ea11db100e7065ee3d6f"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#aa6150988bc54ea11db100e7065ee3d6f">~IsValidOp</a> ()</td></tr>
<tr class="memdesc:aa6150988bc54ea11db100e7065ee3d6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">TODO: validErr can't be a pointer! <a href="#aa6150988bc54ea11db100e7065ee3d6f">More...</a><br /></td></tr>
<tr class="separator:aa6150988bc54ea11db100e7065ee3d6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f76c0c74ec6b6cf33d9aece1fe12f67"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a0f76c0c74ec6b6cf33d9aece1fe12f67">isValid</a> ()</td></tr>
<tr class="separator:a0f76c0c74ec6b6cf33d9aece1fe12f67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2711f49e9008c84ab86fa3a8ead0696"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1operation_1_1valid_1_1TopologyValidationError.html">TopologyValidationError</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#aa2711f49e9008c84ab86fa3a8ead0696">getValidationError</a> ()</td></tr>
<tr class="separator:aa2711f49e9008c84ab86fa3a8ead0696"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2997fc9c969f19517184377df9249de"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#ae2997fc9c969f19517184377df9249de">setSelfTouchingRingFormingHoleValid</a> (bool p_isValid)</td></tr>
<tr class="memdesc:ae2997fc9c969f19517184377df9249de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets whether polygons using <b>Self-Touching Rings</b> to form holes are reported as valid. <a href="#ae2997fc9c969f19517184377df9249de">More...</a><br /></td></tr>
<tr class="separator:ae2997fc9c969f19517184377df9249de"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:adbf80ab27e97ee812f7516d46afa8aac"><td class="memItemLeft" align="right" valign="top">static const <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_1valid_1_1IsValidOp.html#adbf80ab27e97ee812f7516d46afa8aac">findPtNotNode</a> (const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> *testCoords, const <a class="el" href="classgeos_1_1geom_1_1LinearRing.html">geom::LinearRing</a> *searchRing, const <a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a> *graph)</td></tr>
<tr class="memdesc:adbf80ab27e97ee812f7516d46afa8aac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find a point from the list of testCoords that is NOT a node in the edge for the list of searchCoords. <a href="#adbf80ab27e97ee812f7516d46afa8aac">More...</a><br /></td></tr>
<tr class="separator:adbf80ab27e97ee812f7516d46afa8aac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a185d2168bb2ed1fd15f4ef8c399928a7"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a185d2168bb2ed1fd15f4ef8c399928a7">isValid</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;coord)</td></tr>
<tr class="memdesc:a185d2168bb2ed1fd15f4ef8c399928a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether a coordinate is valid for processing. Coordinates are valid iff their x and y coordinates are in the range of the floating point representation. <a href="#a185d2168bb2ed1fd15f4ef8c399928a7">More...</a><br /></td></tr>
<tr class="separator:a185d2168bb2ed1fd15f4ef8c399928a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19e970cb5e87af30dd0c17dd30a6b8a1"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a19e970cb5e87af30dd0c17dd30a6b8a1">isValid</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;geom)</td></tr>
<tr class="memdesc:a19e970cb5e87af30dd0c17dd30a6b8a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether a <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">geom::Geometry</a> is valid. <a href="#a19e970cb5e87af30dd0c17dd30a6b8a1">More...</a><br /></td></tr>
<tr class="separator:a19e970cb5e87af30dd0c17dd30a6b8a1"><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:ae0c413873a9ecdd4b645392f8f9c0a1d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#ae0c413873a9ecdd4b645392f8f9c0a1d">checkValid</a> ()</td></tr>
<tr class="separator:ae0c413873a9ecdd4b645392f8f9c0a1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e04a1366935160855ac9a791ae47ec9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a9e04a1366935160855ac9a791ae47ec9">checkValid</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *g)</td></tr>
<tr class="separator:a9e04a1366935160855ac9a791ae47ec9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a634df677c97590850392d51092536e1d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a634df677c97590850392d51092536e1d">checkValid</a> (const <a class="el" href="classgeos_1_1geom_1_1Point.html">geom::Point</a> *g)</td></tr>
<tr class="separator:a634df677c97590850392d51092536e1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae997cc9a459dc893ce58e064dddd0730"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#ae997cc9a459dc893ce58e064dddd0730">checkValid</a> (const <a class="el" href="classgeos_1_1geom_1_1LinearRing.html">geom::LinearRing</a> *g)</td></tr>
<tr class="separator:ae997cc9a459dc893ce58e064dddd0730"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc883ad227c0c02109f22809d3190a2e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#adc883ad227c0c02109f22809d3190a2e">checkValid</a> (const <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> *g)</td></tr>
<tr class="separator:adc883ad227c0c02109f22809d3190a2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd7acf16339f416c832af3cb1324b490"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#afd7acf16339f416c832af3cb1324b490">checkValid</a> (const <a class="el" href="classgeos_1_1geom_1_1Polygon.html">geom::Polygon</a> *g)</td></tr>
<tr class="separator:afd7acf16339f416c832af3cb1324b490"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf0497dd286118455d095ed239dd5866"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#aaf0497dd286118455d095ed239dd5866">checkValid</a> (const <a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html">geom::MultiPolygon</a> *g)</td></tr>
<tr class="separator:aaf0497dd286118455d095ed239dd5866"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa402b2c0b7e0c1535fdb1413d4a3474d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#aa402b2c0b7e0c1535fdb1413d4a3474d">checkValid</a> (const <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html">geom::GeometryCollection</a> *gc)</td></tr>
<tr class="separator:aa402b2c0b7e0c1535fdb1413d4a3474d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb86b654ff714c9578a6ff5e3c1c39ff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#acb86b654ff714c9578a6ff5e3c1c39ff">checkConsistentArea</a> (<a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a> *graph)</td></tr>
<tr class="separator:acb86b654ff714c9578a6ff5e3c1c39ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a732e8a8191b5935ad4a7c3ebb10b4b52"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a732e8a8191b5935ad4a7c3ebb10b4b52">checkNoSelfIntersectingRings</a> (<a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a> *graph)</td></tr>
<tr class="separator:a732e8a8191b5935ad4a7c3ebb10b4b52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a224faf1e8d25a3731ec7d2150e899d7d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a224faf1e8d25a3731ec7d2150e899d7d">checkNoSelfIntersectingRing</a> (<a class="el" href="classgeos_1_1geomgraph_1_1EdgeIntersectionList.html">geomgraph::EdgeIntersectionList</a> &amp;eiList)</td></tr>
<tr class="separator:a224faf1e8d25a3731ec7d2150e899d7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12d97812c912e1a70c6d467b2dbb399b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a12d97812c912e1a70c6d467b2dbb399b">checkTooFewPoints</a> (<a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a> *graph)</td></tr>
<tr class="separator:a12d97812c912e1a70c6d467b2dbb399b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae51b2a35b9d99626376fe7602fb46004"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#ae51b2a35b9d99626376fe7602fb46004">checkHolesInShell</a> (const <a class="el" href="classgeos_1_1geom_1_1Polygon.html">geom::Polygon</a> *p, <a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a> *graph)</td></tr>
<tr class="separator:ae51b2a35b9d99626376fe7602fb46004"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98b5273b6e215e35a980c61dc6653af7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a98b5273b6e215e35a980c61dc6653af7">checkHolesNotNested</a> (const <a class="el" href="classgeos_1_1geom_1_1Polygon.html">geom::Polygon</a> *p, <a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a> *graph)</td></tr>
<tr class="separator:a98b5273b6e215e35a980c61dc6653af7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9728c621bbdefcef1870089367ba6aa2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a9728c621bbdefcef1870089367ba6aa2">checkShellsNotNested</a> (const <a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html">geom::MultiPolygon</a> *mp, <a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a> *graph)</td></tr>
<tr class="separator:a9728c621bbdefcef1870089367ba6aa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6389107291e6836b02b5028dc21c4d6b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a6389107291e6836b02b5028dc21c4d6b">checkConnectedInteriors</a> (<a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a> &amp;graph)</td></tr>
<tr class="separator:a6389107291e6836b02b5028dc21c4d6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab98b8cac14a7540df50b1916460aac6c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#ab98b8cac14a7540df50b1916460aac6c">checkInvalidCoordinates</a> (const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> *cs)</td></tr>
<tr class="separator:ab98b8cac14a7540df50b1916460aac6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a392ab0cb1584b98a5fb8ad084e95fb10"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a392ab0cb1584b98a5fb8ad084e95fb10">checkInvalidCoordinates</a> (const <a class="el" href="classgeos_1_1geom_1_1Polygon.html">geom::Polygon</a> *poly)</td></tr>
<tr class="separator:a392ab0cb1584b98a5fb8ad084e95fb10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb680f1453729ec64f1ebca61172a115"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#abb680f1453729ec64f1ebca61172a115">checkClosedRings</a> (const <a class="el" href="classgeos_1_1geom_1_1Polygon.html">geom::Polygon</a> *poly)</td></tr>
<tr class="separator:abb680f1453729ec64f1ebca61172a115"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e618cef1f1305b736aa9417911722fc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a2e618cef1f1305b736aa9417911722fc">checkClosedRing</a> (const <a class="el" href="classgeos_1_1geom_1_1LinearRing.html">geom::LinearRing</a> *ring)</td></tr>
<tr class="separator:a2e618cef1f1305b736aa9417911722fc"><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:a55466aa61bdcb9cced4456cf2a53b128"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a55466aa61bdcb9cced4456cf2a53b128">parentGeometry</a></td></tr>
<tr class="memdesc:a55466aa61bdcb9cced4456cf2a53b128"><td class="mdescLeft">&#160;</td><td class="mdescRight">the base Geometry to be validated <a href="#a55466aa61bdcb9cced4456cf2a53b128">More...</a><br /></td></tr>
<tr class="separator:a55466aa61bdcb9cced4456cf2a53b128"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6aee3d112042e820f5c20a171848c92d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a6aee3d112042e820f5c20a171848c92d">isChecked</a></td></tr>
<tr class="separator:a6aee3d112042e820f5c20a171848c92d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62306c893ea5e614d9d9c9c41c449893"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1operation_1_1valid_1_1TopologyValidationError.html">TopologyValidationError</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a62306c893ea5e614d9d9c9c41c449893">validErr</a></td></tr>
<tr class="separator:a62306c893ea5e614d9d9c9c41c449893"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a795fc53eade91713ae1a44af1fc4672b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a795fc53eade91713ae1a44af1fc4672b">isSelfTouchingRingFormingHoleValid</a></td></tr>
<tr class="separator:a795fc53eade91713ae1a44af1fc4672b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a3b1ba7d458aabe9d7563c45d93f67f67"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a3b1ba7d458aabe9d7563c45d93f67f67">Unload</a></td></tr>
<tr class="separator:a3b1ba7d458aabe9d7563c45d93f67f67"><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 algorithsm required to compute the <code><a class="el" href="classgeos_1_1operation_1_1valid_1_1IsValidOp.html#a0f76c0c74ec6b6cf33d9aece1fe12f67">isValid()</a></code> method for <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometrys</a>. </p>
<p>Definition at line <a class="el" href="IsValidOp_8h_source.html#l00061">61</a> of file <a class="el" href="IsValidOp_8h_source.html">IsValidOp.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a4dd91844a9a08a6a0b5ce79b7b02de4b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::operation::valid::IsValidOp::IsValidOp </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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="IsValidOp_8h_source.html#l00195">195</a> of file <a class="el" href="IsValidOp_8h_source.html">IsValidOp.h</a>.</p>
</div>
</div>
<a class="anchor" id="aa6150988bc54ea11db100e7065ee3d6f"></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::valid::IsValidOp::~IsValidOp </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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>TODO: validErr can't be a pointer! </p>
<p>Definition at line <a class="el" href="IsValidOp_8h_source.html#l00205">205</a> of file <a class="el" href="IsValidOp_8h_source.html">IsValidOp.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a2e618cef1f1305b736aa9417911722fc"></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::valid::IsValidOp::checkClosedRing </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LinearRing.html">geom::LinearRing</a> *&#160;</td>
<td class="paramname"><em>ring</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="abb680f1453729ec64f1ebca61172a115"></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::valid::IsValidOp::checkClosedRings </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Polygon.html">geom::Polygon</a> *&#160;</td>
<td class="paramname"><em>poly</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="a6389107291e6836b02b5028dc21c4d6b"></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::valid::IsValidOp::checkConnectedInteriors </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a> &amp;&#160;</td>
<td class="paramname"><em>graph</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="acb86b654ff714c9578a6ff5e3c1c39ff"></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::valid::IsValidOp::checkConsistentArea </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>graph</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="ae51b2a35b9d99626376fe7602fb46004"></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::valid::IsValidOp::checkHolesInShell </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Polygon.html">geom::Polygon</a> *&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></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>graph</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>Test that each hole is inside the polygon shell. This routine assumes that the holes have previously been tested to ensure that all vertices lie on the shell or inside it. A simple test of a single point in the hole can be used, provide the point is chosen such that it does not lie on the boundary of the shell.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">p</td><td>the polygon to be tested for hole inclusion </td></tr>
<tr><td class="paramname">graph</td><td>a <a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html" title="A GeometryGraph is a graph that models a given Geometry. ">geomgraph::GeometryGraph</a> incorporating the polygon </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a98b5273b6e215e35a980c61dc6653af7"></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::valid::IsValidOp::checkHolesNotNested </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Polygon.html">geom::Polygon</a> *&#160;</td>
<td class="paramname"><em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></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>graph</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>Tests that no hole is nested inside another hole. This routine assumes that the holes are disjoint. To ensure this, holes have previously been tested to ensure that:</p>
<ul>
<li>they do not partially overlap (checked by <code>checkRelateConsistency</code>)</li>
<li>they are not identical (checked by <code>checkRelateConsistency</code>) </li>
</ul>
</div>
</div>
<a class="anchor" id="ab98b8cac14a7540df50b1916460aac6c"></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::valid::IsValidOp::checkInvalidCoordinates </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> *&#160;</td>
<td class="paramname"><em>cs</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="a392ab0cb1584b98a5fb8ad084e95fb10"></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::valid::IsValidOp::checkInvalidCoordinates </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Polygon.html">geom::Polygon</a> *&#160;</td>
<td class="paramname"><em>poly</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="a224faf1e8d25a3731ec7d2150e899d7d"></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::valid::IsValidOp::checkNoSelfIntersectingRing </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geomgraph_1_1EdgeIntersectionList.html">geomgraph::EdgeIntersectionList</a> &amp;&#160;</td>
<td class="paramname"><em>eiList</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>check that a ring does not self-intersect, except at its endpoints. Algorithm is to count the number of times each node along edge occurs. If any occur more than once, that must be a self-intersection. </p>
</div>
</div>
<a class="anchor" id="a732e8a8191b5935ad4a7c3ebb10b4b52"></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::valid::IsValidOp::checkNoSelfIntersectingRings </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>graph</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>Check that there is no ring which self-intersects (except of course at its endpoints). This is required by OGC topology rules (but not by other models such as ESRI SDE, which allow inverted shells and exverted holes).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">graph</td><td>the topology graph of the geometry </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a9728c621bbdefcef1870089367ba6aa2"></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::valid::IsValidOp::checkShellsNotNested </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html">geom::MultiPolygon</a> *&#160;</td>
<td class="paramname"><em>mp</em>, </td>
</tr>
<tr>
<td class="paramkey"></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>graph</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>Tests that no element polygon is wholly in the interior of another element polygon.</p>
<p>Preconditions:</p>
<ul>
<li>shells do not partially overlap</li>
<li>shells do not touch along an edge</li>
<li>no duplicate rings exist</li>
</ul>
<p>This routine relies on the fact that while polygon shells may touch at one or more vertices, they cannot touch at ALL vertices. </p>
</div>
</div>
<a class="anchor" id="a12d97812c912e1a70c6d467b2dbb399b"></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::valid::IsValidOp::checkTooFewPoints </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>graph</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="ae0c413873a9ecdd4b645392f8f9c0a1d"></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::valid::IsValidOp::checkValid </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="a9e04a1366935160855ac9a791ae47ec9"></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::valid::IsValidOp::checkValid </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>g</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="a634df677c97590850392d51092536e1d"></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::valid::IsValidOp::checkValid </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Point.html">geom::Point</a> *&#160;</td>
<td class="paramname"><em>g</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="ae997cc9a459dc893ce58e064dddd0730"></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::valid::IsValidOp::checkValid </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LinearRing.html">geom::LinearRing</a> *&#160;</td>
<td class="paramname"><em>g</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="adc883ad227c0c02109f22809d3190a2e"></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::valid::IsValidOp::checkValid </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> *&#160;</td>
<td class="paramname"><em>g</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="afd7acf16339f416c832af3cb1324b490"></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::valid::IsValidOp::checkValid </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Polygon.html">geom::Polygon</a> *&#160;</td>
<td class="paramname"><em>g</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="aaf0497dd286118455d095ed239dd5866"></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::valid::IsValidOp::checkValid </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html">geom::MultiPolygon</a> *&#160;</td>
<td class="paramname"><em>g</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="aa402b2c0b7e0c1535fdb1413d4a3474d"></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::valid::IsValidOp::checkValid </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html">geom::GeometryCollection</a> *&#160;</td>
<td class="paramname"><em>gc</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="adbf80ab27e97ee812f7516d46afa8aac"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a>* geos::operation::valid::IsValidOp::findPtNotNode </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> *&#160;</td>
<td class="paramname"><em>testCoords</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LinearRing.html">geom::LinearRing</a> *&#160;</td>
<td class="paramname"><em>searchRing</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geomgraph_1_1GeometryGraph.html">geomgraph::GeometryGraph</a> *&#160;</td>
<td class="paramname"><em>graph</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">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Find a point from the list of testCoords that is NOT a node in the edge for the list of searchCoords. </p>
<dl class="section return"><dt>Returns</dt><dd>the point found, or NULL if none found </dd></dl>
</div>
</div>
<a class="anchor" id="aa2711f49e9008c84ab86fa3a8ead0696"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1operation_1_1valid_1_1TopologyValidationError.html">TopologyValidationError</a>* geos::operation::valid::IsValidOp::getValidationError </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a185d2168bb2ed1fd15f4ef8c399928a7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool geos::operation::valid::IsValidOp::isValid </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>coord</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks whether a coordinate is valid for processing. Coordinates are valid iff their x and y coordinates are in the range of the floating point representation. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">coord</td><td>the coordinate to validate </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the coordinate is valid </dd></dl>
</div>
</div>
<a class="anchor" id="a19e970cb5e87af30dd0c17dd30a6b8a1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool geos::operation::valid::IsValidOp::isValid </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">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Tests whether a <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">geom::Geometry</a> is valid. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geom</td><td>the Geometry to test </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the geometry is valid </dd></dl>
</div>
</div>
<a class="anchor" id="a0f76c0c74ec6b6cf33d9aece1fe12f67"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool geos::operation::valid::IsValidOp::isValid </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae2997fc9c969f19517184377df9249de"></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::valid::IsValidOp::setSelfTouchingRingFormingHoleValid </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>p_isValid</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>Sets whether polygons using <b>Self-Touching Rings</b> to form holes are reported as valid. </p>
<p>If this flag is set, the following Self-Touching conditions are treated as being valid:</p>
<ul>
<li>the shell ring self-touches to create a hole touching the shell</li>
<li>a hole ring self-touches to create two holes touching at a point</li>
</ul>
<p>The default (following the OGC SFS standard) is that this condition is <b>not</b> valid (<code>false</code>).</p>
<p>This does not affect whether Self-Touching Rings disconnecting the polygon interior are considered valid (these are considered to be <b>invalid</b> under the SFS, and many other spatial models as well). This includes "bow-tie" shells, which self-touch at a single point causing the interior to be disconnected, and "C-shaped" holes which self-touch at a single point causing an island to be formed.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">p_isValid</td><td>states whether geometry with this condition is valid </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="IsValidOp_8h_source.html#l00238">238</a> of file <a class="el" href="IsValidOp_8h_source.html">IsValidOp.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a class="anchor" id="a3b1ba7d458aabe9d7563c45d93f67f67"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">friend class Unload</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="IsValidOp_8h_source.html#l00062">62</a> of file <a class="el" href="IsValidOp_8h_source.html">IsValidOp.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a6aee3d112042e820f5c20a171848c92d"></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::valid::IsValidOp::isChecked</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="IsValidOp_8h_source.html#l00067">67</a> of file <a class="el" href="IsValidOp_8h_source.html">IsValidOp.h</a>.</p>
</div>
</div>
<a class="anchor" id="a795fc53eade91713ae1a44af1fc4672b"></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::valid::IsValidOp::isSelfTouchingRingFormingHoleValid</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="IsValidOp_8h_source.html#l00163">163</a> of file <a class="el" href="IsValidOp_8h_source.html">IsValidOp.h</a>.</p>
</div>
</div>
<a class="anchor" id="a55466aa61bdcb9cced4456cf2a53b128"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>* geos::operation::valid::IsValidOp::parentGeometry</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 base Geometry to be validated </p>
<p>Definition at line <a class="el" href="IsValidOp_8h_source.html#l00065">65</a> of file <a class="el" href="IsValidOp_8h_source.html">IsValidOp.h</a>.</p>
</div>
</div>
<a class="anchor" id="a62306c893ea5e614d9d9c9c41c449893"></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_1valid_1_1TopologyValidationError.html">TopologyValidationError</a>* geos::operation::valid::IsValidOp::validErr</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="IsValidOp_8h_source.html#l00070">70</a> of file <a class="el" href="IsValidOp_8h_source.html">IsValidOp.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="IsValidOp_8h_source.html">IsValidOp.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>