Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 5035839f674c88dea1f7928a86fbdc64 > files > 727

geos-devel-3.2.1-3.fc14.x86_64.rpm

<!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"/>
<title>GEOS: geos::geom::Geometry Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;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 class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath">
    <ul>
      <li><a class="el" href="namespacegeos.html">geos</a>      </li>
      <li><a class="el" href="namespacegeos_1_1geom.html">geom</a>      </li>
      <li><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geos::geom::Geometry</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<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="#friends">Friends</a>  </div>
  <div class="headertitle">
<h1>geos::geom::Geometry Class Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="geos::geom::Geometry" -->
<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="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="geom_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">
  <img src="classgeos_1_1geom_1_1Geometry.png" usemap="#geos::geom::Geometry_map" alt=""/>
  <map id="geos::geom::Geometry_map" name="geos::geom::Geometry_map">
<area href="classgeos_1_1geom_1_1GeometryCollection.html" alt="geos::geom::GeometryCollection" shape="rect" coords="201,56,392,80"/>
<area href="classgeos_1_1geom_1_1LineString.html" alt="geos::geom::LineString" shape="rect" coords="603,56,794,80"/>
<area href="classgeos_1_1geom_1_1Point.html" alt="geos::geom::Point" shape="rect" coords="804,56,995,80"/>
<area href="classgeos_1_1geom_1_1Polygon.html" alt="geos::geom::Polygon" shape="rect" coords="1005,56,1196,80"/>
<area href="classgeos_1_1geom_1_1MultiLineString.html" alt="geos::geom::MultiLineString" shape="rect" coords="0,112,191,136"/>
<area href="classgeos_1_1geom_1_1MultiPoint.html" alt="geos::geom::MultiPoint" shape="rect" coords="201,112,392,136"/>
<area href="classgeos_1_1geom_1_1MultiPolygon.html" alt="geos::geom::MultiPolygon" shape="rect" coords="402,112,593,136"/>
<area href="classgeos_1_1geom_1_1LinearRing.html" alt="geos::geom::LinearRing" shape="rect" coords="603,112,794,136"/>
</map>
</div>

<p><a href="classgeos_1_1geom_1_1Geometry-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afc42e2336764c1ea807a94b87c69b546"></a><!-- doxytag: member="geos::geom::Geometry::ConstVect" ref="afc42e2336764c1ea807a94b87c69b546" args="" -->
typedef std::vector&lt; const <br class="typebreak"/>
<a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#afc42e2336764c1ea807a94b87c69b546">ConstVect</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</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. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af5aa62e7313d54e76704d5b3f9a3b0b5"></a><!-- doxytag: member="geos::geom::Geometry::NonConstVect" ref="af5aa62e7313d54e76704d5b3f9a3b0b5" args="" -->
typedef std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#af5aa62e7313d54e76704d5b3f9a3b0b5">NonConstVect</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</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. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad1556305e4785746bc203b0b87132784"></a><!-- doxytag: member="geos::geom::Geometry::AutoPtr" ref="ad1556305e4785746bc203b0b87132784" args="" -->
typedef std::auto_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad1556305e4785746bc203b0b87132784">AutoPtr</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An auto_ptr of <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory.">Geometry</a>. <br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a25b5ab073477cee2d5b756a0d163c006"></a><!-- doxytag: member="geos::geom::Geometry::clone" ref="a25b5ab073477cee2d5b756a0d163c006" args="() const =0" -->
virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a25b5ab073477cee2d5b756a0d163c006">clone</a> () const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</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>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a12c062b0618b06eb5e78a0232364dbff"></a><!-- doxytag: member="geos::geom::Geometry::~Geometry" ref="a12c062b0618b06eb5e78a0232364dbff" args="()" -->
virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a12c062b0618b06eb5e78a0232364dbff">~Geometry</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</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. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">GeometryFactory</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ab41bcf3461be250e143ed2d7da19815b">getFactory</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the factory which contains the context in which this geometry was created.  <a href="#ab41bcf3461be250e143ed2d7da19815b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a75dcb588b48e79ab3249d37137b12e1d">setUserData</a> (void *newUserData)</td></tr>
<tr><td class="mdescLeft">&nbsp;</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"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a81e62db157e244914b34893ba8c5f1cf">getUserData</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the user data object for this geometry, if any.  <a href="#a81e62db157e244914b34893ba8c5f1cf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a898135f854cc07c243e7deb45de65505"></a><!-- doxytag: member="geos::geom::Geometry::getSRID" ref="a898135f854cc07c243e7deb45de65505" args="() const " -->
virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><b>getSRID</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afc2702d0d3827a304db1ccc25714f6a3"></a><!-- doxytag: member="geos::geom::Geometry::setSRID" ref="afc2702d0d3827a304db1ccc25714f6a3" args="(int newSRID)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>setSRID</b> (int newSRID)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6dc225a75bb941b9dc4deebd682885f9"></a><!-- doxytag: member="geos::geom::Geometry::getPrecisionModel" ref="a6dc225a75bb941b9dc4deebd682885f9" args="() const " -->
const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">PrecisionModel</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a6dc225a75bb941b9dc4deebd682885f9">getPrecisionModel</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acefe992c172712a951a6055a1adf447a"></a><!-- doxytag: member="geos::geom::Geometry::getCoordinate" ref="acefe992c172712a951a6055a1adf447a" args="() const =0" -->
virtual const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#acefe992c172712a951a6055a1adf447a">getCoordinate</a> () const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</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. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a422a5feecf0fdf00e67b2bf696244003"></a><!-- doxytag: member="geos::geom::Geometry::getCoordinates" ref="a422a5feecf0fdf00e67b2bf696244003" args="() const =0" -->
virtual <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">CoordinateSequence</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a422a5feecf0fdf00e67b2bf696244003">getCoordinates</a> () const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</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. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4864db01ca16fa6d1534a3413f621f73"></a><!-- doxytag: member="geos::geom::Geometry::getNumPoints" ref="a4864db01ca16fa6d1534a3413f621f73" args="() const =0" -->
virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a4864db01ca16fa6d1534a3413f621f73">getNumPoints</a> () const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the count of this Geometrys vertices. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af4b0804bd3903ed656b38b4561e3e577"></a><!-- doxytag: member="geos::geom::Geometry::isSimple" ref="af4b0804bd3903ed656b38b4561e3e577" args="() const " -->
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#af4b0804bd3903ed656b38b4561e3e577">isSimple</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4290decd50c0d21fd976d34ab418ef0f"></a><!-- doxytag: member="geos::geom::Geometry::getGeometryType" ref="a4290decd50c0d21fd976d34ab418ef0f" args="() const =0" -->
virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a4290decd50c0d21fd976d34ab418ef0f">getGeometryType</a> () const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</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. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3680d76fcb2b2f8e2336ea3a2de5cbf8"></a><!-- doxytag: member="geos::geom::Geometry::getGeometryTypeId" ref="a3680d76fcb2b2f8e2336ea3a2de5cbf8" args="() const =0" -->
virtual <a class="el" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8">GeometryTypeId</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a3680d76fcb2b2f8e2336ea3a2de5cbf8">getGeometryTypeId</a> () const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</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. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a1549a74dcc9f2f7fa78a51ea98dff45f">getNumGeometries</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ac29eeb10cdc29c6a2df64580f0e96a38">getGeometryN</a> (size_t) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a1f408a97170af8f26c5e6121e720fc8a">isValid</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a76c52f479ea31bd1d5c5bde8ba089657"></a><!-- doxytag: member="geos::geom::Geometry::isEmpty" ref="a76c52f479ea31bd1d5c5bde8ba089657" args="() const =0" -->
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a76c52f479ea31bd1d5c5bde8ba089657">isEmpty</a> () const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</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. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab21116730ab9f580285a7e3a93f7941e"></a><!-- doxytag: member="geos::geom::Geometry::isRectangle" ref="ab21116730ab9f580285a7e3a93f7941e" args="() const " -->
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ab21116730ab9f580285a7e3a93f7941e">isRectangle</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae6e5cb68c6b3edb5b71dc983a2795c5c"></a><!-- doxytag: member="geos::geom::Geometry::getDimension" ref="ae6e5cb68c6b3edb5b71dc983a2795c5c" args="() const =0" -->
virtual <a class="el" href="classgeos_1_1geom_1_1Dimension.html#af46f1c0c325eb685fcf32987748d04cf">Dimension::DimensionType</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ae6e5cb68c6b3edb5b71dc983a2795c5c">getDimension</a> () const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</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). <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a7519090aea0e06ee78fadcb1fc4bd2dd">getBoundary</a> () const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</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="#a7519090aea0e06ee78fadcb1fc4bd2dd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a04323ca0c85af4e662bafb3534424ea1"></a><!-- doxytag: member="geos::geom::Geometry::getBoundaryDimension" ref="a04323ca0c85af4e662bafb3534424ea1" args="() const =0" -->
virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a04323ca0c85af4e662bafb3534424ea1">getBoundaryDimension</a> () const =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the dimension of this Geometrys inherent boundary. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4fd49bd26196888daf8652b204e7d473"></a><!-- doxytag: member="geos::geom::Geometry::getEnvelope" ref="a4fd49bd26196888daf8652b204e7d473" args="() const " -->
virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a4fd49bd26196888daf8652b204e7d473">getEnvelope</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns this Geometrys bounding box. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2b59a1a031912dc198ba7dca24b2643e"></a><!-- doxytag: member="geos::geom::Geometry::getEnvelopeInternal" ref="a2b59a1a031912dc198ba7dca24b2643e" args="() const " -->
virtual const <a class="el" href="classgeos_1_1geom_1_1Envelope.html">Envelope</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a2b59a1a031912dc198ba7dca24b2643e">getEnvelopeInternal</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</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><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a33b22cf9230c0656b0e4ef2e05f8f557"></a><!-- doxytag: member="geos::geom::Geometry::touches" ref="a33b22cf9230c0656b0e4ef2e05f8f557" args="(const Geometry *other) const " -->
virtual bool&nbsp;</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><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the DE-9IM intersection matrix for the two Geometrys is FT*******, F**T***** or F***T****. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b52247de62578a82fdd8f3b044da376"></a><!-- doxytag: member="geos::geom::Geometry::intersects" ref="a4b52247de62578a82fdd8f3b044da376" args="(const Geometry *g) const " -->
virtual bool&nbsp;</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><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if disjoint returns false. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</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><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad88a5cc29827e3fc2014680e813e7dad"></a><!-- doxytag: member="geos::geom::Geometry::within" ref="ad88a5cc29827e3fc2014680e813e7dad" args="(const Geometry *g) const " -->
virtual bool&nbsp;</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><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the DE-9IM intersection matrix for the two Geometrys is T*F**F***. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5a1244c6b1d1e9ab823a282692d06cb9"></a><!-- doxytag: member="geos::geom::Geometry::contains" ref="a5a1244c6b1d1e9ab823a282692d06cb9" args="(const Geometry *g) const " -->
virtual bool&nbsp;</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><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if other.within(this) returns true. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8f418ca77771a15c864e6475f8b57418"></a><!-- doxytag: member="geos::geom::Geometry::overlaps" ref="a8f418ca77771a15c864e6475f8b57418" args="(const Geometry *g) const " -->
virtual bool&nbsp;</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><td class="mdescLeft">&nbsp;</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). <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a1e04634a2e59c035421e781a456b3fec">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><td class="mdescLeft">&nbsp;</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="#a1e04634a2e59c035421e781a456b3fec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac05904544441dc3cd395a74a14d210d9"></a><!-- doxytag: member="geos::geom::Geometry::relate" ref="ac05904544441dc3cd395a74a14d210d9" args="(const Geometry &amp;g, const std::string &amp;intersectionPattern) const " -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>relate</b> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &amp;g, const std::string &amp;intersectionPattern) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7ec1296ce46202f7327f9cc194bb17f6"></a><!-- doxytag: member="geos::geom::Geometry::relate" ref="a7ec1296ce46202f7327f9cc194bb17f6" args="(const Geometry *g) const " -->
virtual <a class="el" href="classgeos_1_1geom_1_1IntersectionMatrix.html">IntersectionMatrix</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a7ec1296ce46202f7327f9cc194bb17f6">relate</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *g) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the DE-9IM intersection matrix for the two Geometrys. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abfb934e05e6c90ef3ca1ed1c0ac21d5d"></a><!-- doxytag: member="geos::geom::Geometry::relate" ref="abfb934e05e6c90ef3ca1ed1c0ac21d5d" args="(const Geometry &amp;g) const " -->
<a class="el" href="classgeos_1_1geom_1_1IntersectionMatrix.html">IntersectionMatrix</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>relate</b> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &amp;g) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a80bac369fef274ce44592f5565284c20"></a><!-- doxytag: member="geos::geom::Geometry::equals" ref="a80bac369fef274ce44592f5565284c20" args="(const Geometry *g) const " -->
virtual bool&nbsp;</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><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the DE-9IM intersection matrix for the two Geometrys is T*F**FFF*. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</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><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns <code>true</code> if this geometry covers the specified geometry.  <a href="#aad901fe993635be50793e7cfd19b113f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</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><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tests whether this geometry is covered by the specified geometry.  <a href="#af979c13c17f500907d0be400f80abb45"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0c3d0c2b218158198433901b0409497b"></a><!-- doxytag: member="geos::geom::Geometry::toString" ref="a0c3d0c2b218158198433901b0409497b" args="() const " -->
virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a0c3d0c2b218158198433901b0409497b">toString</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf561e22b0c376477376a02975c3bd8e"></a><!-- doxytag: member="geos::geom::Geometry::toText" ref="abf561e22b0c376477376a02975c3bd8e" args="() const " -->
virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>toText</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a1f96bf70687d23daf5aa063fbb27a5cf">buffer</a> (double distance) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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.  <a href="#a1f96bf70687d23daf5aa063fbb27a5cf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ab2427522c7f238904b5945bb6f067c41">buffer</a> (double distance, int quadrantSegments) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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="#ab2427522c7f238904b5945bb6f067c41"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#adfcbcc4e390f55e3afbedb4b622f0429">buffer</a> (double distance, int quadrantSegments, int endCapStyle) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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="#adfcbcc4e390f55e3afbedb4b622f0429"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1855e20b4c01fbda04f73ed726006db9"></a><!-- doxytag: member="geos::geom::Geometry::convexHull" ref="a1855e20b4c01fbda04f73ed726006db9" args="() const " -->
virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a1855e20b4c01fbda04f73ed726006db9">convexHull</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad93fa28d2dbbbea1dcdb95e46068b2c1">intersection</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *other) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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="#ad93fa28d2dbbbea1dcdb95e46068b2c1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a1b88cbc1dcc914dd060ef14f01db9ace">Union</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *other) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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="#a1b88cbc1dcc914dd060ef14f01db9ace"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ae1a2bff871b20f7df14e6ce38c0a44f3">difference</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *other) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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="#ae1a2bff871b20f7df14e6ce38c0a44f3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a5929bc90f333992fa43f064a4c611dff">symDifference</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *other) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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="#a5929bc90f333992fa43f064a4c611dff"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a29b0259d378be997ce1bb80739b405a1"></a><!-- doxytag: member="geos::geom::Geometry::equalsExact" ref="a29b0259d378be997ce1bb80739b405a1" args="(const Geometry *other, double tolerance=0) const =0" -->
virtual bool&nbsp;</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><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the two Geometrys are exactly equal, up to a specified tolerance. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acf14906978c9de8b272d79b53384b119"></a><!-- doxytag: member="geos::geom::Geometry::apply_rw" ref="acf14906978c9de8b272d79b53384b119" args="(const CoordinateFilter *filter)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>apply_rw</b> (const <a class="el" href="classgeos_1_1geom_1_1CoordinateFilter.html">CoordinateFilter</a> *filter)=0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a67138c95cad4c3f6364bfbc4924254f3"></a><!-- doxytag: member="geos::geom::Geometry::apply_ro" ref="a67138c95cad4c3f6364bfbc4924254f3" args="(CoordinateFilter *filter) const =0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>apply_ro</b> (<a class="el" href="classgeos_1_1geom_1_1CoordinateFilter.html">CoordinateFilter</a> *filter) const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a456660fcd9ffe7eea27e64df606423f4"></a><!-- doxytag: member="geos::geom::Geometry::apply_rw" ref="a456660fcd9ffe7eea27e64df606423f4" args="(GeometryFilter *filter)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>apply_rw</b> (<a class="el" href="classgeos_1_1geom_1_1GeometryFilter.html">GeometryFilter</a> *filter)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad1fa305f92ceb7c813ff59e78242e428"></a><!-- doxytag: member="geos::geom::Geometry::apply_ro" ref="ad1fa305f92ceb7c813ff59e78242e428" args="(GeometryFilter *filter) const " -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>apply_ro</b> (<a class="el" href="classgeos_1_1geom_1_1GeometryFilter.html">GeometryFilter</a> *filter) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aae37f54cfec3c57c912bfb0203cd0f70"></a><!-- doxytag: member="geos::geom::Geometry::apply_rw" ref="aae37f54cfec3c57c912bfb0203cd0f70" args="(GeometryComponentFilter *filter)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>apply_rw</b> (<a class="el" href="classgeos_1_1geom_1_1GeometryComponentFilter.html">GeometryComponentFilter</a> *filter)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad0c80a1b3bae8d82cbd07ed8d9a29431"></a><!-- doxytag: member="geos::geom::Geometry::apply_ro" ref="ad0c80a1b3bae8d82cbd07ed8d9a29431" args="(GeometryComponentFilter *filter) const " -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>apply_ro</b> (<a class="el" href="classgeos_1_1geom_1_1GeometryComponentFilter.html">GeometryComponentFilter</a> *filter) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</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><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</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><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a558ac8159fcba50c602ce9a385005a6a">applyComponentFilter</a> (T &amp;f) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Apply a fiter to each component of this geometry. The filter is expected to provide a .filter(const Geometry*) method.  <a href="#a558ac8159fcba50c602ce9a385005a6a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2ea3b58d562bc183e118e2a68f86414d"></a><!-- doxytag: member="geos::geom::Geometry::normalize" ref="a2ea3b58d562bc183e118e2a68f86414d" args="()=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a2ea3b58d562bc183e118e2a68f86414d">normalize</a> ()=0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts this <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory.">Geometry</a> to normal form (or canonical form). <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a76c044f721a6dca257d2aaffdc687579"></a><!-- doxytag: member="geos::geom::Geometry::compareTo" ref="a76c044f721a6dca257d2aaffdc687579" args="(const Geometry *geom) const " -->
virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><b>compareTo</b> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *geom) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad21bf3fd92a4d3c573228806f77123b7"></a><!-- doxytag: member="geos::geom::Geometry::distance" ref="ad21bf3fd92a4d3c573228806f77123b7" args="(const Geometry *g) const " -->
virtual double&nbsp;</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><td class="mdescLeft">&nbsp;</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. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a144de29d8a886392e275d3dca689a784"></a><!-- doxytag: member="geos::geom::Geometry::getArea" ref="a144de29d8a886392e275d3dca689a784" args="() const " -->
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a144de29d8a886392e275d3dca689a784">getArea</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1630fb2f4f8ea61cfba896fdd52df5b0"></a><!-- doxytag: member="geos::geom::Geometry::getLength" ref="a1630fb2f4f8ea61cfba896fdd52df5b0" args="() const " -->
virtual double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a1630fb2f4f8ea61cfba896fdd52df5b0">getLength</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a62898a63ddc8b5d6815178a0c1ec2481"></a><!-- doxytag: member="geos::geom::Geometry::isWithinDistance" ref="a62898a63ddc8b5d6815178a0c1ec2481" args="(const Geometry *geom, double cDistance)" -->
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a62898a63ddc8b5d6815178a0c1ec2481">isWithinDistance</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *geom, double cDistance)</td></tr>
<tr><td class="mdescLeft">&nbsp;</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. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Point.html">Point</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a2f342e7d7f2fa397f7c503422580f9c5">getCentroid</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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="#a2f342e7d7f2fa397f7c503422580f9c5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</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><td class="mdescLeft">&nbsp;</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"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Point.html">Point</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a8a95d026e63e13f26029187c240d0b42">getInteriorPoint</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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="#a8a95d026e63e13f26029187c240d0b42"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aea794bfb662989dd8690854723edc72c"></a><!-- doxytag: member="geos::geom::Geometry::geometryChanged" ref="aea794bfb662989dd8690854723edc72c" args="()" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>geometryChanged</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a175a97030b47b67bce9d92123ba570e8"></a><!-- doxytag: member="geos::geom::Geometry::geometryChangedAction" ref="a175a97030b47b67bce9d92123ba570e8" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a175a97030b47b67bce9d92123ba570e8">geometryChangedAction</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</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. <br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a33cfd95ad897d4060dba29da511907f0"></a><!-- doxytag: member="geos::geom::Geometry::isEquivalentClass" ref="a33cfd95ad897d4060dba29da511907f0" args="(const Geometry *other) const " -->
virtual bool&nbsp;</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><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns whether the two Geometrys are equal, from the point of view of the equalsExact method. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a015440197d9673a3d18f19c07c592161"></a><!-- doxytag: member="geos::geom::Geometry::computeEnvelopeInternal" ref="a015440197d9673a3d18f19c07c592161" args="() const =0" -->
virtual Envelope::AutoPtr&nbsp;</td><td class="memItemRight" valign="bottom"><b>computeEnvelopeInternal</b> () const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3d64998d440dadd536ccf357c1d02988"></a><!-- doxytag: member="geos::geom::Geometry::compareToSameClass" ref="a3d64998d440dadd536ccf357c1d02988" args="(const Geometry *geom) const =0" -->
virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><b>compareToSameClass</b> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *geom) const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a503123b04b883a8cc0eef9186fb92c57"></a><!-- doxytag: member="geos::geom::Geometry::compare" ref="a503123b04b883a8cc0eef9186fb92c57" args="(std::vector&lt; Coordinate &gt; a, std::vector&lt; Coordinate &gt; b) const " -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>compare</b> (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><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a74b95e958ffbad3c42e1d2c343feda5d"></a><!-- doxytag: member="geos::geom::Geometry::compare" ref="a74b95e958ffbad3c42e1d2c343feda5d" args="(std::vector&lt; Geometry * &gt; a, std::vector&lt; Geometry * &gt; b) const " -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>compare</b> (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><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a34955c401f5a15016cc957aa8c277c69"></a><!-- doxytag: member="geos::geom::Geometry::equal" ref="a34955c401f5a15016cc957aa8c277c69" args="(const Coordinate &amp;a, const Coordinate &amp;b, double tolerance) const " -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>equal</b> (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><td class="memItemLeft" align="right" valign="top">&nbsp;</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><td class="mdescLeft">&nbsp;</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="#aa036d162904c54d20f67a5343ff60a75"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</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><td class="mdescLeft">&nbsp;</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"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-static-methods"></a>
Static Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4c601c079512f7924b9a279f67794462"></a><!-- doxytag: member="geos::geom::Geometry::hasNonEmptyElements" ref="a4c601c079512f7924b9a279f67794462" args="(const std::vector&lt; Geometry * &gt; *geometries)" -->
static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#a4c601c079512f7924b9a279f67794462">hasNonEmptyElements</a> (const std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> * &gt; *geometries)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the array contains any non-empty Geometrys. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a74eec53d6fe428fc63e030f026e60a62"></a><!-- doxytag: member="geos::geom::Geometry::hasNullElements" ref="a74eec53d6fe428fc63e030f026e60a62" args="(const CoordinateSequence *list)" -->
static bool&nbsp;</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><td class="mdescLeft">&nbsp;</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. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad70fbfc0418df16566c745087fcb504e"></a><!-- doxytag: member="geos::geom::Geometry::hasNullElements" ref="ad70fbfc0418df16566c745087fcb504e" args="(const std::vector&lt; Geometry * &gt; *lrs)" -->
static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad70fbfc0418df16566c745087fcb504e">hasNullElements</a> (const std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> * &gt; *lrs)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if the vector contains any null elements. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8171b99f5d8008ace488987cf8ed5a92"></a><!-- doxytag: member="geos::geom::Geometry::checkNotGeometryCollection" ref="a8171b99f5d8008ace488987cf8ed5a92" args="(const Geometry *g)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><b>checkNotGeometryCollection</b> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *g)</td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af6377611bdb44ea3b1cbc8862fa2bdfb"></a><!-- doxytag: member="geos::geom::Geometry::envelope" ref="af6377611bdb44ea3b1cbc8862fa2bdfb" args="" -->
std::auto_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Envelope.html">Envelope</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#af6377611bdb44ea3b1cbc8862fa2bdfb">envelope</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</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>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac26216d9188cf7e60112a56ccdb7f01c"></a><!-- doxytag: member="geos::geom::Geometry::SRID" ref="ac26216d9188cf7e60112a56ccdb7f01c" args="" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>SRID</b></td></tr>
<tr><td colspan="2"><h2><a name="friends"></a>
Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a639aef3f5d0d27a72053343b0e09b5f3"></a><!-- doxytag: member="geos::geom::Geometry::GeometryFactory" ref="a639aef3f5d0d27a72053343b0e09b5f3" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>GeometryFactory</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aafc22644ad916f4bd7b524f522f5e11d"></a><!-- doxytag: member="geos::geom::Geometry::operator&lt;&lt;" ref="aafc22644ad916f4bd7b524f522f5e11d" args="(std::ostream &amp;os, const Geometry &amp;geom)" -->
std::ostream &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1Geometry.html#aafc22644ad916f4bd7b524f522f5e11d">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &amp;geom)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write the Well-known Binary 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> as an HEX string to the given output stream. <br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<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" title="Basic implementation of Point.">Point</a></code>, <code><a class="el" href="classgeos_1_1geom_1_1LineString.html" title="Basic implementation of LineString.">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" title="Models a collection of Point objects.">MultiPoint</a></code>, <code><a class="el" href="classgeos_1_1geom_1_1MultiLineString.html" title="Basic implementation of MultiLineString objects.">MultiLineString</a></code>, or <code><a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html" title="Basic implementation of MultiPolygon.">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" title="Basic implementation of LineString.">LineString</a></code>s. It means that all intersection points on <code><a class="el" href="classgeos_1_1geom_1_1LineString.html" title="Basic implementation of LineString.">LineString</a></code>s will be present as endpoints of <code><a class="el" href="classgeos_1_1geom_1_1LineString.html" title="Basic implementation of LineString.">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" -- 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>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aa036d162904c54d20f67a5343ff60a75"></a><!-- doxytag: member="geos::geom::Geometry::Geometry" ref="aa036d162904c54d20f67a5343ff60a75" args="(const Geometry &amp;geom)" -->
<div class="memitem">
<div class="memproto">
      <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;&nbsp;</td>
          <td class="paramname"> <em>geom</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></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>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd></dd></dl>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000003">Deprecated:</a></b></dt><dd></dd></dl>

</div>
</div>
<a class="anchor" id="a8224f1cda605d550b915bbc92a138f3d"></a><!-- doxytag: member="geos::geom::Geometry::Geometry" ref="a8224f1cda605d550b915bbc92a138f3d" args="(const GeometryFactory *factory)" -->
<div class="memitem">
<div class="memproto">
      <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> *&nbsp;</td>
          <td class="paramname"> <em>factory</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></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><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>factory</em>&nbsp;</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a31aa2b7a73162848ceaffdb25d91a9dc"></a><!-- doxytag: member="geos::geom::Geometry::apply_ro" ref="a31aa2b7a73162848ceaffdb25d91a9dc" args="(CoordinateSequenceFilter &amp;filter) const =0" -->
<div class="memitem">
<div class="memproto">
      <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;&nbsp;</td>
          <td class="paramname"> <em>filter</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Performs a read-only operation on the coordinates in this Geometry's CoordinateSequences.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>filter</em>&nbsp;</td><td>the filter to apply </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#a8d516ba4111cd21d0e2149a88de6822a">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1LineString.html#a91440d2f63d184717b62cad4ecd9e295">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#a5981210360c683bf0f6d029cf97eac8f">geos::geom::Point</a>, and <a class="el" href="classgeos_1_1geom_1_1Polygon.html#ac8304ddfce397e3bebed129205349ee9">geos::geom::Polygon</a>.</p>

</div>
</div>
<a class="anchor" id="a19566f7393929d162eead6ee454fe97f"></a><!-- doxytag: member="geos::geom::Geometry::apply_rw" ref="a19566f7393929d162eead6ee454fe97f" args="(CoordinateSequenceFilter &amp;filter)=0" -->
<div class="memitem">
<div class="memproto">
      <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;&nbsp;</td>
          <td class="paramname"> <em>filter</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Performs an operation on the coordinates in this Geometry's CoordinateSequences.s If the filter reports that a coordinate value has been changed, <a class="el" href="">geometryChanged</a> will be called automatically.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>filter</em>&nbsp;</td><td>the filter to apply </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#ad84bb98e501121800aa51ae6fee23fea">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1LineString.html#a52f92bb4e796a6e5a5cc1c439a3915ba">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#a540cd9f7648c7861d8b9b6f8d470c45e">geos::geom::Point</a>, and <a class="el" href="classgeos_1_1geom_1_1Polygon.html#a8959e4115911f26b719a28b7e02f4d17">geos::geom::Polygon</a>.</p>

</div>
</div>
<a class="anchor" id="a558ac8159fcba50c602ce9a385005a6a"></a><!-- doxytag: member="geos::geom::Geometry::applyComponentFilter" ref="a558ac8159fcba50c602ce9a385005a6a" args="(T &amp;f) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void geos::geom::Geometry::applyComponentFilter </td>
          <td>(</td>
          <td class="paramtype">T &amp;&nbsp;</td>
          <td class="paramname"> <em>f</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Apply a fiter 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... --strk(2005-02-06); </p>

<p>Referenced by <a class="el" href="classgeos_1_1operation_1_1linemerge_1_1LineSequencer.html#aa0b6aa09f7f894d46510d94b76eb07ba">geos::operation::linemerge::LineSequencer::add()</a>.</p>

</div>
</div>
<a class="anchor" id="ab2427522c7f238904b5945bb6f067c41"></a><!-- doxytag: member="geos::geom::Geometry::buffer" ref="ab2427522c7f238904b5945bb6f067c41" args="(double distance, int quadrantSegments) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* geos::geom::Geometry::buffer </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>distance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>quadrantSegments</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [virtual]</code></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><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classgeos_1_1util_1_1TopologyException.html" title="Indicates an invalid or inconsistent topological situation encountered during processing.">util::TopologyException</a></em>&nbsp;</td><td>if a robustness error occurs </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="adfcbcc4e390f55e3afbedb4b622f0429"></a><!-- doxytag: member="geos::geom::Geometry::buffer" ref="adfcbcc4e390f55e3afbedb4b622f0429" args="(double distance, int quadrantSegments, int endCapStyle) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* geos::geom::Geometry::buffer </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>distance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>quadrantSegments</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>endCapStyle</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [virtual]</code></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><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>distance</em>&nbsp;</td><td>the width of the buffer (may be positive, negative or 0)</td></tr>
    <tr><td valign="top"></td><td valign="top"><em>quadrantSegments</em>&nbsp;</td><td>the number of line segments used to represent a quadrant of a circle</td></tr>
    <tr><td valign="top"></td><td valign="top"><em>endCapStyle</em>&nbsp;</td><td>the end cap style to use</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>an area geometry representing the buffer region</dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classgeos_1_1util_1_1TopologyException.html" title="Indicates an invalid or inconsistent topological situation encountered during processing.">util::TopologyException</a></em>&nbsp;</td><td>if a robustness error occurs</td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd>BufferOp </dd></dl>

</div>
</div>
<a class="anchor" id="a1f96bf70687d23daf5aa063fbb27a5cf"></a><!-- doxytag: member="geos::geom::Geometry::buffer" ref="a1f96bf70687d23daf5aa063fbb27a5cf" args="(double distance) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* geos::geom::Geometry::buffer </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>distance</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></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><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classgeos_1_1util_1_1TopologyException.html" title="Indicates an invalid or inconsistent topological situation encountered during processing.">util::TopologyException</a></em>&nbsp;</td><td>if a robustness error occurs </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af979c13c17f500907d0be400f80abb45"></a><!-- doxytag: member="geos::geom::Geometry::coveredBy" ref="af979c13c17f500907d0be400f80abb45" args="(const Geometry *g) const " -->
<div class="memitem">
<div class="memproto">
      <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> *&nbsp;</td>
          <td class="paramname"> <em>g</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></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><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>g</em>&nbsp;</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="return"><dt><b>Returns:</b></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="see"><dt><b>See also:</b></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>References <a class="el" href="classgeos_1_1geom_1_1Geometry.html#aad901fe993635be50793e7cfd19b113f">covers()</a>.</p>

</div>
</div>
<a class="anchor" id="aad901fe993635be50793e7cfd19b113f"></a><!-- doxytag: member="geos::geom::Geometry::covers" ref="aad901fe993635be50793e7cfd19b113f" args="(const Geometry *g) const " -->
<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> *&nbsp;</td>
          <td class="paramname"> <em>g</em></td>
          <td>&nbsp;)&nbsp;</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><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>g</em>&nbsp;</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="return"><dt><b>Returns:</b></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="see"><dt><b>See also:</b></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="classgeos_1_1geom_1_1Geometry.html#af979c13c17f500907d0be400f80abb45">coveredBy()</a>.</p>

</div>
</div>
<a class="anchor" id="ade9808e984e4aa08a038cecd77b37d58"></a><!-- doxytag: member="geos::geom::Geometry::crosses" ref="ade9808e984e4aa08a038cecd77b37d58" args="(const Geometry *g) const " -->
<div class="memitem">
<div class="memproto">
      <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> *&nbsp;</td>
          <td class="paramname"> <em>g</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></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><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>g</em>&nbsp;</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="return"><dt><b>Returns:</b></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="ae1a2bff871b20f7df14e6ce38c0a44f3"></a><!-- doxytag: member="geos::geom::Geometry::difference" ref="ae1a2bff871b20f7df14e6ce38c0a44f3" args="(const Geometry *other) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* geos::geom::Geometry::difference </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&nbsp;</td>
          <td class="paramname"> <em>other</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></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><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classgeos_1_1util_1_1TopologyException.html" title="Indicates an invalid or inconsistent topological situation encountered during processing.">util::TopologyException</a></em>&nbsp;</td><td>if a robustness error occurs </td></tr>
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classgeos_1_1util_1_1IllegalArgumentException.html" title="Indicates one or more legal arguments.">util::IllegalArgumentException</a></em>&nbsp;</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><!-- doxytag: member="geos::geom::Geometry::disjoint" ref="a0ecd455a3ea581965956cdf5d90a83d5" args="(const Geometry *other) const " -->
<div class="memitem">
<div class="memproto">
      <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> *&nbsp;</td>
          <td class="paramname"> <em>other</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></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><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>g</em>&nbsp;</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="return"><dt><b>Returns:</b></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="see"><dt><b>See also:</b></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="a7519090aea0e06ee78fadcb1fc4bd2dd"></a><!-- doxytag: member="geos::geom::Geometry::getBoundary" ref="a7519090aea0e06ee78fadcb1fc4bd2dd" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* geos::geom::Geometry::getBoundary </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></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="return"><dt><b>Returns:</b></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#a12466db79f69e3c7a45d34e758a366e9">geos::geom::GeometryCollection</a>, <a class="el" href="classgeos_1_1geom_1_1LineString.html#a4b8480aa8c37706f4c13e2242d0a4e1b">geos::geom::LineString</a>, <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html#af4759ffa1782daeabf4cfb6891f703db">geos::geom::MultiLineString</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPoint.html#a5f20a9f3f89a87b58e3d0ccbccb49307">geos::geom::MultiPoint</a>, <a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html#ad1b6aac0a17ed1ea52d26825bb9a0d73">geos::geom::MultiPolygon</a>, <a class="el" href="classgeos_1_1geom_1_1Point.html#a3c813a15869315cd82f435646e8f2de2">geos::geom::Point</a>, and <a class="el" href="classgeos_1_1geom_1_1Polygon.html#aa81fc5b245f2b3af930e044573a378f3">geos::geom::Polygon</a>.</p>

</div>
</div>
<a class="anchor" id="a2f342e7d7f2fa397f7c503422580f9c5"></a><!-- doxytag: member="geos::geom::Geometry::getCentroid" ref="a2f342e7d7f2fa397f7c503422580f9c5" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classgeos_1_1geom_1_1Point.html">Point</a>* geos::geom::Geometry::getCentroid </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></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="return"><dt><b>Returns:</b></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><!-- doxytag: member="geos::geom::Geometry::getCentroid" ref="a4121cc98d0c534ad430aa66448f70ad3" args="(Coordinate &amp;ret) const " -->
<div class="memitem">
<div class="memproto">
      <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;&nbsp;</td>
          <td class="paramname"> <em>ret</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></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="ab41bcf3461be250e143ed2d7da19815b"></a><!-- doxytag: member="geos::geom::Geometry::getFactory" ref="ab41bcf3461be250e143ed2d7da19815b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <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>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the factory which contains the context in which this geometry was created. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the factory for this geometry </dd></dl>

</div>
</div>
<a class="anchor" id="ac29eeb10cdc29c6a2df64580f0e96a38"></a><!-- doxytag: member="geos::geom::Geometry::getGeometryN" ref="ac29eeb10cdc29c6a2df64580f0e96a38" args="(size_t) const " -->
<div class="memitem">
<div class="memproto">
      <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">size_t&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></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> int this collection (or self if this is not a collection) </p>

<p>Reimplemented in <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html#a2209d0b5ffe55df3b3839497e0f92ca6">geos::geom::GeometryCollection</a>.</p>

</div>
</div>
<a class="anchor" id="a8a95d026e63e13f26029187c240d0b42"></a><!-- doxytag: member="geos::geom::Geometry::getInteriorPoint" ref="a8a95d026e63e13f26029187c240d0b42" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classgeos_1_1geom_1_1Point.html">Point</a>* geos::geom::Geometry::getInteriorPoint </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></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="return"><dt><b>Returns:</b></dt><dd>a <a class="el" href="classgeos_1_1geom_1_1Point.html" title="Basic implementation of Point.">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="a1549a74dcc9f2f7fa78a51ea98dff45f"></a><!-- doxytag: member="geos::geom::Geometry::getNumGeometries" ref="a1549a74dcc9f2f7fa78a51ea98dff45f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t geos::geom::Geometry::getNumGeometries </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></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#a1d43e7b1bd08cdc2546638edf9ef54ce">geos::geom::GeometryCollection</a>.</p>

</div>
</div>
<a class="anchor" id="a81e62db157e244914b34893ba8c5f1cf"></a><!-- doxytag: member="geos::geom::Geometry::getUserData" ref="a81e62db157e244914b34893ba8c5f1cf" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* geos::geom::Geometry::getUserData </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the user data object for this geometry, if any. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the user data object, or <code>null</code> if none set </dd></dl>

</div>
</div>
<a class="anchor" id="ad93fa28d2dbbbea1dcdb95e46068b2c1"></a><!-- doxytag: member="geos::geom::Geometry::intersection" ref="ad93fa28d2dbbbea1dcdb95e46068b2c1" args="(const Geometry *other) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* geos::geom::Geometry::intersection </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&nbsp;</td>
          <td class="paramname"> <em>other</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></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><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classgeos_1_1util_1_1TopologyException.html" title="Indicates an invalid or inconsistent topological situation encountered during processing.">util::TopologyException</a></em>&nbsp;</td><td>if a robustness error occurs </td></tr>
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classgeos_1_1util_1_1IllegalArgumentException.html" title="Indicates one or more legal arguments.">util::IllegalArgumentException</a></em>&nbsp;</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="a1f408a97170af8f26c5e6121e720fc8a"></a><!-- doxytag: member="geos::geom::Geometry::isValid" ref="a1f408a97170af8f26c5e6121e720fc8a" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool geos::geom::Geometry::isValid </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></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="return"><dt><b>Returns:</b></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="see"><dt><b>See also:</b></dt><dd>IsValidOp </dd></dl>

</div>
</div>
<a class="anchor" id="a1e04634a2e59c035421e781a456b3fec"></a><!-- doxytag: member="geos::geom::Geometry::relate" ref="a1e04634a2e59c035421e781a456b3fec" args="(const Geometry *g, const std::string &amp;intersectionPattern) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool geos::geom::Geometry::relate </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&nbsp;</td>
          <td class="paramname"> <em>g</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>intersectionPattern</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [virtual]</code></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><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classgeos_1_1util_1_1IllegalArgumentException.html" title="Indicates one or more legal arguments.">util::IllegalArgumentException</a></em>&nbsp;</td><td>if either arg is a collection </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a75dcb588b48e79ab3249d37137b12e1d"></a><!-- doxytag: member="geos::geom::Geometry::setUserData" ref="a75dcb588b48e79ab3249d37137b12e1d" args="(void *newUserData)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void geos::geom::Geometry::setUserData </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>newUserData</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></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><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>newUserData</em>&nbsp;</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>

</div>
</div>
<a class="anchor" id="a5929bc90f333992fa43f064a4c611dff"></a><!-- doxytag: member="geos::geom::Geometry::symDifference" ref="a5929bc90f333992fa43f064a4c611dff" args="(const Geometry *other) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* geos::geom::Geometry::symDifference </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&nbsp;</td>
          <td class="paramname"> <em>other</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></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><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classgeos_1_1util_1_1TopologyException.html" title="Indicates an invalid or inconsistent topological situation encountered during processing.">util::TopologyException</a></em>&nbsp;</td><td>if a robustness error occurs </td></tr>
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classgeos_1_1util_1_1IllegalArgumentException.html" title="Indicates one or more legal arguments.">util::IllegalArgumentException</a></em>&nbsp;</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="a1b88cbc1dcc914dd060ef14f01db9ace"></a><!-- doxytag: member="geos::geom::Geometry::Union" ref="a1b88cbc1dcc914dd060ef14f01db9ace" args="(const Geometry *other) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* geos::geom::Geometry::Union </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&nbsp;</td>
          <td class="paramname"> <em>other</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></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><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classgeos_1_1util_1_1TopologyException.html" title="Indicates an invalid or inconsistent topological situation encountered during processing.">util::TopologyException</a></em>&nbsp;</td><td>if a robustness error occurs </td></tr>
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classgeos_1_1util_1_1IllegalArgumentException.html" title="Indicates one or more legal arguments.">util::IllegalArgumentException</a></em>&nbsp;</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>
<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>
<hr class="footer"/><address class="footer"><small>Generated on Thu Jul 22 2010 for GEOS by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>