geos_390_docs/classgeos_1_1geom_1_1Geomet...

3331 lines
216 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::Geometry 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="classgeos_1_1geom_1_1Geometry.html">Geometry</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-static-methods">Static Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#pri-static-attribs">Static Private Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classgeos_1_1geom_1_1Geometry-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::geom::Geometry Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Basic implementation of <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>, constructed and destructed by <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html" title="Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...">GeometryFactory</a>.
<a href="classgeos_1_1geom_1_1Geometry.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="Geometry_8h_source.html">geos.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for geos::geom::Geometry:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classgeos_1_1geom_1_1Geometry__inherit__graph.svg" width="100%" height="514"><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>
<div class="dynheader">
Collaboration diagram for geos::geom::Geometry:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classgeos_1_1geom_1_1Geometry__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="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry_1_1GeometryChangedFilter.html">GeometryChangedFilter</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a83f0703f34370c8c1900f70478479ed2"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a83f0703f34370c8c1900f70478479ed2">ConstVect</a> = std::vector&lt; const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> * &gt;</td></tr>
<tr class="memdesc:a83f0703f34370c8c1900f70478479ed2"><td class="mdescLeft">&#160;</td><td class="mdescRight">A vector of const <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> pointers. <a href="#a83f0703f34370c8c1900f70478479ed2">More...</a><br /></td></tr>
<tr class="separator:a83f0703f34370c8c1900f70478479ed2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a36e1ee6e576c0fe925592a510ef307"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a0a36e1ee6e576c0fe925592a510ef307">NonConstVect</a> = std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> * &gt;</td></tr>
<tr class="memdesc:a0a36e1ee6e576c0fe925592a510ef307"><td class="mdescLeft">&#160;</td><td class="mdescRight">A vector of non-const <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> pointers. <a href="#a0a36e1ee6e576c0fe925592a510ef307">More...</a><br /></td></tr>
<tr class="separator:a0a36e1ee6e576c0fe925592a510ef307"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57c6acd6bb0a8371356897f40247ed33"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Ptr</a> = std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;</td></tr>
<tr class="memdesc:a57c6acd6bb0a8371356897f40247ed33"><td class="mdescLeft">&#160;</td><td class="mdescRight">An unique_ptr of <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. <a href="#a57c6acd6bb0a8371356897f40247ed33">More...</a><br /></td></tr>
<tr class="separator:a57c6acd6bb0a8371356897f40247ed33"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:a6833a38c613d19e1da22cb05d81d4630"><td class="memItemLeft" align="right" valign="top">virtual std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a6833a38c613d19e1da22cb05d81d4630">clone</a> () const =0</td></tr>
<tr class="memdesc:a6833a38c613d19e1da22cb05d81d4630"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make a deep-copy of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. <a href="#a6833a38c613d19e1da22cb05d81d4630">More...</a><br /></td></tr>
<tr class="separator:a6833a38c613d19e1da22cb05d81d4630"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12c062b0618b06eb5e78a0232364dbff"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a12c062b0618b06eb5e78a0232364dbff">~Geometry</a> ()</td></tr>
<tr class="memdesc:a12c062b0618b06eb5e78a0232364dbff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> and all components. <a href="#a12c062b0618b06eb5e78a0232364dbff">More...</a><br /></td></tr>
<tr class="separator:a12c062b0618b06eb5e78a0232364dbff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab41bcf3461be250e143ed2d7da19815b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">GeometryFactory</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ab41bcf3461be250e143ed2d7da19815b">getFactory</a> () const </td></tr>
<tr class="memdesc:ab41bcf3461be250e143ed2d7da19815b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the factory which contains the context in which this geometry was created. <a href="#ab41bcf3461be250e143ed2d7da19815b">More...</a><br /></td></tr>
<tr class="separator:ab41bcf3461be250e143ed2d7da19815b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75dcb588b48e79ab3249d37137b12e1d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a75dcb588b48e79ab3249d37137b12e1d">setUserData</a> (void *newUserData)</td></tr>
<tr class="memdesc:a75dcb588b48e79ab3249d37137b12e1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">A simple scheme for applications to add their own custom data to a <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. An example use might be to add an object representing a <a class="el" href="classgeos_1_1geom_1_1Coordinate.html" title="Coordinate is the lightweight class used to store coordinates. ">Coordinate</a> Reference System. <a href="#a75dcb588b48e79ab3249d37137b12e1d">More...</a><br /></td></tr>
<tr class="separator:a75dcb588b48e79ab3249d37137b12e1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28afb816f4065c929e97108da1503f29"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a28afb816f4065c929e97108da1503f29">getUserData</a> () const </td></tr>
<tr class="memdesc:a28afb816f4065c929e97108da1503f29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the user data object for this geometry, if any. <a href="#a28afb816f4065c929e97108da1503f29">More...</a><br /></td></tr>
<tr class="separator:a28afb816f4065c929e97108da1503f29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a898135f854cc07c243e7deb45de65505"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a898135f854cc07c243e7deb45de65505">getSRID</a> () const </td></tr>
<tr class="memdesc:a898135f854cc07c243e7deb45de65505"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the ID of the Spatial Reference System used by the <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. <a href="#a898135f854cc07c243e7deb45de65505">More...</a><br /></td></tr>
<tr class="separator:a898135f854cc07c243e7deb45de65505"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc2702d0d3827a304db1ccc25714f6a3"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#afc2702d0d3827a304db1ccc25714f6a3">setSRID</a> (int newSRID)</td></tr>
<tr class="memdesc:afc2702d0d3827a304db1ccc25714f6a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the ID of the Spatial Reference System used by the <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. <a href="#afc2702d0d3827a304db1ccc25714f6a3">More...</a><br /></td></tr>
<tr class="separator:afc2702d0d3827a304db1ccc25714f6a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6dc225a75bb941b9dc4deebd682885f9"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">PrecisionModel</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a6dc225a75bb941b9dc4deebd682885f9">getPrecisionModel</a> () const </td></tr>
<tr class="memdesc:a6dc225a75bb941b9dc4deebd682885f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html" title="Specifies the precision model of the Coordinate in a Geometry. ">PrecisionModel</a> used to create this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. <a href="#a6dc225a75bb941b9dc4deebd682885f9">More...</a><br /></td></tr>
<tr class="separator:a6dc225a75bb941b9dc4deebd682885f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acefe992c172712a951a6055a1adf447a"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#acefe992c172712a951a6055a1adf447a">getCoordinate</a> () const =0</td></tr>
<tr class="memdesc:acefe992c172712a951a6055a1adf447a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a vertex of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>, or NULL if this is the empty geometry. <a href="#acefe992c172712a951a6055a1adf447a">More...</a><br /></td></tr>
<tr class="separator:acefe992c172712a951a6055a1adf447a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ccf6aba0a66e052bf45478da6fa4ece"><td class="memItemLeft" align="right" valign="top">virtual std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">CoordinateSequence</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a6ccf6aba0a66e052bf45478da6fa4ece">getCoordinates</a> () const =0</td></tr>
<tr class="memdesc:a6ccf6aba0a66e052bf45478da6fa4ece"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> vertices. Caller takes ownership of the returned object. <a href="#a6ccf6aba0a66e052bf45478da6fa4ece">More...</a><br /></td></tr>
<tr class="separator:a6ccf6aba0a66e052bf45478da6fa4ece"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a730f691c91d12191629f2ce889dc7c37"><td class="memItemLeft" align="right" valign="top">virtual std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a730f691c91d12191629f2ce889dc7c37">getNumPoints</a> () const =0</td></tr>
<tr class="memdesc:a730f691c91d12191629f2ce889dc7c37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the count of this Geometrys vertices. <a href="#a730f691c91d12191629f2ce889dc7c37">More...</a><br /></td></tr>
<tr class="separator:a730f691c91d12191629f2ce889dc7c37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4b0804bd3903ed656b38b4561e3e577"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#af4b0804bd3903ed656b38b4561e3e577">isSimple</a> () const </td></tr>
<tr class="memdesc:af4b0804bd3903ed656b38b4561e3e577"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns false if the <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> not simple. <a href="#af4b0804bd3903ed656b38b4561e3e577">More...</a><br /></td></tr>
<tr class="separator:af4b0804bd3903ed656b38b4561e3e577"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4290decd50c0d21fd976d34ab418ef0f"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a4290decd50c0d21fd976d34ab418ef0f">getGeometryType</a> () const =0</td></tr>
<tr class="memdesc:a4290decd50c0d21fd976d34ab418ef0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a string representation of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> type. <a href="#a4290decd50c0d21fd976d34ab418ef0f">More...</a><br /></td></tr>
<tr class="separator:a4290decd50c0d21fd976d34ab418ef0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3680d76fcb2b2f8e2336ea3a2de5cbf8"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8">GeometryTypeId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a3680d76fcb2b2f8e2336ea3a2de5cbf8">getGeometryTypeId</a> () const =0</td></tr>
<tr class="memdesc:a3680d76fcb2b2f8e2336ea3a2de5cbf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an integer representation of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> type. <a href="#a3680d76fcb2b2f8e2336ea3a2de5cbf8">More...</a><br /></td></tr>
<tr class="separator:a3680d76fcb2b2f8e2336ea3a2de5cbf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9c08c0e76c8cfc0e13b1b471e4049db"><td class="memItemLeft" align="right" valign="top">virtual std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#aa9c08c0e76c8cfc0e13b1b471e4049db">getNumGeometries</a> () const </td></tr>
<tr class="separator:aa9c08c0e76c8cfc0e13b1b471e4049db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae46e3ec59729a56ea2979b5a177cc25d"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ae46e3ec59729a56ea2979b5a177cc25d">getGeometryN</a> (std::size_t) const </td></tr>
<tr class="memdesc:ae46e3ec59729a56ea2979b5a177cc25d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a pointer to the nth <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> in this collection (or self if this is not a collection) <a href="#ae46e3ec59729a56ea2979b5a177cc25d">More...</a><br /></td></tr>
<tr class="separator:ae46e3ec59729a56ea2979b5a177cc25d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f408a97170af8f26c5e6121e720fc8a"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a1f408a97170af8f26c5e6121e720fc8a">isValid</a> () const </td></tr>
<tr class="memdesc:a1f408a97170af8f26c5e6121e720fc8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests the validity of this <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code>. <a href="#a1f408a97170af8f26c5e6121e720fc8a">More...</a><br /></td></tr>
<tr class="separator:a1f408a97170af8f26c5e6121e720fc8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76c52f479ea31bd1d5c5bde8ba089657"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a76c52f479ea31bd1d5c5bde8ba089657">isEmpty</a> () const =0</td></tr>
<tr class="memdesc:a76c52f479ea31bd1d5c5bde8ba089657"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether or not the set of points in this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> is empty. <a href="#a76c52f479ea31bd1d5c5bde8ba089657">More...</a><br /></td></tr>
<tr class="separator:a76c52f479ea31bd1d5c5bde8ba089657"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab21116730ab9f580285a7e3a93f7941e"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ab21116730ab9f580285a7e3a93f7941e">isRectangle</a> () const </td></tr>
<tr class="memdesc:ab21116730ab9f580285a7e3a93f7941e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classgeos_1_1geom_1_1Polygon.html" title="Represents a linear polygon, which may include holes. ">Polygon</a> overrides to check for actual rectangle. <a href="#ab21116730ab9f580285a7e3a93f7941e">More...</a><br /></td></tr>
<tr class="separator:ab21116730ab9f580285a7e3a93f7941e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6e5cb68c6b3edb5b71dc983a2795c5c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Dimension.html#af46f1c0c325eb685fcf32987748d04cf">Dimension::DimensionType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ae6e5cb68c6b3edb5b71dc983a2795c5c">getDimension</a> () const =0</td></tr>
<tr class="memdesc:ae6e5cb68c6b3edb5b71dc983a2795c5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the dimension of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> (0=point, 1=line, 2=surface) <a href="#ae6e5cb68c6b3edb5b71dc983a2795c5c">More...</a><br /></td></tr>
<tr class="separator:ae6e5cb68c6b3edb5b71dc983a2795c5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2263ca7a107a8048276f11c92fabfab3"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a2263ca7a107a8048276f11c92fabfab3">isDimensionStrict</a> (<a class="el" href="classgeos_1_1geom_1_1Dimension.html#af46f1c0c325eb685fcf32987748d04cf">Dimension::DimensionType</a> d) const </td></tr>
<tr class="memdesc:a2263ca7a107a8048276f11c92fabfab3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> consists only of components having dimension d. <a href="#a2263ca7a107a8048276f11c92fabfab3">More...</a><br /></td></tr>
<tr class="separator:a2263ca7a107a8048276f11c92fabfab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab169b9909bd730a2e3308b3131383d6a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ab169b9909bd730a2e3308b3131383d6a">isPuntal</a> () const </td></tr>
<tr class="separator:ab169b9909bd730a2e3308b3131383d6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2663a8eb5273bd53a3048d594ee8dfa3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a2663a8eb5273bd53a3048d594ee8dfa3">isLineal</a> () const </td></tr>
<tr class="separator:a2663a8eb5273bd53a3048d594ee8dfa3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af050e5f878c31a026a9dc7b25042b25a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#af050e5f878c31a026a9dc7b25042b25a">isPolygonal</a> () const </td></tr>
<tr class="separator:af050e5f878c31a026a9dc7b25042b25a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afee501f64aba753afaf622adcd7a0872"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#afee501f64aba753afaf622adcd7a0872">isCollection</a> () const </td></tr>
<tr class="separator:afee501f64aba753afaf622adcd7a0872"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a458b74b03913b42cfbec6bcb8f8c7ed2"><td class="memItemLeft" align="right" valign="top">virtual uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a458b74b03913b42cfbec6bcb8f8c7ed2">getCoordinateDimension</a> () const =0</td></tr>
<tr class="memdesc:a458b74b03913b42cfbec6bcb8f8c7ed2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the coordinate dimension of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> (2=XY, 3=XYZ, 4=XYZM in future). <a href="#a458b74b03913b42cfbec6bcb8f8c7ed2">More...</a><br /></td></tr>
<tr class="separator:a458b74b03913b42cfbec6bcb8f8c7ed2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41b9f1f8571b73f6b3772e98076a8fb1"><td class="memItemLeft" align="right" valign="top">virtual std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a41b9f1f8571b73f6b3772e98076a8fb1">getBoundary</a> () const =0</td></tr>
<tr class="memdesc:a41b9f1f8571b73f6b3772e98076a8fb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the boundary, or an empty geometry of appropriate dimension if this <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code> is empty. <a href="#a41b9f1f8571b73f6b3772e98076a8fb1">More...</a><br /></td></tr>
<tr class="separator:a41b9f1f8571b73f6b3772e98076a8fb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04323ca0c85af4e662bafb3534424ea1"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a04323ca0c85af4e662bafb3534424ea1">getBoundaryDimension</a> () const =0</td></tr>
<tr class="memdesc:a04323ca0c85af4e662bafb3534424ea1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the dimension of this Geometrys inherent boundary. <a href="#a04323ca0c85af4e662bafb3534424ea1">More...</a><br /></td></tr>
<tr class="separator:a04323ca0c85af4e662bafb3534424ea1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae28ade9f5170576fbb5dbe1f86f45e13"><td class="memItemLeft" align="right" valign="top">virtual std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ae28ade9f5170576fbb5dbe1f86f45e13">getEnvelope</a> () const </td></tr>
<tr class="memdesc:ae28ade9f5170576fbb5dbe1f86f45e13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns this Geometrys bounding box. <a href="#ae28ade9f5170576fbb5dbe1f86f45e13">More...</a><br /></td></tr>
<tr class="separator:ae28ade9f5170576fbb5dbe1f86f45e13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b59a1a031912dc198ba7dca24b2643e"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classgeos_1_1geom_1_1Envelope.html">Envelope</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a2b59a1a031912dc198ba7dca24b2643e">getEnvelopeInternal</a> () const </td></tr>
<tr class="memdesc:a2b59a1a031912dc198ba7dca24b2643e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the minimum and maximum x and y values in this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>, or a null <a class="el" href="classgeos_1_1geom_1_1Envelope.html" title="An Envelope defines a rectangulare region of the 2D coordinate plane. ">Envelope</a> if this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> is empty. <a href="#a2b59a1a031912dc198ba7dca24b2643e">More...</a><br /></td></tr>
<tr class="separator:a2b59a1a031912dc198ba7dca24b2643e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ecd455a3ea581965956cdf5d90a83d5"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a0ecd455a3ea581965956cdf5d90a83d5">disjoint</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *other) const </td></tr>
<tr class="separator:a0ecd455a3ea581965956cdf5d90a83d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33b22cf9230c0656b0e4ef2e05f8f557"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a33b22cf9230c0656b0e4ef2e05f8f557">touches</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *other) const </td></tr>
<tr class="memdesc:a33b22cf9230c0656b0e4ef2e05f8f557"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the DE-9IM intersection matrix for the two Geometrys is FT*******, F**T***** or F***T****. <a href="#a33b22cf9230c0656b0e4ef2e05f8f557">More...</a><br /></td></tr>
<tr class="separator:a33b22cf9230c0656b0e4ef2e05f8f557"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b52247de62578a82fdd8f3b044da376"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a4b52247de62578a82fdd8f3b044da376">intersects</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *g) const </td></tr>
<tr class="memdesc:a4b52247de62578a82fdd8f3b044da376"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if disjoint returns false. <a href="#a4b52247de62578a82fdd8f3b044da376">More...</a><br /></td></tr>
<tr class="separator:a4b52247de62578a82fdd8f3b044da376"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade9808e984e4aa08a038cecd77b37d58"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ade9808e984e4aa08a038cecd77b37d58">crosses</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *g) const </td></tr>
<tr class="separator:ade9808e984e4aa08a038cecd77b37d58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad88a5cc29827e3fc2014680e813e7dad"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad88a5cc29827e3fc2014680e813e7dad">within</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *g) const </td></tr>
<tr class="memdesc:ad88a5cc29827e3fc2014680e813e7dad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the DE-9IM intersection matrix for the two Geometrys is T*F**F***. <a href="#ad88a5cc29827e3fc2014680e813e7dad">More...</a><br /></td></tr>
<tr class="separator:ad88a5cc29827e3fc2014680e813e7dad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a1244c6b1d1e9ab823a282692d06cb9"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a5a1244c6b1d1e9ab823a282692d06cb9">contains</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *g) const </td></tr>
<tr class="memdesc:a5a1244c6b1d1e9ab823a282692d06cb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if other.within(this) returns true. <a href="#a5a1244c6b1d1e9ab823a282692d06cb9">More...</a><br /></td></tr>
<tr class="separator:a5a1244c6b1d1e9ab823a282692d06cb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f418ca77771a15c864e6475f8b57418"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a8f418ca77771a15c864e6475f8b57418">overlaps</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *g) const </td></tr>
<tr class="memdesc:a8f418ca77771a15c864e6475f8b57418"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the DE-9IM intersection matrix for the two Geometrys is T*T***T** (for two points or two surfaces) 1*T***T** (for two curves). <a href="#a8f418ca77771a15c864e6475f8b57418">More...</a><br /></td></tr>
<tr class="separator:a8f418ca77771a15c864e6475f8b57418"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af10709485f02f215811a81cf2f078199"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#af10709485f02f215811a81cf2f078199">relate</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *g, const std::string &amp;intersectionPattern) const </td></tr>
<tr class="memdesc:af10709485f02f215811a81cf2f078199"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the elements in the DE-9IM intersection matrix for the two Geometrys match the elements in intersectionPattern. <a href="#af10709485f02f215811a81cf2f078199">More...</a><br /></td></tr>
<tr class="separator:af10709485f02f215811a81cf2f078199"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac05904544441dc3cd395a74a14d210d9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ac05904544441dc3cd395a74a14d210d9">relate</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &amp;g, const std::string &amp;intersectionPattern) const </td></tr>
<tr class="separator:ac05904544441dc3cd395a74a14d210d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74ae102dc0f2640172606d2b4277b950"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1IntersectionMatrix.html">IntersectionMatrix</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a74ae102dc0f2640172606d2b4277b950">relate</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *g) const </td></tr>
<tr class="memdesc:a74ae102dc0f2640172606d2b4277b950"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the DE-9IM intersection matrix for the two Geometrys. <a href="#a74ae102dc0f2640172606d2b4277b950">More...</a><br /></td></tr>
<tr class="separator:a74ae102dc0f2640172606d2b4277b950"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9028f93d9244bda4fbaf9331a46d9d2f"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1IntersectionMatrix.html">IntersectionMatrix</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a9028f93d9244bda4fbaf9331a46d9d2f">relate</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &amp;g) const </td></tr>
<tr class="separator:a9028f93d9244bda4fbaf9331a46d9d2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80bac369fef274ce44592f5565284c20"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a80bac369fef274ce44592f5565284c20">equals</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *g) const </td></tr>
<tr class="memdesc:a80bac369fef274ce44592f5565284c20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the DE-9IM intersection matrix for the two Geometrys is T*F**FFF*. <a href="#a80bac369fef274ce44592f5565284c20">More...</a><br /></td></tr>
<tr class="separator:a80bac369fef274ce44592f5565284c20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad901fe993635be50793e7cfd19b113f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#aad901fe993635be50793e7cfd19b113f">covers</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *g) const </td></tr>
<tr class="memdesc:aad901fe993635be50793e7cfd19b113f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <code>true</code> if this geometry covers the specified geometry. <a href="#aad901fe993635be50793e7cfd19b113f">More...</a><br /></td></tr>
<tr class="separator:aad901fe993635be50793e7cfd19b113f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af979c13c17f500907d0be400f80abb45"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#af979c13c17f500907d0be400f80abb45">coveredBy</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *g) const </td></tr>
<tr class="memdesc:af979c13c17f500907d0be400f80abb45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether this geometry is covered by the specified geometry. <a href="#af979c13c17f500907d0be400f80abb45">More...</a><br /></td></tr>
<tr class="separator:af979c13c17f500907d0be400f80abb45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c3d0c2b218158198433901b0409497b"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a0c3d0c2b218158198433901b0409497b">toString</a> () const </td></tr>
<tr class="memdesc:a0c3d0c2b218158198433901b0409497b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the Well-known Text representation of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. <a href="#a0c3d0c2b218158198433901b0409497b">More...</a><br /></td></tr>
<tr class="separator:a0c3d0c2b218158198433901b0409497b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf561e22b0c376477376a02975c3bd8e"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#abf561e22b0c376477376a02975c3bd8e">toText</a> () const </td></tr>
<tr class="separator:abf561e22b0c376477376a02975c3bd8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cc0d6fb6a34d910a43d2e121cdbd953"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a5cc0d6fb6a34d910a43d2e121cdbd953">buffer</a> (double <a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad21bf3fd92a4d3c573228806f77123b7">distance</a>) const </td></tr>
<tr class="separator:a5cc0d6fb6a34d910a43d2e121cdbd953"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4ed9cb9f73f887a9532dd6796eff1ff"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ac4ed9cb9f73f887a9532dd6796eff1ff">buffer</a> (double <a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad21bf3fd92a4d3c573228806f77123b7">distance</a>, int quadrantSegments) const </td></tr>
<tr class="memdesc:ac4ed9cb9f73f887a9532dd6796eff1ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a buffer region around this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> having the given width and with a specified number of segments used to approximate curves. <a href="#ac4ed9cb9f73f887a9532dd6796eff1ff">More...</a><br /></td></tr>
<tr class="separator:ac4ed9cb9f73f887a9532dd6796eff1ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1281df1d0f5493ccefb7d475ec6fef5"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ac1281df1d0f5493ccefb7d475ec6fef5">buffer</a> (double <a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad21bf3fd92a4d3c573228806f77123b7">distance</a>, int quadrantSegments, int endCapStyle) const </td></tr>
<tr class="memdesc:ac1281df1d0f5493ccefb7d475ec6fef5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes a buffer area around this geometry having the given width and with a specified accuracy of approximation for circular arcs, and using a specified end cap style. <a href="#ac1281df1d0f5493ccefb7d475ec6fef5">More...</a><br /></td></tr>
<tr class="separator:ac1281df1d0f5493ccefb7d475ec6fef5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f86738f74c28ad8f7278f62e305719d"><td class="memItemLeft" align="right" valign="top">virtual std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a4f86738f74c28ad8f7278f62e305719d">convexHull</a> () const </td></tr>
<tr class="memdesc:a4f86738f74c28ad8f7278f62e305719d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the smallest convex <a class="el" href="classgeos_1_1geom_1_1Polygon.html" title="Represents a linear polygon, which may include holes. ">Polygon</a> that contains all the points in the <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. <a href="#a4f86738f74c28ad8f7278f62e305719d">More...</a><br /></td></tr>
<tr class="separator:a4f86738f74c28ad8f7278f62e305719d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ee841421b0ce7a987b9b740a8a9885f"><td class="memItemLeft" align="right" valign="top">virtual std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a4ee841421b0ce7a987b9b740a8a9885f">reverse</a> () const =0</td></tr>
<tr class="memdesc:a4ee841421b0ce7a987b9b740a8a9885f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes a new geometry which has all component coordinate sequences in reverse order (opposite orientation) to this one. <a href="#a4ee841421b0ce7a987b9b740a8a9885f">More...</a><br /></td></tr>
<tr class="separator:a4ee841421b0ce7a987b9b740a8a9885f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c5ff18d6f80bf04ee7dd883bbc616aa"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a8c5ff18d6f80bf04ee7dd883bbc616aa">intersection</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *other) const </td></tr>
<tr class="memdesc:a8c5ff18d6f80bf04ee7dd883bbc616aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> representing the points shared by this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> and other. <a href="#a8c5ff18d6f80bf04ee7dd883bbc616aa">More...</a><br /></td></tr>
<tr class="separator:a8c5ff18d6f80bf04ee7dd883bbc616aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae184641cf7635f569ae341b517cc7372"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ae184641cf7635f569ae341b517cc7372">Union</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *other) const </td></tr>
<tr class="memdesc:ae184641cf7635f569ae341b517cc7372"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> representing all the points in this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> and other. <a href="#ae184641cf7635f569ae341b517cc7372">More...</a><br /></td></tr>
<tr class="separator:ae184641cf7635f569ae341b517cc7372"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8775857813646d5956d07d3a557a7f1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Ptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ae8775857813646d5956d07d3a557a7f1">Union</a> () const </td></tr>
<tr class="memdesc:ae8775857813646d5956d07d3a557a7f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the union of all the elements of this geometry. Heterogeneous <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html">GeometryCollections</a> are fully supported. <a href="#ae8775857813646d5956d07d3a557a7f1">More...</a><br /></td></tr>
<tr class="separator:ae8775857813646d5956d07d3a557a7f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc9bcf3e89d6cadf5f733d2ebf02299b"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#afc9bcf3e89d6cadf5f733d2ebf02299b">difference</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *other) const </td></tr>
<tr class="memdesc:afc9bcf3e89d6cadf5f733d2ebf02299b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> representing the points making up this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> that do not make up other. <a href="#afc9bcf3e89d6cadf5f733d2ebf02299b">More...</a><br /></td></tr>
<tr class="separator:afc9bcf3e89d6cadf5f733d2ebf02299b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7fc3ed340ebb467260fde48b6c7aa88"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ab7fc3ed340ebb467260fde48b6c7aa88">symDifference</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *other) const </td></tr>
<tr class="memdesc:ab7fc3ed340ebb467260fde48b6c7aa88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a set combining the points in this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> not in other, and the points in other not in this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. <a href="#ab7fc3ed340ebb467260fde48b6c7aa88">More...</a><br /></td></tr>
<tr class="separator:ab7fc3ed340ebb467260fde48b6c7aa88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29b0259d378be997ce1bb80739b405a1"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a29b0259d378be997ce1bb80739b405a1">equalsExact</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *other, double tolerance=0) const =0</td></tr>
<tr class="memdesc:a29b0259d378be997ce1bb80739b405a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true iff the two Geometrys are of the same type and their vertices corresponding by index are equal up to a specified tolerance. <a href="#a29b0259d378be997ce1bb80739b405a1">More...</a><br /></td></tr>
<tr class="separator:a29b0259d378be997ce1bb80739b405a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf14906978c9de8b272d79b53384b119"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#acf14906978c9de8b272d79b53384b119">apply_rw</a> (const <a class="el" href="classgeos_1_1geom_1_1CoordinateFilter.html">CoordinateFilter</a> *filter)=0</td></tr>
<tr class="separator:acf14906978c9de8b272d79b53384b119"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67138c95cad4c3f6364bfbc4924254f3"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a67138c95cad4c3f6364bfbc4924254f3">apply_ro</a> (<a class="el" href="classgeos_1_1geom_1_1CoordinateFilter.html">CoordinateFilter</a> *filter) const =0</td></tr>
<tr class="separator:a67138c95cad4c3f6364bfbc4924254f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a456660fcd9ffe7eea27e64df606423f4"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a456660fcd9ffe7eea27e64df606423f4">apply_rw</a> (<a class="el" href="classgeos_1_1geom_1_1GeometryFilter.html">GeometryFilter</a> *filter)</td></tr>
<tr class="separator:a456660fcd9ffe7eea27e64df606423f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1fa305f92ceb7c813ff59e78242e428"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad1fa305f92ceb7c813ff59e78242e428">apply_ro</a> (<a class="el" href="classgeos_1_1geom_1_1GeometryFilter.html">GeometryFilter</a> *filter) const </td></tr>
<tr class="separator:ad1fa305f92ceb7c813ff59e78242e428"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae37f54cfec3c57c912bfb0203cd0f70"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#aae37f54cfec3c57c912bfb0203cd0f70">apply_rw</a> (<a class="el" href="classgeos_1_1geom_1_1GeometryComponentFilter.html">GeometryComponentFilter</a> *filter)</td></tr>
<tr class="separator:aae37f54cfec3c57c912bfb0203cd0f70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0c80a1b3bae8d82cbd07ed8d9a29431"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad0c80a1b3bae8d82cbd07ed8d9a29431">apply_ro</a> (<a class="el" href="classgeos_1_1geom_1_1GeometryComponentFilter.html">GeometryComponentFilter</a> *filter) const </td></tr>
<tr class="separator:ad0c80a1b3bae8d82cbd07ed8d9a29431"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19566f7393929d162eead6ee454fe97f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a19566f7393929d162eead6ee454fe97f">apply_rw</a> (<a class="el" href="classgeos_1_1geom_1_1CoordinateSequenceFilter.html">CoordinateSequenceFilter</a> &amp;filter)=0</td></tr>
<tr class="separator:a19566f7393929d162eead6ee454fe97f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31aa2b7a73162848ceaffdb25d91a9dc"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a31aa2b7a73162848ceaffdb25d91a9dc">apply_ro</a> (<a class="el" href="classgeos_1_1geom_1_1CoordinateSequenceFilter.html">CoordinateSequenceFilter</a> &amp;filter) const =0</td></tr>
<tr class="separator:a31aa2b7a73162848ceaffdb25d91a9dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a979504ef90b6d3b67af529cec504fbfe"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a979504ef90b6d3b67af529cec504fbfe"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a979504ef90b6d3b67af529cec504fbfe">applyComponentFilter</a> (T &amp;f) const </td></tr>
<tr class="memdesc:a979504ef90b6d3b67af529cec504fbfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply a filter to each component of this geometry. The filter is expected to provide a .filter(const Geometry*) method. <a href="#a979504ef90b6d3b67af529cec504fbfe">More...</a><br /></td></tr>
<tr class="separator:a979504ef90b6d3b67af529cec504fbfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ea3b58d562bc183e118e2a68f86414d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a2ea3b58d562bc183e118e2a68f86414d">normalize</a> ()=0</td></tr>
<tr class="separator:a2ea3b58d562bc183e118e2a68f86414d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76c044f721a6dca257d2aaffdc687579"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a76c044f721a6dca257d2aaffdc687579">compareTo</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *geom) const </td></tr>
<tr class="memdesc:a76c044f721a6dca257d2aaffdc687579"><td class="mdescLeft">&#160;</td><td class="mdescRight">Comparator for sorting geometry. <a href="#a76c044f721a6dca257d2aaffdc687579">More...</a><br /></td></tr>
<tr class="separator:a76c044f721a6dca257d2aaffdc687579"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad21bf3fd92a4d3c573228806f77123b7"><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad21bf3fd92a4d3c573228806f77123b7">distance</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *g) const </td></tr>
<tr class="memdesc:ad21bf3fd92a4d3c573228806f77123b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the minimum distance between this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> and the <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> g. <a href="#ad21bf3fd92a4d3c573228806f77123b7">More...</a><br /></td></tr>
<tr class="separator:ad21bf3fd92a4d3c573228806f77123b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a144de29d8a886392e275d3dca689a784"><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a144de29d8a886392e275d3dca689a784">getArea</a> () const </td></tr>
<tr class="memdesc:a144de29d8a886392e275d3dca689a784"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the area of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. <a href="#a144de29d8a886392e275d3dca689a784">More...</a><br /></td></tr>
<tr class="separator:a144de29d8a886392e275d3dca689a784"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1630fb2f4f8ea61cfba896fdd52df5b0"><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a1630fb2f4f8ea61cfba896fdd52df5b0">getLength</a> () const </td></tr>
<tr class="memdesc:a1630fb2f4f8ea61cfba896fdd52df5b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the length of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. <a href="#a1630fb2f4f8ea61cfba896fdd52df5b0">More...</a><br /></td></tr>
<tr class="separator:a1630fb2f4f8ea61cfba896fdd52df5b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f4167b1d2e7723eae267a2041616cb5"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a6f4167b1d2e7723eae267a2041616cb5">isWithinDistance</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *geom, double cDistance) const </td></tr>
<tr class="memdesc:a6f4167b1d2e7723eae267a2041616cb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether the distance from this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> to another is less than or equal to a specified value. <a href="#a6f4167b1d2e7723eae267a2041616cb5">More...</a><br /></td></tr>
<tr class="separator:a6f4167b1d2e7723eae267a2041616cb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09563e7297a4f4ff9c5dd017739676e6"><td class="memItemLeft" align="right" valign="top">virtual std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Point.html">Point</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a09563e7297a4f4ff9c5dd017739676e6">getCentroid</a> () const </td></tr>
<tr class="memdesc:a09563e7297a4f4ff9c5dd017739676e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the centroid of this <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code>. <a href="#a09563e7297a4f4ff9c5dd017739676e6">More...</a><br /></td></tr>
<tr class="separator:a09563e7297a4f4ff9c5dd017739676e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4121cc98d0c534ad430aa66448f70ad3"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a4121cc98d0c534ad430aa66448f70ad3">getCentroid</a> (<a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> &amp;ret) const </td></tr>
<tr class="memdesc:a4121cc98d0c534ad430aa66448f70ad3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the centroid of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> as a <a class="el" href="classgeos_1_1geom_1_1Coordinate.html" title="Coordinate is the lightweight class used to store coordinates. ">Coordinate</a>. <a href="#a4121cc98d0c534ad430aa66448f70ad3">More...</a><br /></td></tr>
<tr class="separator:a4121cc98d0c534ad430aa66448f70ad3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a178c66ec24a370d88b6fe59410507133"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Point.html">Point</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a178c66ec24a370d88b6fe59410507133">getInteriorPoint</a> () const </td></tr>
<tr class="memdesc:a178c66ec24a370d88b6fe59410507133"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes an interior point of this <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code>. <a href="#a178c66ec24a370d88b6fe59410507133">More...</a><br /></td></tr>
<tr class="separator:a178c66ec24a370d88b6fe59410507133"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea794bfb662989dd8690854723edc72c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#aea794bfb662989dd8690854723edc72c">geometryChanged</a> ()</td></tr>
<tr class="memdesc:aea794bfb662989dd8690854723edc72c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notifies this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> that its Coordinates have been changed by an external party (using a <a class="el" href="classgeos_1_1geom_1_1CoordinateFilter.html" title="Geometry classes support the concept of applying a coordinate filter to every coordinate in the Geome...">CoordinateFilter</a>, for example). <a href="#aea794bfb662989dd8690854723edc72c">More...</a><br /></td></tr>
<tr class="separator:aea794bfb662989dd8690854723edc72c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a175a97030b47b67bce9d92123ba570e8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a175a97030b47b67bce9d92123ba570e8">geometryChangedAction</a> ()</td></tr>
<tr class="memdesc:a175a97030b47b67bce9d92123ba570e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notifies this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> that its Coordinates have been changed by an external party. <a href="#a175a97030b47b67bce9d92123ba570e8">More...</a><br /></td></tr>
<tr class="separator:a175a97030b47b67bce9d92123ba570e8"><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:a33cfd95ad897d4060dba29da511907f0"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a33cfd95ad897d4060dba29da511907f0">isEquivalentClass</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *other) const </td></tr>
<tr class="memdesc:a33cfd95ad897d4060dba29da511907f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the two Geometrys are equal, from the point of view of the equalsExact method. <a href="#a33cfd95ad897d4060dba29da511907f0">More...</a><br /></td></tr>
<tr class="separator:a33cfd95ad897d4060dba29da511907f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aceb3b9165580c49b251ba45227fdaacb"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Envelope.html#ab206f2390f2fc2efd3df9e6eab71c672">Envelope::Ptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#aceb3b9165580c49b251ba45227fdaacb">computeEnvelopeInternal</a> () const =0</td></tr>
<tr class="separator:aceb3b9165580c49b251ba45227fdaacb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d64998d440dadd536ccf357c1d02988"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a3d64998d440dadd536ccf357c1d02988">compareToSameClass</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *geom) const =0</td></tr>
<tr class="separator:a3d64998d440dadd536ccf357c1d02988"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a503123b04b883a8cc0eef9186fb92c57"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a503123b04b883a8cc0eef9186fb92c57">compare</a> (std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> &gt; a, std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> &gt; b) const </td></tr>
<tr class="separator:a503123b04b883a8cc0eef9186fb92c57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74b95e958ffbad3c42e1d2c343feda5d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a74b95e958ffbad3c42e1d2c343feda5d">compare</a> (std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> * &gt; a, std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> * &gt; b) const </td></tr>
<tr class="separator:a74b95e958ffbad3c42e1d2c343feda5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89bbe1834f504972e99bededf1ef7321"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a89bbe1834f504972e99bededf1ef7321">compare</a> (const std::vector&lt; std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&gt; &amp;a, const std::vector&lt; std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&gt; &amp;b) const </td></tr>
<tr class="separator:a89bbe1834f504972e99bededf1ef7321"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34955c401f5a15016cc957aa8c277c69"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a34955c401f5a15016cc957aa8c277c69">equal</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> &amp;a, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> &amp;b, double tolerance) const </td></tr>
<tr class="separator:a34955c401f5a15016cc957aa8c277c69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa036d162904c54d20f67a5343ff60a75"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#aa036d162904c54d20f67a5343ff60a75">Geometry</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &amp;geom)</td></tr>
<tr class="separator:aa036d162904c54d20f67a5343ff60a75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8224f1cda605d550b915bbc92a138f3d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a8224f1cda605d550b915bbc92a138f3d">Geometry</a> (const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">GeometryFactory</a> *factory)</td></tr>
<tr class="memdesc:a8224f1cda605d550b915bbc92a138f3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a geometry with the given <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html" title="Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...">GeometryFactory</a>. <a href="#a8224f1cda605d550b915bbc92a138f3d">More...</a><br /></td></tr>
<tr class="separator:a8224f1cda605d550b915bbc92a138f3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32559974d1d58f5676594e0bef0d970f"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a32559974d1d58f5676594e0bef0d970f">getSortIndex</a> () const =0</td></tr>
<tr class="separator:a32559974d1d58f5676594e0bef0d970f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-methods"></a>
Static Protected Member Functions</h2></td></tr>
<tr class="memitem:a9fe7d434f5eeac333fca775a652f5d70"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a9fe7d434f5eeac333fca775a652f5d70"><td class="memTemplItemLeft" align="right" valign="top">static bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a9fe7d434f5eeac333fca775a652f5d70">hasNonEmptyElements</a> (const std::vector&lt; T &gt; *geometries)</td></tr>
<tr class="memdesc:a9fe7d434f5eeac333fca775a652f5d70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the array contains any non-empty Geometrys. <a href="#a9fe7d434f5eeac333fca775a652f5d70">More...</a><br /></td></tr>
<tr class="separator:a9fe7d434f5eeac333fca775a652f5d70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74eec53d6fe428fc63e030f026e60a62"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a74eec53d6fe428fc63e030f026e60a62">hasNullElements</a> (const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">CoordinateSequence</a> *list)</td></tr>
<tr class="memdesc:a74eec53d6fe428fc63e030f026e60a62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html" title="The internal representation of a list of coordinates inside a Geometry. ">CoordinateSequence</a> contains any null elements. <a href="#a74eec53d6fe428fc63e030f026e60a62">More...</a><br /></td></tr>
<tr class="separator:a74eec53d6fe428fc63e030f026e60a62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af956233ea57ece02cc8a97338e8e91db"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:af956233ea57ece02cc8a97338e8e91db"><td class="memTemplItemLeft" align="right" valign="top">static bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#af956233ea57ece02cc8a97338e8e91db">hasNullElements</a> (const std::vector&lt; T &gt; *geometries)</td></tr>
<tr class="memdesc:af956233ea57ece02cc8a97338e8e91db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the vector contains any null elements. <a href="#af956233ea57ece02cc8a97338e8e91db">More...</a><br /></td></tr>
<tr class="separator:af956233ea57ece02cc8a97338e8e91db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8171b99f5d8008ace488987cf8ed5a92"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a8171b99f5d8008ace488987cf8ed5a92">checkNotGeometryCollection</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *g)</td></tr>
<tr class="separator:a8171b99f5d8008ace488987cf8ed5a92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0011cf7156ff985f7847eb56369d5881"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a0011cf7156ff985f7847eb56369d5881"><td class="memTemplItemLeft" align="right" valign="top">static std::vector&lt; std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a0011cf7156ff985f7847eb56369d5881">toGeometryArray</a> (std::vector&lt; std::unique_ptr&lt; T &gt;&gt; &amp;&amp;v)</td></tr>
<tr class="separator:a0011cf7156ff985f7847eb56369d5881"><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:a3078813471b2c70b04da6271a5da83eb"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Envelope.html">Envelope</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a3078813471b2c70b04da6271a5da83eb">envelope</a></td></tr>
<tr class="memdesc:a3078813471b2c70b04da6271a5da83eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">The bounding box of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. <a href="#a3078813471b2c70b04da6271a5da83eb">More...</a><br /></td></tr>
<tr class="separator:a3078813471b2c70b04da6271a5da83eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac26216d9188cf7e60112a56ccdb7f01c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ac26216d9188cf7e60112a56ccdb7f01c">SRID</a></td></tr>
<tr class="separator:ac26216d9188cf7e60112a56ccdb7f01c"><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:a00cd60eb152657d72f17fb89323ce8eb"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">GeometryFactory</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a00cd60eb152657d72f17fb89323ce8eb">_factory</a></td></tr>
<tr class="separator:a00cd60eb152657d72f17fb89323ce8eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adab3f4e1dc7025ad0f42df42df121aed"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#adab3f4e1dc7025ad0f42df42df121aed">_userData</a></td></tr>
<tr class="separator:adab3f4e1dc7025ad0f42df42df121aed"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-attribs"></a>
Static Private Attributes</h2></td></tr>
<tr class="memitem:aeae05c4e3b9ccf180584802ee4e59d9d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classgeos_1_1geom_1_1Geometry_1_1GeometryChangedFilter.html">GeometryChangedFilter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#aeae05c4e3b9ccf180584802ee4e59d9d">geometryChangedFilter</a></td></tr>
<tr class="separator:aeae05c4e3b9ccf180584802ee4e59d9d"><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:a639aef3f5d0d27a72053343b0e09b5f3"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a639aef3f5d0d27a72053343b0e09b5f3">GeometryFactory</a></td></tr>
<tr class="separator:a639aef3f5d0d27a72053343b0e09b5f3"><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>Basic implementation of <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>, constructed and destructed by <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html" title="Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...">GeometryFactory</a>. </p>
<p><code>clone</code> returns a deep copy of the object. Use <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html" title="Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...">GeometryFactory</a> to construct.</p>
<h3>Binary Predicates</h3>
<p>Because it is not clear at this time what semantics for spatial analysis methods involving <code><a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html" title="Represents a collection of heterogeneous Geometry objects. ">GeometryCollection</a></code>s would be useful, <code><a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html" title="Represents a collection of heterogeneous Geometry objects. ">GeometryCollection</a></code>s are not supported as arguments to binary predicates (other than <code>convexHull</code>) or the <code>relate</code> method.</p>
<h3>Set-Theoretic Methods</h3>
<p>The spatial analysis methods will return the most specific class possible to represent the result. If the result is homogeneous, a <code><a class="el" href="classgeos_1_1geom_1_1Point.html">Point</a></code>, <code><a class="el" href="classgeos_1_1geom_1_1LineString.html">LineString</a></code>, or <code><a class="el" href="classgeos_1_1geom_1_1Polygon.html" title="Represents a linear polygon, which may include holes. ">Polygon</a></code> will be returned if the result contains a single element; otherwise, a <code><a class="el" href="classgeos_1_1geom_1_1MultiPoint.html">MultiPoint</a></code>, <code><a class="el" href="classgeos_1_1geom_1_1MultiLineString.html" title="Models a collection of LineStrings. ">MultiLineString</a></code>, or <code><a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html">MultiPolygon</a></code> will be returned. If the result is heterogeneous a <code><a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html" title="Represents a collection of heterogeneous Geometry objects. ">GeometryCollection</a></code> will be returned. </p>
<p>Because it is not clear at this time what semantics for set-theoretic methods involving <code><a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html" title="Represents a collection of heterogeneous Geometry objects. ">GeometryCollection</a></code>s would be useful, <code>GeometryCollections</code> are not supported as arguments to the set-theoretic methods.</p>
<h4>Representation of Computed Geometries </h4>
<p>The SFS states that the result of a set-theoretic method is the "point-set" result of the usual set-theoretic definition of the operation (SFS 3.2.21.1). However, there are sometimes many ways of representing a point set as a <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code>. </p>
<p>The SFS does not specify an unambiguous representation of a given point set returned from a spatial analysis method. One goal of JTS is to make this specification precise and unambiguous. JTS will use a canonical form for <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code>s returned from spatial analysis methods. The canonical form is a <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code> which is simple and noded: </p><ul>
<li>
Simple means that the <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> returned will be simple according to the JTS definition of <code>isSimple</code>. </li>
<li>
Noded applies only to overlays involving <code><a class="el" href="classgeos_1_1geom_1_1LineString.html">LineString</a></code>s. It means that all intersection points on <code><a class="el" href="classgeos_1_1geom_1_1LineString.html">LineString</a></code>s will be present as endpoints of <code><a class="el" href="classgeos_1_1geom_1_1LineString.html">LineString</a></code>s in the result. </li>
</ul>
<p>This definition implies that non-simple geometries which are arguments to spatial analysis methods must be subjected to a line-dissolve process to ensure that the results are simple.</p>
<h4>Constructed Points And The Precision Model </h4>
<p>The results computed by the set-theoretic methods may contain constructed points which are not present in the input <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. These new points arise from intersections between line segments in the edges of the input <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. In the general case it is not possible to represent constructed points exactly. This is due to the fact that the coordinates of an intersection point may contain twice as many bits of precision as the coordinates of the input line segments. In order to represent these constructed points explicitly, JTS must truncate them to fit the <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html" title="Specifies the precision model of the Coordinate in a Geometry. ">PrecisionModel</a>.</p>
<p>Unfortunately, truncating coordinates moves them slightly. Line segments which would not be coincident in the exact result may become coincident in the truncated representation. This in turn leads to "topology collapses" &ndash; situations where a computed element has a lower dimension than it would in the exact result.</p>
<p>When JTS detects topology collapses during the computation of spatial analysis methods, it will throw an exception. If possible the exception will report the location of the collapse.</p>
<p>equals(Object) and hashCode are not overridden, so that when two topologically equal Geometries are added to HashMaps and HashSets, they remain distinct. This behaviour is desired in many cases. </p>
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00188">188</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="a83f0703f34370c8c1900f70478479ed2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classgeos_1_1geom_1_1Geometry.html#a83f0703f34370c8c1900f70478479ed2">geos::geom::Geometry::ConstVect</a> = std::vector&lt;const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>*&gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p>A vector of const <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> pointers. </p>
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00195">195</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<a class="anchor" id="a0a36e1ee6e576c0fe925592a510ef307"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classgeos_1_1geom_1_1Geometry.html#a0a36e1ee6e576c0fe925592a510ef307">geos::geom::Geometry::NonConstVect</a> = std::vector&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>*&gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p>A vector of non-const <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> pointers. </p>
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00198">198</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<a class="anchor" id="a57c6acd6bb0a8371356897f40247ed33"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classgeos_1_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">geos::geom::Geometry::Ptr</a> = std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>&gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p>An unique_ptr of <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. </p>
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00201">201</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a12c062b0618b06eb5e78a0232364dbff"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual geos::geom::Geometry::~Geometry </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroy <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> and all components. </p>
</div>
</div>
<a class="anchor" id="aa036d162904c54d20f67a5343ff60a75"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::geom::Geometry::Geometry </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">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">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8224f1cda605d550b915bbc92a138f3d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::geom::Geometry::Geometry </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">GeometryFactory</a> *&#160;</td>
<td class="paramname"><em>factory</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>Construct a geometry with the given <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html" title="Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...">GeometryFactory</a>. </p>
<p>Will keep a reference to the factory, so don't delete it until al <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> objects referring to it are deleted.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">factory</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a67138c95cad4c3f6364bfbc4924254f3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void geos::geom::Geometry::apply_ro </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1CoordinateFilter.html">CoordinateFilter</a> *&#160;</td>
<td class="paramname"><em>filter</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1LineString.html#ae7e164451c7aa1cb0ca801e7ef113d47">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#a4a1b1a45c73d3f094e849db39606c209">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1Polygon.html#a9c81064d679871d19f006ea468bcecd6">geos::geom::Polygon</a>, and <a class="el" href="classgeos_1_1geom_1_1Point.html#a6c3137f131e505ded45c9dbb4034172e">geos::geom::Point</a>.</p>
</div>
</div>
<a class="anchor" id="ad1fa305f92ceb7c813ff59e78242e428"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void geos::geom::Geometry::apply_ro </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1GeometryFilter.html">GeometryFilter</a> *&#160;</td>
<td class="paramname"><em>filter</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented in <a class="el" href="classgeos_1_1geom_1_1LineString.html#aed6417c2d0f645d9797d921afcbb0c1d">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#ab85ad419ba58d11e868d57df0d3b531e">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1Polygon.html#ad6add3cf9861c12c87fcaee536ba654d">geos::geom::Polygon</a>, and <a class="el" href="classgeos_1_1geom_1_1Point.html#ac851c860be0aadc21932a84d59e22e3a">geos::geom::Point</a>.</p>
</div>
</div>
<a class="anchor" id="ad0c80a1b3bae8d82cbd07ed8d9a29431"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void geos::geom::Geometry::apply_ro </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1GeometryComponentFilter.html">GeometryComponentFilter</a> *&#160;</td>
<td class="paramname"><em>filter</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented in <a class="el" href="classgeos_1_1geom_1_1LineString.html#aa7eb54dba001a7f79b3bdc971c22a86c">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#a05a10b821275e356b0d0157ccfd06dd3">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1Polygon.html#a07feb35b142454233484b81d7a0d897b">geos::geom::Polygon</a>, and <a class="el" href="classgeos_1_1geom_1_1Point.html#a68c60b6c16d0b7a017a9d63573af7b91">geos::geom::Point</a>.</p>
</div>
</div>
<a class="anchor" id="a31aa2b7a73162848ceaffdb25d91a9dc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void geos::geom::Geometry::apply_ro </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1CoordinateSequenceFilter.html">CoordinateSequenceFilter</a> &amp;&#160;</td>
<td class="paramname"><em>filter</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Performs a read-only operation on the coordinates in this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>'s CoordinateSequences.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">filter</td><td>the filter to apply </td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1LineString.html#a0f9f6154547017eacd2d4678427f41a4">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#a52ed668c8a491c8d031a52f978fa972a">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#a523970887b3aacae63b4cd20be5c8183">geos::geom::Point</a>, and <a class="el" href="classgeos_1_1geom_1_1Polygon.html#a8fdf67ba2bc055c0887510c8390fe537">geos::geom::Polygon</a>.</p>
</div>
</div>
<a class="anchor" id="acf14906978c9de8b272d79b53384b119"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void geos::geom::Geometry::apply_rw </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1CoordinateFilter.html">CoordinateFilter</a> *&#160;</td>
<td class="paramname"><em>filter</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1LineString.html#a6a88dacec8d6f538875bf4f3a83be981">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#a559ce52d7435dc2ab6ee020c62d19ec5">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#a5000d8b05a89b5671725c49be0af8810">geos::geom::Point</a>, and <a class="el" href="classgeos_1_1geom_1_1Polygon.html#ace0ca4cb1b452121111ef6300344e3f0">geos::geom::Polygon</a>.</p>
</div>
</div>
<a class="anchor" id="a456660fcd9ffe7eea27e64df606423f4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void geos::geom::Geometry::apply_rw </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1GeometryFilter.html">GeometryFilter</a> *&#160;</td>
<td class="paramname"><em>filter</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented in <a class="el" href="classgeos_1_1geom_1_1LineString.html#a9dca25dd3fdb50ce13bb0afff904baf3">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#ad811dbb3ab4e5ac8d1f0542959d9d50b">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#a51e1f3fb7ce303d0eb381214711132df">geos::geom::Point</a>, and <a class="el" href="classgeos_1_1geom_1_1Polygon.html#af66cc54ed8af75a4f3d6866e7a1f80e8">geos::geom::Polygon</a>.</p>
</div>
</div>
<a class="anchor" id="aae37f54cfec3c57c912bfb0203cd0f70"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void geos::geom::Geometry::apply_rw </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1GeometryComponentFilter.html">GeometryComponentFilter</a> *&#160;</td>
<td class="paramname"><em>filter</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented in <a class="el" href="classgeos_1_1geom_1_1LineString.html#a23d41f610e3c4d8bd6d707d98c441343">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#a50faa62d127bd934aede0dbb0cb54124">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1Polygon.html#ab47e930c89a3563baa65545ca6296b69">geos::geom::Polygon</a>, and <a class="el" href="classgeos_1_1geom_1_1Point.html#afc8ff9c82768f75a5202f158bd3c5247">geos::geom::Point</a>.</p>
</div>
</div>
<a class="anchor" id="a19566f7393929d162eead6ee454fe97f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void geos::geom::Geometry::apply_rw </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1CoordinateSequenceFilter.html">CoordinateSequenceFilter</a> &amp;&#160;</td>
<td class="paramname"><em>filter</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Performs an operation on the coordinates in this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>'s CoordinateSequences. If the filter reports that a coordinate value has been changed, <a class="el" href="classgeos_1_1geom_1_1Geometry.html#aea794bfb662989dd8690854723edc72c">geometryChanged</a> will be called automatically.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">filter</td><td>the filter to apply </td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1LineString.html#a66a5465b8058a613366f70801f1d1fb3">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#afd0accfd9fdb24df4d45795d4ee9b129">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#a7a06da255614d042367177d10c9ae36a">geos::geom::Point</a>, and <a class="el" href="classgeos_1_1geom_1_1Polygon.html#afd4eeb114370f72a4b52b9eb7643b552">geos::geom::Polygon</a>.</p>
</div>
</div>
<a class="anchor" id="a979504ef90b6d3b67af529cec504fbfe"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::geom::Geometry::applyComponentFilter </td>
<td>(</td>
<td class="paramtype">T &amp;&#160;</td>
<td class="paramname"><em>f</em></td><td>)</td>
<td> const</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>Apply a filter to each component of this geometry. The filter is expected to provide a .filter(const Geometry*) method. </p>
<p>I intend similar templated methods to replace all the virtual apply_rw and apply_ro functions... &ndash;strk(2005-02-06); </p>
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00768">768</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
<p>Referenced by <a class="el" href="LineSequencer_8h_source.html#l00243">geos::operation::linemerge::LineSequencer::add()</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1geom_1_1Geometry_a979504ef90b6d3b67af529cec504fbfe_icgraph.svg" width="667" height="55"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</p>
</div>
</div>
<a class="anchor" id="a5cc0d6fb6a34d910a43d2e121cdbd953"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>&gt; geos::geom::Geometry::buffer </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>distance</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a buffer region around this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> having the given width.</p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classgeos_1_1util_1_1TopologyException.html" title="Indicates an invalid or inconsistent topological situation encountered during processing. ">util::TopologyException</a></td><td>if a robustness error occurs </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ac4ed9cb9f73f887a9532dd6796eff1ff"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>&gt; geos::geom::Geometry::buffer </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>distance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>quadrantSegments</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a buffer region around this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> having the given width and with a specified number of segments used to approximate curves. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classgeos_1_1util_1_1TopologyException.html" title="Indicates an invalid or inconsistent topological situation encountered during processing. ">util::TopologyException</a></td><td>if a robustness error occurs </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ac1281df1d0f5493ccefb7d475ec6fef5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>&gt; geos::geom::Geometry::buffer </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>distance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>quadrantSegments</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>endCapStyle</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes a buffer area around this geometry having the given width and with a specified accuracy of approximation for circular arcs, and using a specified end cap style. </p>
<p>Buffer area boundaries can contain circular arcs. To represent these arcs using linear geometry they must be approximated with line segments.</p>
<p>The <code>quadrantSegments</code> argument allows controlling the accuracy of the approximation by specifying the number of line segments used to represent a quadrant of a circle</p>
<p>The end cap style specifies the buffer geometry that will be created at the ends of linestrings. The styles provided are:</p>
<ul>
<li>BufferOp::CAP_ROUND - (default) a semi-circle</li>
<li>BufferOp::CAP_BUTT - a straight line perpendicular to the end segment</li>
<li>BufferOp::CAP_SQUARE - a half-square</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">distance</td><td>the width of the buffer (may be positive, negative or 0)</td></tr>
<tr><td class="paramname">quadrantSegments</td><td>the number of line segments used to represent a quadrant of a circle</td></tr>
<tr><td class="paramname">endCapStyle</td><td>the end cap style to use</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>an area geometry representing the buffer region</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classgeos_1_1util_1_1TopologyException.html" title="Indicates an invalid or inconsistent topological situation encountered during processing. ">util::TopologyException</a></td><td>if a robustness error occurs</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd>BufferOp </dd></dl>
</div>
</div>
<a class="anchor" id="a8171b99f5d8008ace488987cf8ed5a92"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void geos::geom::Geometry::checkNotGeometryCollection </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">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">static</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a6833a38c613d19e1da22cb05d81d4630"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>&gt; geos::geom::Geometry::clone </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Make a deep-copy of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. </p>
<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1MultiPoint.html#a9fe97b19fa7ee74de071d56ca24c71fa">geos::geom::MultiPoint</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html#a22c5b19cfcf262499f3e34d1038e6ee8">geos::geom::MultiPolygon</a>, <a class="el" href="classgeos_1_1geom_1_1LinearRing.html#a4f63cb6b2ac54068a5dcfc2d76797ee1">geos::geom::LinearRing</a>, <a class="el" href="classgeos_1_1geom_1_1LineString.html#ac2b95d03f590b0ed834e3198a76559c7">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html#a8318e02f45d5203d54e295cc80710186">geos::geom::MultiLineString</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#aadcab70cdff1c9a301b8cce4f07d2dbd">geos::geom::Point</a>, <a class="el" href="classgeos_1_1geom_1_1Polygon.html#a54227cd0bf8b681573698f6d1429e5ed">geos::geom::Polygon</a>, and <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#a9569dfaee9befe915267da4572030dd1">geos::geom::GeometryCollection</a>.</p>
</div>
</div>
<a class="anchor" id="a503123b04b883a8cc0eef9186fb92c57"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int geos::geom::Geometry::compare </td>
<td>(</td>
<td class="paramtype">std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> &gt;&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> &gt;&#160;</td>
<td class="paramname"><em>b</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a74b95e958ffbad3c42e1d2c343feda5d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int geos::geom::Geometry::compare </td>
<td>(</td>
<td class="paramtype">std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> * &gt;&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> * &gt;&#160;</td>
<td class="paramname"><em>b</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a89bbe1834f504972e99bededf1ef7321"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int geos::geom::Geometry::compare </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&gt; &amp;&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&gt; &amp;&#160;</td>
<td class="paramname"><em>b</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a76c044f721a6dca257d2aaffdc687579"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual int geos::geom::Geometry::compareTo </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>geom</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Comparator for sorting geometry. </p>
<p>Referenced by <a class="el" href="LineString_8h_source.html#l00219">geos::geom::LineStringLT::operator()()</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1geom_1_1Geometry_a76c044f721a6dca257d2aaffdc687579_icgraph.svg" width="414" height="55"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</p>
</div>
</div>
<a class="anchor" id="a3d64998d440dadd536ccf357c1d02988"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual int geos::geom::Geometry::compareToSameClass </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>geom</em></td><td>)</td>
<td> const</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>Implemented in <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#a7562579d6d218b590ff0ee6e07a6e6d0">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1LineString.html#a375163a574141bafdd7b345431b4abef">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#aad3a09fbd44f410e262346cf0518b5a1">geos::geom::Point</a>, and <a class="el" href="classgeos_1_1geom_1_1Polygon.html#ad69419712f7da9b12fa86dd481f36edf">geos::geom::Polygon</a>.</p>
</div>
</div>
<a class="anchor" id="aceb3b9165580c49b251ba45227fdaacb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classgeos_1_1geom_1_1Envelope.html#ab206f2390f2fc2efd3df9e6eab71c672">Envelope::Ptr</a> geos::geom::Geometry::computeEnvelopeInternal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</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>Implemented in <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#aae49cd9dba7dd03d8d18eeb915d74b17">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1LineString.html#a94acb04fb43cfc42e919993869b428d1">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1Polygon.html#a7bdd9c46b4154dfc68edae928f7a9f4c">geos::geom::Polygon</a>, and <a class="el" href="classgeos_1_1geom_1_1Point.html#affa11c88eef1f192d64a3eae44884751">geos::geom::Point</a>.</p>
</div>
</div>
<a class="anchor" id="a5a1244c6b1d1e9ab823a282692d06cb9"></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::Geometry::contains </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>g</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if other.within(this) returns true. </p>
</div>
</div>
<a class="anchor" id="a4f86738f74c28ad8f7278f62e305719d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>&gt; geos::geom::Geometry::convexHull </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the smallest convex <a class="el" href="classgeos_1_1geom_1_1Polygon.html" title="Represents a linear polygon, which may include holes. ">Polygon</a> that contains all the points in the <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. </p>
<p>Reimplemented in <a class="el" href="classgeos_1_1geom_1_1Polygon.html#a44852687ce538bd199b97789be3634ff">geos::geom::Polygon</a>.</p>
</div>
</div>
<a class="anchor" id="af979c13c17f500907d0be400f80abb45"></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::Geometry::coveredBy </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>g</em></td><td>)</td>
<td> const</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>Tests whether this geometry is covered by the specified geometry. </p>
<p>The <code>coveredBy</code> predicate has the following equivalent definitions:</p>
<ul>
<li>Every point of this geometry is a point of the other geometry.</li>
<li>The DE-9IM Intersection Matrix for the two geometries matches <code>[T*F**F***]</code> or <code>[*TF**F***]</code> or <code>[**FT*F***]</code> or <code>[**F*TF***]</code></li>
<li><code>g.covers(this)</code> (<code>coveredBy</code> is the converse of <code>covers</code>)</li>
</ul>
<p>If either geometry is empty, the value of this predicate is <code>false</code>.</p>
<p>This predicate is similar to <a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad88a5cc29827e3fc2014680e813e7dad">within</a>, but is more inclusive (i.e. returns <code>true</code> for more cases).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">g</td><td>the <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code> with which to compare this <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code> </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if this <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code> is covered by <code>g</code></dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad88a5cc29827e3fc2014680e813e7dad" title="Returns true if the DE-9IM intersection matrix for the two Geometrys is T*F**F***. ">Geometry::within</a> </dd>
<dd>
<a class="el" href="classgeos_1_1geom_1_1Geometry.html#aad901fe993635be50793e7cfd19b113f" title="Returns true if this geometry covers the specified geometry. ">Geometry::covers</a> </dd></dl>
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00581">581</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
<p>References <a class="el" href="classgeos_1_1geom_1_1Geometry.html#aad901fe993635be50793e7cfd19b113f">covers()</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1geom_1_1Geometry_af979c13c17f500907d0be400f80abb45_cgraph.svg" width="395" height="55"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</p>
</div>
</div>
<a class="anchor" id="aad901fe993635be50793e7cfd19b113f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool geos::geom::Geometry::covers </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>g</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns <code>true</code> if this geometry covers the specified geometry. </p>
<p>The <code>covers</code> predicate has the following equivalent definitions:</p>
<ul>
<li>Every point of the other geometry is a point of this geometry.</li>
<li>The DE-9IM Intersection Matrix for the two geometries is <code>T*****FF*</code> or <code>*T****FF*</code> or <code>***T**FF*</code> or <code>****T*FF*</code></li>
<li><code>g.coveredBy(this)</code> (<code>covers</code> is the inverse of <code>coveredBy</code>)</li>
</ul>
<p>If either geometry is empty, the value of this predicate is <code>false</code>.</p>
<p>This predicate is similar to <a class="el" href="classgeos_1_1geom_1_1Geometry.html#a5a1244c6b1d1e9ab823a282692d06cb9">contains</a>, but is more inclusive (i.e. returns <code>true</code> for more cases). In particular, unlike <code>contains</code> it does not distinguish between points in the boundary and in the interior of geometries. For most situations, <code>covers</code> should be used in preference to <code>contains</code>. As an added benefit, <code>covers</code> is more amenable to optimization, and hence should be more performant.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">g</td><td>the <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code> with which to compare this <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if this <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code> covers <code>g</code></dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a5a1244c6b1d1e9ab823a282692d06cb9" title="Returns true if other.within(this) returns true. ">Geometry::contains</a> </dd>
<dd>
<a class="el" href="classgeos_1_1geom_1_1Geometry.html#af979c13c17f500907d0be400f80abb45" title="Tests whether this geometry is covered by the specified geometry. ">Geometry::coveredBy</a> </dd></dl>
<p>Referenced by <a class="el" href="Geometry_8h_source.html#l00581">coveredBy()</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1geom_1_1Geometry_aad901fe993635be50793e7cfd19b113f_icgraph.svg" width="395" height="55"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</p>
</div>
</div>
<a class="anchor" id="ade9808e984e4aa08a038cecd77b37d58"></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::Geometry::crosses </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>g</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Tests whether this geometry crosses the specified geometry.</p>
<p>The <code>crosses</code> predicate has the following equivalent definitions:</p><ul>
<li>The geometries have some but not all interior points in common.</li>
<li>The DE-9IM Intersection Matrix for the two geometries matches<ul>
<li><code>[T*T******]</code> (for P/L, P/A, and L/A situations)</li>
<li><code>[T*****T**]</code> (for L/P, A/P, and A/L situations)</li>
<li><code>[0********]</code> (for L/L situations) For any other combination of dimensions this predicate returns <code>false</code>.</li>
</ul>
</li>
</ul>
<p>The SFS defined this predicate only for P/L, P/A, L/L, and L/A situations. JTS extends the definition to apply to L/P, A/P and A/L situations as well, in order to make the relation symmetric.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">g</td><td>the <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code> with which to compare this <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code> </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the two <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code>s cross. </dd></dl>
</div>
</div>
<a class="anchor" id="afc9bcf3e89d6cadf5f733d2ebf02299b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>&gt; geos::geom::Geometry::difference </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> representing the points making up this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> that do not make up other. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classgeos_1_1util_1_1TopologyException.html" title="Indicates an invalid or inconsistent topological situation encountered during processing. ">util::TopologyException</a></td><td>if a robustness error occurs </td></tr>
<tr><td class="paramname"><a class="el" href="classgeos_1_1util_1_1IllegalArgumentException.html" title="Indicates one or more illegal arguments. ">util::IllegalArgumentException</a></td><td>if either input is a non-empty <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html" title="Represents a collection of heterogeneous Geometry objects. ">GeometryCollection</a> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a0ecd455a3ea581965956cdf5d90a83d5"></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::Geometry::disjoint </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Tests whether this geometry is disjoint from the specified geometry.</p>
<p>The <code>disjoint</code> predicate has the following equivalent definitions:</p><ul>
<li>The two geometries have no point in common</li>
<li>The DE-9IM Intersection Matrix for the two geometries matches <code>[FF*FF****]</code></li>
<li><code>! g.intersects(this)</code> (<code>disjoint</code> is the inverse of <code>intersects</code>)</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>the <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> with which to compare this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the two <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code>s are disjoint</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a4b52247de62578a82fdd8f3b044da376" title="Returns true if disjoint returns false. ">Geometry::intersects</a> </dd></dl>
</div>
</div>
<a class="anchor" id="ad21bf3fd92a4d3c573228806f77123b7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual double geos::geom::Geometry::distance </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>g</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the minimum distance between this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> and the <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> g. </p>
</div>
</div>
<a class="anchor" id="a34955c401f5a15016cc957aa8c277c69"></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::Geometry::equal </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>tolerance</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a80bac369fef274ce44592f5565284c20"></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::Geometry::equals </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>g</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if the DE-9IM intersection matrix for the two Geometrys is T*F**FFF*. </p>
</div>
</div>
<a class="anchor" id="a29b0259d378be997ce1bb80739b405a1"></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::Geometry::equalsExact </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>other</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>tolerance</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true iff the two Geometrys are of the same type and their vertices corresponding by index are equal up to a specified tolerance. </p>
<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1LineString.html#ac18f1c90030d5d771e80ea8455fa1803">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#a93b538f1fc0a3abd26f61cfe0631b4f2">geos::geom::Point</a>, <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#acac88b19fa154f59288855af92c5ce0d">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1Polygon.html#aab0dbce9a65a686414849e784086e384">geos::geom::Polygon</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html#a9c3459db6c30d2264b520bf8bf62429b">geos::geom::MultiPolygon</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPoint.html#a1ea826b41d9b2430239d97fffe5c73fa">geos::geom::MultiPoint</a>, and <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html#aa6612c41b6df98798947cd95f20ff26a">geos::geom::MultiLineString</a>.</p>
</div>
</div>
<a class="anchor" id="aea794bfb662989dd8690854723edc72c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void geos::geom::Geometry::geometryChanged </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Notifies this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> that its Coordinates have been changed by an external party (using a <a class="el" href="classgeos_1_1geom_1_1CoordinateFilter.html" title="Geometry classes support the concept of applying a coordinate filter to every coordinate in the Geome...">CoordinateFilter</a>, for example). </p>
</div>
</div>
<a class="anchor" id="a175a97030b47b67bce9d92123ba570e8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::geom::Geometry::geometryChangedAction </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Notifies this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> that its Coordinates have been changed by an external party. </p>
</div>
</div>
<a class="anchor" id="a144de29d8a886392e275d3dca689a784"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual double geos::geom::Geometry::getArea </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the area of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. </p>
<p>Reimplemented in <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#a9b2038753f8248b1b91b87638de228f0">geos::geom::GeometryCollection</a>, and <a class="el" href="classgeos_1_1geom_1_1Polygon.html#a54d66ad534e8cc1979124bfe7acdbf71">geos::geom::Polygon</a>.</p>
</div>
</div>
<a class="anchor" id="a41b9f1f8571b73f6b3772e98076a8fb1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>&gt; geos::geom::Geometry::getBoundary </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the boundary, or an empty geometry of appropriate dimension if this <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code> is empty. </p>
<p>(In the case of zero-dimensional geometries, an empty <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html" title="Represents a collection of heterogeneous Geometry objects. ">GeometryCollection</a> is returned.) For a discussion of this function, see the OpenGIS Simple Features Specification. As stated in SFS Section 2.1.13.1, "the boundary of a Geometry is a set of Geometries of the
next lower dimension."</p>
<dl class="section return"><dt>Returns</dt><dd>the closure of the combinatorial boundary of this <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code>. Ownershipof the returned object transferred to caller. </dd></dl>
<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#aa566b9cf882b92bafe862b3bf7a15ada">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#abce6b6a58877a95f0a8734156d892009">geos::geom::Point</a>, <a class="el" href="classgeos_1_1geom_1_1LineString.html#a29cc9de845fbce90a0b79adf29336d31">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1Polygon.html#ae505b31127dd675608b7ab9d0212c0e4">geos::geom::Polygon</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html#aa83bcd7cc0faae0bfe1bf09cdac82d2e">geos::geom::MultiPolygon</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPoint.html#a64b8fac40a95255d43bbd4ebf363fdd3">geos::geom::MultiPoint</a>, and <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html#a3b7dcf10ac582ae05a0f2304f905851e">geos::geom::MultiLineString</a>.</p>
</div>
</div>
<a class="anchor" id="a04323ca0c85af4e662bafb3534424ea1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual int geos::geom::Geometry::getBoundaryDimension </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the dimension of this Geometrys inherent boundary. </p>
<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#ac4fc8e082082369272db91d7f93b763e">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#a97cc2e8f997338a9fde8145291172e40">geos::geom::Point</a>, <a class="el" href="classgeos_1_1geom_1_1LineString.html#abb8a749a498ba406f4796cdd8c6de5e4">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1LinearRing.html#a3c9b8fa68060ce6b8a2770ab0c3a1323">geos::geom::LinearRing</a>, <a class="el" href="classgeos_1_1geom_1_1Polygon.html#a40436d19f0fb13d2d71f8264f5244360">geos::geom::Polygon</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html#a11926ffa28b6766d7d2c3de955ebd1b6">geos::geom::MultiPolygon</a>, <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html#aea7ba344de966f9fba4785bd569d63ef">geos::geom::MultiLineString</a>, and <a class="el" href="classgeos_1_1geom_1_1MultiPoint.html#a9cc0ca9841d401f88224734375985fac">geos::geom::MultiPoint</a>.</p>
</div>
</div>
<a class="anchor" id="a09563e7297a4f4ff9c5dd017739676e6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Point.html">Point</a>&gt; geos::geom::Geometry::getCentroid </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the centroid of this <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code>. </p>
<p>The centroid is equal to the centroid of the set of component Geometries of highest dimension (since the lower-dimension geometries contribute zero "weight" to the centroid)</p>
<dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="classgeos_1_1geom_1_1Point.html">Point</a> which is the centroid of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> </dd></dl>
</div>
</div>
<a class="anchor" id="a4121cc98d0c534ad430aa66448f70ad3"></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::Geometry::getCentroid </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>ret</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the centroid of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> as a <a class="el" href="classgeos_1_1geom_1_1Coordinate.html" title="Coordinate is the lightweight class used to store coordinates. ">Coordinate</a>. </p>
<p>Returns false if centroid cannot be computed (EMPTY geometry) </p>
</div>
</div>
<a class="anchor" id="acefe992c172712a951a6055a1adf447a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a>* geos::geom::Geometry::getCoordinate </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a vertex of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>, or NULL if this is the empty geometry. </p>
<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1LineString.html#af16c5cc322a04b2818b23af2fb02a175">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#ac6ffa7977b7558d4eadec9390ed6c642">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1Polygon.html#a39f78c006a9cacf82848937ef884ac97">geos::geom::Polygon</a>, and <a class="el" href="classgeos_1_1geom_1_1Point.html#a3732c723771c037f81b83224d481438b">geos::geom::Point</a>.</p>
</div>
</div>
<a class="anchor" id="a458b74b03913b42cfbec6bcb8f8c7ed2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual uint8_t geos::geom::Geometry::getCoordinateDimension </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the coordinate dimension of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> (2=XY, 3=XYZ, 4=XYZM in future). </p>
<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#a3a0fb066dc73b520500d9d6b6fa5dc3a">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1LineString.html#ad3cbd7423dcee0cb0496b8f82da3e259">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#ae2ede4e7063da0a6f4e3119ad6edbda7">geos::geom::Point</a>, and <a class="el" href="classgeos_1_1geom_1_1Polygon.html#a35c120658f1804362c5f8c3e48507a85">geos::geom::Polygon</a>.</p>
</div>
</div>
<a class="anchor" id="a6ccf6aba0a66e052bf45478da6fa4ece"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">CoordinateSequence</a>&gt; geos::geom::Geometry::getCoordinates </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> vertices. Caller takes ownership of the returned object. </p>
<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#ae8aa0570e3b32645211ed0f9c2b00805">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#a50a16a31044e6dad6b8e3f26eb44b492">geos::geom::Point</a>, <a class="el" href="classgeos_1_1geom_1_1LineString.html#aebb5a6a2d5b7a3274ad2ed1e30f7479e">geos::geom::LineString</a>, and <a class="el" href="classgeos_1_1geom_1_1Polygon.html#a69c763f6f92493f871eaf6487bee2bc8">geos::geom::Polygon</a>.</p>
</div>
</div>
<a class="anchor" id="ae6e5cb68c6b3edb5b71dc983a2795c5c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classgeos_1_1geom_1_1Dimension.html#af46f1c0c325eb685fcf32987748d04cf">Dimension::DimensionType</a> geos::geom::Geometry::getDimension </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the dimension of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> (0=point, 1=line, 2=surface) </p>
<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#ac13caf5b6a876a8d31a04993f031a6c2">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#a6fc5f4745ef11eb37711c7261dae4ad7">geos::geom::Point</a>, <a class="el" href="classgeos_1_1geom_1_1LineString.html#a45dcd50f28b2addfc8325be0a9e782be">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1Polygon.html#abd60a9c59cbdc0136f8e35254a75b25c">geos::geom::Polygon</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html#a19e7932d657e76ace128b32f1381b0e6">geos::geom::MultiPolygon</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPoint.html#a8a030a9e20b9c099b1568a697d0c1381">geos::geom::MultiPoint</a>, and <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html#a76c96430dd2dac3441ce751e245ae379">geos::geom::MultiLineString</a>.</p>
</div>
</div>
<a class="anchor" id="ae28ade9f5170576fbb5dbe1f86f45e13"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>&gt; geos::geom::Geometry::getEnvelope </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns this Geometrys bounding box. </p>
</div>
</div>
<a class="anchor" id="a2b59a1a031912dc198ba7dca24b2643e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual const <a class="el" href="classgeos_1_1geom_1_1Envelope.html">Envelope</a>* geos::geom::Geometry::getEnvelopeInternal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the minimum and maximum x and y values in this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>, or a null <a class="el" href="classgeos_1_1geom_1_1Envelope.html" title="An Envelope defines a rectangulare region of the 2D coordinate plane. ">Envelope</a> if this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> is empty. </p>
</div>
</div>
<a class="anchor" id="ab41bcf3461be250e143ed2d7da19815b"></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_1GeometryFactory.html">GeometryFactory</a>* geos::geom::Geometry::getFactory </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</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>Gets the factory which contains the context in which this geometry was created. </p>
<dl class="section return"><dt>Returns</dt><dd>the factory for this geometry </dd></dl>
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00218">218</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
<p>Referenced by <a class="el" href="UnaryUnionOp_8h_source.html#l00173">geos::operation::geounion::UnaryUnionOp::extract()</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1geom_1_1Geometry_ab41bcf3461be250e143ed2d7da19815b_icgraph.svg" width="415" height="55"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</p>
</div>
</div>
<a class="anchor" id="ae46e3ec59729a56ea2979b5a177cc25d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* geos::geom::Geometry::getGeometryN </td>
<td>(</td>
<td class="paramtype">std::size_t&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</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>Returns a pointer to the nth <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> in this collection (or self if this is not a collection) </p>
<p>Reimplemented in <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#a9f40ede5f29b30ea59a47def64671565">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html#a46ff5b1c5523cca3ccf1903b167b8e2d">geos::geom::MultiPolygon</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPoint.html#aaca0f065dae80506a38cc01cc27ca634">geos::geom::MultiPoint</a>, and <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html#a8823fc1acf036e7df67ead92b3e077f2">geos::geom::MultiLineString</a>.</p>
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00318">318</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<a class="anchor" id="a4290decd50c0d21fd976d34ab418ef0f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual std::string geos::geom::Geometry::getGeometryType </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Return a string representation of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> type. </p>
<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1LineString.html#abc4825532f335163b059e3150590a88d">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#a24d6e0adebf58a989011b059ee542519">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#a00a12726eaee1f0e45784be0aece5e23">geos::geom::Point</a>, <a class="el" href="classgeos_1_1geom_1_1Polygon.html#a42ff30f39e321643e776be65372ea45a">geos::geom::Polygon</a>, <a class="el" href="classgeos_1_1geom_1_1LinearRing.html#a90b6957c2b68bf34e83147b30ca6e3e4">geos::geom::LinearRing</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html#a2a3a2f8754e7147de632b959e5260d8d">geos::geom::MultiPolygon</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPoint.html#a77589cae292dcae7e20d50d8019359f1">geos::geom::MultiPoint</a>, and <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html#ad69e1fc4ed8b2e1dcb8b55b101dba3b7">geos::geom::MultiLineString</a>.</p>
</div>
</div>
<a class="anchor" id="a3680d76fcb2b2f8e2336ea3a2de5cbf8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8">GeometryTypeId</a> geos::geom::Geometry::getGeometryTypeId </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Return an integer representation of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> type. </p>
<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1LineString.html#a4a87cc0f03e146cdcda914c601f8d099">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#a7004410b8382d1772a9aac803afbdc96">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#aeb50dd6b49f86bd06b15b4257bd4aa3f">geos::geom::Point</a>, <a class="el" href="classgeos_1_1geom_1_1Polygon.html#aed5c44e0fb96684edc0a1fa90edc6ac8">geos::geom::Polygon</a>, <a class="el" href="classgeos_1_1geom_1_1LinearRing.html#adf89e6d52cd27371730f6e6c2cddee76">geos::geom::LinearRing</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html#a41974d638eccea7487a47f886946bf61">geos::geom::MultiPolygon</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPoint.html#a5689ce2eb11687647c3783240a9ca6be">geos::geom::MultiPoint</a>, and <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html#ace45409f2f670a106a094645c931b024">geos::geom::MultiLineString</a>.</p>
</div>
</div>
<a class="anchor" id="a178c66ec24a370d88b6fe59410507133"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Point.html">Point</a>&gt; geos::geom::Geometry::getInteriorPoint </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes an interior point of this <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code>. </p>
<p>An interior point is guaranteed to lie in the interior of the <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>, if it possible to calculate such a point exactly. Otherwise, the point may lie on the boundary of the geometry.</p>
<dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="classgeos_1_1geom_1_1Point.html">Point</a> which is in the interior of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>, or null if the geometry doesn't have an interior (empty) </dd></dl>
</div>
</div>
<a class="anchor" id="a1630fb2f4f8ea61cfba896fdd52df5b0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual double geos::geom::Geometry::getLength </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the length of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. </p>
<p>Reimplemented in <a class="el" href="classgeos_1_1geom_1_1LineString.html#aa0e836b36b7343b7fecb257b0b523dbe">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#ac78d624571bf72530adbe9d69cfb4899">geos::geom::GeometryCollection</a>, and <a class="el" href="classgeos_1_1geom_1_1Polygon.html#a2542f7722405beeda7f2a5eb8426b4b2">geos::geom::Polygon</a>.</p>
</div>
</div>
<a class="anchor" id="aa9c08c0e76c8cfc0e13b1b471e4049db"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual std::size_t geos::geom::Geometry::getNumGeometries </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</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>Returns the number of geometries in this collection (or 1 if this is not a collection) </p>
<p>Reimplemented in <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#ad72892e0efeb775e0fd274a779b53d69">geos::geom::GeometryCollection</a>.</p>
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00310">310</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<a class="anchor" id="a730f691c91d12191629f2ce889dc7c37"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual std::size_t geos::geom::Geometry::getNumPoints </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the count of this Geometrys vertices. </p>
<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#a9ed92e6668686c38d49290578498a3ea">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1LineString.html#ad7eb7288fa0e7e6f489734eeddbe6f57">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#a96d049b53428a8c1eaeb02eaec68e75d">geos::geom::Point</a>, and <a class="el" href="classgeos_1_1geom_1_1Polygon.html#a2a9b6b1ace743e6f31a9648584dc78f7">geos::geom::Polygon</a>.</p>
</div>
</div>
<a class="anchor" id="a6dc225a75bb941b9dc4deebd682885f9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">PrecisionModel</a>* geos::geom::Geometry::getPrecisionModel </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html" title="Specifies the precision model of the Coordinate in a Geometry. ">PrecisionModel</a> used to create this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. </p>
</div>
</div>
<a class="anchor" id="a32559974d1d58f5676594e0bef0d970f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual int geos::geom::Geometry::getSortIndex </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</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>Implemented in <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#a823a26229c16653663c99529d7aa88b2">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1LineString.html#aa3887216e72abe08036d45f1c0181f1b">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1Polygon.html#a33ca77d6e11b84223abe3685cd092c79">geos::geom::Polygon</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#a65228375a6291b3ac479e79662a5c6fc">geos::geom::Point</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPoint.html#a13984764d2f0c90eb145f2a7ce2106fb">geos::geom::MultiPoint</a>, <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html#a1d6e62aa1f44d8fedfaad0b49df955c8">geos::geom::MultiLineString</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html#aa50c4f882dc0462596cf00d4b301326c">geos::geom::MultiPolygon</a>, and <a class="el" href="classgeos_1_1geom_1_1LinearRing.html#a70b7e3db0ea8fe5049631db86b2ed19b">geos::geom::LinearRing</a>.</p>
<p>Referenced by <a class="el" href="GeometryFactory_8h_source.html#l00362">geos::geom::GeometryFactory::buildGeometry()</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1geom_1_1Geometry_a32559974d1d58f5676594e0bef0d970f_icgraph.svg" width="443" height="55"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</p>
</div>
</div>
<a class="anchor" id="a898135f854cc07c243e7deb45de65505"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual int geos::geom::Geometry::getSRID </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</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>Returns the ID of the Spatial Reference System used by the <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. </p>
<p>GEOS supports Spatial Reference System information in the simple way defined in the SFS. A Spatial Reference System ID (SRID) is present in each <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> object. <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> provides basic accessor operations for this field, but no others. The SRID is represented as an integer.</p>
<dl class="section return"><dt>Returns</dt><dd>the ID of the coordinate space in which the <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> is defined. </dd></dl>
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00265">265</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<a class="anchor" id="a28afb816f4065c929e97108da1503f29"></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::Geometry::getUserData </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</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>Gets the user data object for this geometry, if any. </p>
<dl class="section return"><dt>Returns</dt><dd>the user data object, or <code>null</code> if none set </dd></dl>
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00249">249</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9fe7d434f5eeac333fca775a652f5d70"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool geos::geom::Geometry::hasNonEmptyElements </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; *&#160;</td>
<td class="paramname"><em>geometries</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if the array contains any non-empty Geometrys. </p>
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00861">861</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
<p>References <a class="el" href="classgeos_1_1geom_1_1Geometry.html#a76c52f479ea31bd1d5c5bde8ba089657">isEmpty()</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1geom_1_1Geometry_a9fe7d434f5eeac333fca775a652f5d70_cgraph.svg" width="408" height="55"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</p>
</div>
</div>
<a class="anchor" id="a74eec53d6fe428fc63e030f026e60a62"></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::geom::Geometry::hasNullElements </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">CoordinateSequence</a> *&#160;</td>
<td class="paramname"><em>list</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if the <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html" title="The internal representation of a list of coordinates inside a Geometry. ">CoordinateSequence</a> contains any null elements. </p>
</div>
</div>
<a class="anchor" id="af956233ea57ece02cc8a97338e8e91db"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool geos::geom::Geometry::hasNullElements </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; T &gt; *&#160;</td>
<td class="paramname"><em>geometries</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if the vector contains any null elements. </p>
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00870">870</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<a class="anchor" id="a8c5ff18d6f80bf04ee7dd883bbc616aa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>&gt; geos::geom::Geometry::intersection </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> representing the points shared by this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> and other. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classgeos_1_1util_1_1TopologyException.html" title="Indicates an invalid or inconsistent topological situation encountered during processing. ">util::TopologyException</a></td><td>if a robustness error occurs </td></tr>
<tr><td class="paramname"><a class="el" href="classgeos_1_1util_1_1IllegalArgumentException.html" title="Indicates one or more illegal arguments. ">util::IllegalArgumentException</a></td><td>if either input is a non-empty <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html" title="Represents a collection of heterogeneous Geometry objects. ">GeometryCollection</a> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a4b52247de62578a82fdd8f3b044da376"></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::Geometry::intersects </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>g</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if disjoint returns false. </p>
</div>
</div>
<a class="anchor" id="afee501f64aba753afaf622adcd7a0872"></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::Geometry::isCollection </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</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="Geometry_8h_source.html#l00364">364</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
<p>References <a class="el" href="Geometry_8h_source.html#l00091">geos::geom::GEOS_GEOMETRYCOLLECTION</a>, <a class="el" href="Geometry_8h_source.html#l00087">geos::geom::GEOS_MULTILINESTRING</a>, <a class="el" href="Geometry_8h_source.html#l00085">geos::geom::GEOS_MULTIPOINT</a>, and <a class="el" href="Geometry_8h_source.html#l00089">geos::geom::GEOS_MULTIPOLYGON</a>.</p>
</div>
</div>
<a class="anchor" id="a2263ca7a107a8048276f11c92fabfab3"></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::Geometry::isDimensionStrict </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1Dimension.html#af46f1c0c325eb685fcf32987748d04cf">Dimension::DimensionType</a>&#160;</td>
<td class="paramname"><em>d</em></td><td>)</td>
<td> const</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>Checks whether this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> consists only of components having dimension d. </p>
<p>Reimplemented in <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#a1308485768e893f92c18adf43e9c5748">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html#ab9785665451de900868c7091274c076b">geos::geom::MultiPolygon</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPoint.html#a66d62affa7b24d25574022d852268f7f">geos::geom::MultiPoint</a>, and <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html#a63341b9537fd3ebcaa6975a31c5bc7a9">geos::geom::MultiLineString</a>.</p>
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00348">348</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<a class="anchor" id="a76c52f479ea31bd1d5c5bde8ba089657"></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::Geometry::isEmpty </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns whether or not the set of points in this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> is empty. </p>
<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1LineString.html#a3779765884bbb562c9df511f2e15ff9e">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1Polygon.html#aa9f08fde8763d6881a34104b04b49f32">geos::geom::Polygon</a>, <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#abe758001514e8dae9422931073c6bc9f">geos::geom::GeometryCollection</a>, and <a class="el" href="classgeos_1_1geom_1_1Point.html#ac9c95976a55ff9b083341038906699ea">geos::geom::Point</a>.</p>
<p>Referenced by <a class="el" href="Geometry_8h_source.html#l00861">hasNonEmptyElements()</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1geom_1_1Geometry_a76c52f479ea31bd1d5c5bde8ba089657_icgraph.svg" width="408" height="55"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</p>
</div>
</div>
<a class="anchor" id="a33cfd95ad897d4060dba29da511907f0"></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::Geometry::isEquivalentClass </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns whether the two Geometrys are equal, from the point of view of the equalsExact method. </p>
</div>
</div>
<a class="anchor" id="a2663a8eb5273bd53a3048d594ee8dfa3"></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::Geometry::isLineal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</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="Geometry_8h_source.html#l00356">356</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
<p>References <a class="el" href="Dimension_8h_source.html#l00045">geos::geom::Dimension::L</a>.</p>
<p>Referenced by <a class="el" href="LocationIndexedLine_8h_source.html#l00044">geos::linearref::LocationIndexedLine::checkGeometryType()</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1geom_1_1Geometry_a2663a8eb5273bd53a3048d594ee8dfa3_icgraph.svg" width="467" height="55"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</p>
</div>
</div>
<a class="anchor" id="af050e5f878c31a026a9dc7b25042b25a"></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::Geometry::isPolygonal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</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="Geometry_8h_source.html#l00360">360</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
<p>References <a class="el" href="Dimension_8h_source.html#l00048">geos::geom::Dimension::A</a>.</p>
</div>
</div>
<a class="anchor" id="ab169b9909bd730a2e3308b3131383d6a"></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::Geometry::isPuntal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</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="Geometry_8h_source.html#l00352">352</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
<p>References <a class="el" href="Dimension_8h_source.html#l00042">geos::geom::Dimension::P</a>.</p>
</div>
</div>
<a class="anchor" id="ab21116730ab9f580285a7e3a93f7941e"></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::Geometry::isRectangle </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</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><a class="el" href="classgeos_1_1geom_1_1Polygon.html" title="Represents a linear polygon, which may include holes. ">Polygon</a> overrides to check for actual rectangle. </p>
<p>Reimplemented in <a class="el" href="classgeos_1_1geom_1_1Polygon.html#a742205c7f69ce2f632aa55ce9d70a5d1">geos::geom::Polygon</a>.</p>
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00339">339</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<a class="anchor" id="af4b0804bd3903ed656b38b4561e3e577"></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::Geometry::isSimple </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns false if the <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> not simple. </p>
<p>Reimplemented in <a class="el" href="classgeos_1_1geom_1_1Point.html#aa47beb9e7e766345e8fb30e8f535a8b7">geos::geom::Point</a>.</p>
</div>
</div>
<a class="anchor" id="a1f408a97170af8f26c5e6121e720fc8a"></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::Geometry::isValid </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Tests the validity of this <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code>. </p>
<p>Subclasses provide their own definition of "valid".</p>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if this <code><a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></code> is valid</dd></dl>
<dl class="section see"><dt>See also</dt><dd>IsValidOp </dd></dl>
</div>
</div>
<a class="anchor" id="a6f4167b1d2e7723eae267a2041616cb5"></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::Geometry::isWithinDistance </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>geom</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>cDistance</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Tests whether the distance from this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> to another is less than or equal to a specified value. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geom</td><td>the <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> to check the distance to </td></tr>
<tr><td class="paramname">cDistance</td><td>the distance value to compare </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the geometries are less than <code>distance</code> apart.</dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>doesn't seem to need being virtual, make it concrete </dd></dl>
</div>
</div>
<a class="anchor" id="a2ea3b58d562bc183e118e2a68f86414d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void geos::geom::Geometry::normalize </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reorganizes this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> into normal form (or canonical form). Starting point of rings is lower left, collections are ordered by geometry type, etc. </p>
<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1LineString.html#a2a88ddbfc1533447b469b00907144733">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#aec41161875abcda23423d6033c58ba2e">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#a696338f7fafa4ea3edb07ff54c0dd5f0">geos::geom::Point</a>, and <a class="el" href="classgeos_1_1geom_1_1Polygon.html#a09d5aa2c344c9ba6dafc261655de4484">geos::geom::Polygon</a>.</p>
</div>
</div>
<a class="anchor" id="a8f418ca77771a15c864e6475f8b57418"></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::Geometry::overlaps </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>g</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if the DE-9IM intersection matrix for the two Geometrys is T*T***T** (for two points or two surfaces) 1*T***T** (for two curves). </p>
</div>
</div>
<a class="anchor" id="af10709485f02f215811a81cf2f078199"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool geos::geom::Geometry::relate </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>g</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>intersectionPattern</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if the elements in the DE-9IM intersection matrix for the two Geometrys match the elements in intersectionPattern. </p>
<p>IntersectionPattern elements may be: 0 1 2 T ( = 0, 1 or 2) F ( = -1) * ( = -1, 0, 1 or 2).</p>
<p>For more information on the DE-9IM, see the OpenGIS Simple Features Specification.</p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classgeos_1_1util_1_1IllegalArgumentException.html" title="Indicates one or more illegal arguments. ">util::IllegalArgumentException</a></td><td>if either arg is a collection </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ac05904544441dc3cd395a74a14d210d9"></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::Geometry::relate </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &amp;&#160;</td>
<td class="paramname"><em>g</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>intersectionPattern</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</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="Geometry_8h_source.html#l00490">490</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<a class="anchor" id="a74ae102dc0f2640172606d2b4277b950"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1IntersectionMatrix.html">IntersectionMatrix</a>&gt; geos::geom::Geometry::relate </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>g</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the DE-9IM intersection matrix for the two Geometrys. </p>
</div>
</div>
<a class="anchor" id="a9028f93d9244bda4fbaf9331a46d9d2f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1IntersectionMatrix.html">IntersectionMatrix</a>&gt; geos::geom::Geometry::relate </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &amp;&#160;</td>
<td class="paramname"><em>g</em></td><td>)</td>
<td> const</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="Geometry_8h_source.html#l00498">498</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<a class="anchor" id="a4ee841421b0ce7a987b9b740a8a9885f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>&gt; geos::geom::Geometry::reverse </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes a new geometry which has all component coordinate sequences in reverse order (opposite orientation) to this one. </p>
<dl class="section return"><dt>Returns</dt><dd>a reversed geometry </dd></dl>
<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1LineString.html#a8aa1e034255c1453bca1bb1017512b85">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#aeccab9f06346fd2becf8cffc74366566">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#acb89b323ee918fc686665a5e445a48d8">geos::geom::Point</a>, <a class="el" href="classgeos_1_1geom_1_1Polygon.html#abe86b603c957701835325702d6a1315e">geos::geom::Polygon</a>, <a class="el" href="classgeos_1_1geom_1_1LinearRing.html#aa176fab43af2678c5827d25319056eee">geos::geom::LinearRing</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPoint.html#abbeee0f1b87eeb5abe04e3ea67966552">geos::geom::MultiPoint</a>, <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html#a0e41b9fb89f8e729e2782dfc8f2f6aec">geos::geom::MultiLineString</a>, and <a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html#a381fb1d751e643461843e533db06e0df">geos::geom::MultiPolygon</a>.</p>
</div>
</div>
<a class="anchor" id="afc2702d0d3827a304db1ccc25714f6a3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void geos::geom::Geometry::setSRID </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>newSRID</em></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>Sets the ID of the Spatial Reference System used by the <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. </p>
<p>Reimplemented in <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#a0ccec4349c1ecb004b500ce42cfb1861">geos::geom::GeometryCollection</a>.</p>
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00274">274</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<a class="anchor" id="a75dcb588b48e79ab3249d37137b12e1d"></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::Geometry::setUserData </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>newUserData</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>A simple scheme for applications to add their own custom data to a <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. An example use might be to add an object representing a <a class="el" href="classgeos_1_1geom_1_1Coordinate.html" title="Coordinate is the lightweight class used to store coordinates. ">Coordinate</a> Reference System. </p>
<p>Note that user data objects are not present in geometries created by construction methods.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">newUserData</td><td>an object, the semantics for which are defined by the application using this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00237">237</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<a class="anchor" id="ab7fc3ed340ebb467260fde48b6c7aa88"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>&gt; geos::geom::Geometry::symDifference </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a set combining the points in this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> not in other, and the points in other not in this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classgeos_1_1util_1_1TopologyException.html" title="Indicates an invalid or inconsistent topological situation encountered during processing. ">util::TopologyException</a></td><td>if a robustness error occurs </td></tr>
<tr><td class="paramname"><a class="el" href="classgeos_1_1util_1_1IllegalArgumentException.html" title="Indicates one or more illegal arguments. ">util::IllegalArgumentException</a></td><td>if either input is a non-empty <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html" title="Represents a collection of heterogeneous Geometry objects. ">GeometryCollection</a> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a0011cf7156ff985f7847eb56369d5881"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static std::vector&lt;std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>&gt; &gt; geos::geom::Geometry::toGeometryArray </td>
<td>(</td>
<td class="paramtype">std::vector&lt; std::unique_ptr&lt; T &gt;&gt; &amp;&amp;&#160;</td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00920">920</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
<p>Referenced by <a class="el" href="GeometryFactory_8h_source.html#l00189">geos::geom::GeometryFactory::createGeometryCollection()</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1geom_1_1Geometry_a0011cf7156ff985f7847eb56369d5881_icgraph.svg" width="443" height="55"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</p>
</div>
</div>
<a class="anchor" id="a0c3d0c2b218158198433901b0409497b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual std::string geos::geom::Geometry::toString </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the Well-known Text representation of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. </p>
</div>
</div>
<a class="anchor" id="abf561e22b0c376477376a02975c3bd8e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual std::string geos::geom::Geometry::toText </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a33b22cf9230c0656b0e4ef2e05f8f557"></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::Geometry::touches </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if the DE-9IM intersection matrix for the two Geometrys is FT*******, F**T***** or F***T****. </p>
</div>
</div>
<a class="anchor" id="ae184641cf7635f569ae341b517cc7372"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>&gt; geos::geom::Geometry::Union </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> representing all the points in this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> and other. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classgeos_1_1util_1_1TopologyException.html" title="Indicates an invalid or inconsistent topological situation encountered during processing. ">util::TopologyException</a></td><td>if a robustness error occurs </td></tr>
<tr><td class="paramname"><a class="el" href="classgeos_1_1util_1_1IllegalArgumentException.html" title="Indicates one or more illegal arguments. ">util::IllegalArgumentException</a></td><td>if either input is a non-empty <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html" title="Represents a collection of heterogeneous Geometry objects. ">GeometryCollection</a> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ae8775857813646d5956d07d3a557a7f1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Ptr</a> geos::geom::Geometry::Union </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the union of all the elements of this geometry. Heterogeneous <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html">GeometryCollections</a> are fully supported. </p>
<p>The result obeys the following contract:</p>
<ul>
<li>Unioning a set of <a class="el" href="classgeos_1_1geom_1_1LineString.html">LineStrings</a> has the effect of fully noding and dissolving the linework.</li>
<li>Unioning a set of <a class="el" href="classgeos_1_1geom_1_1Polygon.html">Polygons</a> will always return a polygonal geometry (unlike <a class="el" href="classgeos_1_1geom_1_1Geometry.html#ae184641cf7635f569ae341b517cc7372" title="Returns a Geometry representing all the points in this Geometry and other. ">Geometry::Union(const Geometry* other) const</a>), which may return geometrys of lower dimension if a topology collapse occurred.</li>
</ul>
<dl class="section return"><dt>Returns</dt><dd>the union geometry</dd></dl>
<dl class="section see"><dt>See also</dt><dd>UnaryUnionOp </dd></dl>
</div>
</div>
<a class="anchor" id="ad88a5cc29827e3fc2014680e813e7dad"></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::Geometry::within </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>g</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if the DE-9IM intersection matrix for the two Geometrys is T*F**F***. </p>
</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a class="anchor" id="a639aef3f5d0d27a72053343b0e09b5f3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">friend class <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">GeometryFactory</a></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="Geometry_8h_source.html#l00192">192</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a00cd60eb152657d72f17fb89323ce8eb"></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_1GeometryFactory.html">GeometryFactory</a>* geos::geom::Geometry::_factory</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 <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html" title="Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...">GeometryFactory</a> used to create this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a></p>
<p>Externally owned </p>
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00947">947</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<a class="anchor" id="adab3f4e1dc7025ad0f42df42df121aed"></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::Geometry::_userData</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="Geometry_8h_source.html#l00949">949</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<a class="anchor" id="a3078813471b2c70b04da6271a5da83eb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Envelope.html">Envelope</a>&gt; geos::geom::Geometry::envelope</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">mutable</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The bounding box of this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>. </p>
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00857">857</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<a class="anchor" id="aeae05c4e3b9ccf180584802ee4e59d9d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1geom_1_1Geometry_1_1GeometryChangedFilter.html">GeometryChangedFilter</a> geos::geom::Geometry::geometryChangedFilter</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="Geometry_8h_source.html#l00941">941</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<a class="anchor" id="ac26216d9188cf7e60112a56ccdb7f01c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int geos::geom::Geometry::SRID</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>Definition at line <a class="el" href="Geometry_8h_source.html#l00904">904</a> of file <a class="el" href="Geometry_8h_source.html">Geometry.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="Geometry_8h_source.html">Geometry.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>