EVOLUTION-MANAGER
Edit File: Geometry_8h_source.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.5"/> <title>GEOS: Geometry.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">GEOS  <span id="projectnumber">3.8.0</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.5 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_c7abe0914a0ee2b00cd766c552eb2d19.html">include</a></li><li class="navelem"><a class="el" href="dir_165a26498f94b7fe2ccb32b9bb9b3ac5.html">geos</a></li><li class="navelem"><a class="el" href="dir_2b7442d09f82fa6ae2e8d230dbf9476a.html">geom</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">Geometry.h</div> </div> </div><!--header--> <div class="contents"> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/**********************************************************************</span></div> <div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> *</span></div> <div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * GEOS - Geometry Engine Open Source</span></div> <div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * http://geos.osgeo.org</span></div> <div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div> <div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Copyright (C) 2009 2011 Sandro Santilli <strk@kbt.io></span></div> <div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * Copyright (C) 2005 2006 Refractions Research Inc.</span></div> <div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * Copyright (C) 2001-2002 Vivid Solutions Inc.</span></div> <div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> *</span></div> <div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * This is free software; you can redistribute and/or modify it under</span></div> <div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * the terms of the GNU Lesser General Public Licence as published</span></div> <div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * by the Free Software Foundation.</span></div> <div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * See the COPYING file for more information.</span></div> <div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> *</span></div> <div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> **********************************************************************</span></div> <div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> *</span></div> <div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * Last port: geom/Geometry.java rev. 1.112</span></div> <div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> *</span></div> <div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> **********************************************************************/</span></div> <div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div> <div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#ifndef GEOS_GEOM_GEOMETRY_H</span></div> <div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"></span><span class="preprocessor">#define GEOS_GEOM_GEOMETRY_H</span></div> <div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#ifndef USE_UNSTABLE_GEOS_CPP_API</span></div> <div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span><span class="preprocessor">#ifndef _MSC_VER</span></div> <div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor"></span><span class="preprocessor"># warning "The GEOS C++ API is unstable, please use the C API instead"</span></div> <div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"></span><span class="preprocessor"># warning "HINT: #include geos_c.h"</span></div> <div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div> <div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"></span><span class="preprocessor">#pragma message("The GEOS C++ API is unstable, please use the C API instead")</span></div> <div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"></span><span class="preprocessor">#pragma message("HINT: #include geos_c.h")</span></div> <div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> <div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> <div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <geos/export.h></span></div> <div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <geos/inline.h></span></div> <div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <geos/geom/Envelope.h></span></div> <div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <geos/geom/Dimension.h></span> <span class="comment">// for Dimension::DimensionType</span></div> <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <geos/geom/GeometryComponentFilter.h></span> <span class="comment">// for inheritance</span></div> <div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <geos/geom/IntersectionMatrix.h></span></div> <div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div> <div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include <algorithm></span></div> <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include <string></span></div> <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <iostream></span></div> <div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include <vector></span></div> <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include <memory></span></div> <div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div> <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#ifdef _MSC_VER</span></div> <div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"></span><span class="preprocessor">#pragma warning(push)</span></div> <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor"></span><span class="preprocessor">#pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class</span></div> <div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor"></span><span class="preprocessor">#pragma warning(disable: 4355) // warning C4355: 'this' : used in base member initializer list</span></div> <div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> <div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">// Forward declarations</span></div> <div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">namespace </span>geos {</div> <div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">namespace </span>geom {</div> <div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">class </span>Coordinate;</div> <div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">class </span>CoordinateFilter;</div> <div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">class </span>CoordinateSequence;</div> <div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">class </span>CoordinateSequenceFilter;</div> <div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">class </span>GeometryComponentFilter;</div> <div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">class </span>GeometryFactory;</div> <div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">class </span>GeometryFilter;</div> <div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">class </span>PrecisionModel;</div> <div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">class </span>Point;</div> <div class="line"><a name="l00065"></a><span class="lineno"> 65</span> }</div> <div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="namespacegeos_1_1io.html"> 66</a></span> <span class="keyword">namespace </span>io { <span class="comment">// geos.io</span></div> <div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">class </span>Unload;</div> <div class="line"><a name="l00068"></a><span class="lineno"> 68</span> } <span class="comment">// namespace geos.io</span></div> <div class="line"><a name="l00069"></a><span class="lineno"> 69</span> }</div> <div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div> <div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">namespace </span>geos {</div> <div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">namespace </span>geom { <span class="comment">// geos::geom</span></div> <div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div> <div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8"> 75</a></span> <span class="keyword">enum</span> <a class="code" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8">GeometryTypeId</a> {</div> <div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8ac376a9701abf81f81a64a270ad4eb5de"> 77</a></span>  <a class="code" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8ac376a9701abf81f81a64a270ad4eb5de">GEOS_POINT</a>,</div> <div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8acac50eabb09b9a062bfeaef7f943f9e7"> 79</a></span>  <a class="code" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8acac50eabb09b9a062bfeaef7f943f9e7">GEOS_LINESTRING</a>,</div> <div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8a2858500525a9249ef95a24d33c04f2f6"> 81</a></span>  <a class="code" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8a2858500525a9249ef95a24d33c04f2f6">GEOS_LINEARRING</a>,</div> <div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8ad049a213a3bced4eb7900eeae0814ba3"> 83</a></span>  <a class="code" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8ad049a213a3bced4eb7900eeae0814ba3">GEOS_POLYGON</a>,</div> <div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8afc434e57e19533af795a95796a032a8f"> 85</a></span>  <a class="code" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8afc434e57e19533af795a95796a032a8f">GEOS_MULTIPOINT</a>,</div> <div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8a1370cb41e0578504d2b93a23fdac99fd"> 87</a></span>  <a class="code" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8a1370cb41e0578504d2b93a23fdac99fd">GEOS_MULTILINESTRING</a>,</div> <div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8ae56b8b200a145ccfacc77cdb05e25b2c"> 89</a></span>  <a class="code" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8ae56b8b200a145ccfacc77cdb05e25b2c">GEOS_MULTIPOLYGON</a>,</div> <div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8ab48fde06301f4394c46d0fd5305be70e"> 91</a></span>  <a class="code" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8ab48fde06301f4394c46d0fd5305be70e">GEOS_GEOMETRYCOLLECTION</a></div> <div class="line"><a name="l00092"></a><span class="lineno"> 92</span> };</div> <div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div> <div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">enum</span> GeometrySortIndex {</div> <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  SORTINDEX_POINT = 0,</div> <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  SORTINDEX_MULTIPOINT = 1,</div> <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  SORTINDEX_LINESTRING = 2,</div> <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  SORTINDEX_LINEARRING = 3,</div> <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  SORTINDEX_MULTILINESTRING = 4,</div> <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  SORTINDEX_POLYGON = 5,</div> <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  SORTINDEX_MULTIPOLYGON = 6,</div> <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  SORTINDEX_GEOMETRYCOLLECTION = 7</div> <div class="line"><a name="l00103"></a><span class="lineno"> 103</span> };</div> <div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div> <div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classgeos_1_1geom_1_1Geometry.html"> 188</a></span> <span class="keyword">class </span>GEOS_DLL <a class="code" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> {</div> <div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div> <div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div> <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classgeos_1_1geom_1_1GeometryFactory.html">GeometryFactory</a>;</div> <div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div> <div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classgeos_1_1geom_1_1Geometry.html#a83f0703f34370c8c1900f70478479ed2"> 195</a></span>  <span class="keyword">using</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html#a83f0703f34370c8c1900f70478479ed2">ConstVect</a> = std::vector<const Geometry*>;</div> <div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div> <div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classgeos_1_1geom_1_1Geometry.html#a0a36e1ee6e576c0fe925592a510ef307"> 198</a></span>  <span class="keyword">using</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html#a0a36e1ee6e576c0fe925592a510ef307">NonConstVect</a> = std::vector<Geometry*>;</div> <div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div> <div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="classgeos_1_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33"> 201</a></span>  <span class="keyword">using</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Ptr</a> = std::unique_ptr<Geometry> ;</div> <div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div> <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keyword">virtual</span> std::unique_ptr<Geometry> clone() <span class="keyword">const</span> = 0;</div> <div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div> <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keyword">virtual</span> ~<a class="code" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>();</div> <div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div> <div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div> <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1GeometryFactory.html">GeometryFactory</a>*</div> <div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classgeos_1_1geom_1_1Geometry.html#ab41bcf3461be250e143ed2d7da19815b"> 218</a></span>  <a class="code" href="classgeos_1_1geom_1_1Geometry.html#ab41bcf3461be250e143ed2d7da19815b">getFactory</a>()<span class="keyword"> const</span></div> <div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keyword"> </span>{</div> <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">return</span> _factory;</div> <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  }</div> <div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div> <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordtype">void</span></div> <div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classgeos_1_1geom_1_1Geometry.html#a75dcb588b48e79ab3249d37137b12e1d"> 237</a></span>  <a class="code" href="classgeos_1_1geom_1_1Geometry.html#a75dcb588b48e79ab3249d37137b12e1d">setUserData</a>(<span class="keywordtype">void</span>* newUserData)</div> <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  {</div> <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  _userData = newUserData;</div> <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  }</div> <div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div> <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordtype">void</span>*</div> <div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classgeos_1_1geom_1_1Geometry.html#a28afb816f4065c929e97108da1503f29"> 249</a></span>  <a class="code" href="classgeos_1_1geom_1_1Geometry.html#a28afb816f4065c929e97108da1503f29">getUserData</a>()<span class="keyword"> const</span></div> <div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="keyword"> </span>{</div> <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">return</span> _userData;</div> <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  }</div> <div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div> <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span></div> <div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="classgeos_1_1geom_1_1Geometry.html#a898135f854cc07c243e7deb45de65505"> 265</a></span>  <a class="code" href="classgeos_1_1geom_1_1Geometry.html#a898135f854cc07c243e7deb45de65505">getSRID</a>()<span class="keyword"> const</span></div> <div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="keyword"> </span>{</div> <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keywordflow">return</span> SRID;</div> <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  }</div> <div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div> <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span></div> <div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classgeos_1_1geom_1_1Geometry.html#afc2702d0d3827a304db1ccc25714f6a3"> 274</a></span>  <a class="code" href="classgeos_1_1geom_1_1Geometry.html#afc2702d0d3827a304db1ccc25714f6a3">setSRID</a>(<span class="keywordtype">int</span> newSRID)</div> <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  {</div> <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  SRID = newSRID;</div> <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  }</div> <div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div> <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1PrecisionModel.html">PrecisionModel</a>* getPrecisionModel() <span class="keyword">const</span>;</div> <div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div> <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a>* getCoordinate() <span class="keyword">const</span> = 0; <span class="comment">//Abstract</span></div> <div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div> <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keyword">virtual</span> std::unique_ptr<CoordinateSequence> getCoordinates() <span class="keyword">const</span> = 0; <span class="comment">//Abstract</span></div> <div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div> <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keyword">virtual</span> std::size_t getNumPoints() <span class="keyword">const</span> = 0; <span class="comment">//Abstract</span></div> <div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div> <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isSimple() <span class="keyword">const</span>;</div> <div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div> <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keyword">virtual</span> std::string getGeometryType() <span class="keyword">const</span> = 0; <span class="comment">//Abstract</span></div> <div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div> <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keyword">virtual</span> <a class="code" href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8">GeometryTypeId</a> getGeometryTypeId() <span class="keyword">const</span> = 0; <span class="comment">//Abstract</span></div> <div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div> <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keyword">virtual</span> std::size_t</div> <div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="classgeos_1_1geom_1_1Geometry.html#aa9c08c0e76c8cfc0e13b1b471e4049db"> 310</a></span>  <a class="code" href="classgeos_1_1geom_1_1Geometry.html#aa9c08c0e76c8cfc0e13b1b471e4049db">getNumGeometries</a>()<span class="keyword"> const</span></div> <div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="keyword"> </span>{</div> <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keywordflow">return</span> 1;</div> <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  }</div> <div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div> <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>*</div> <div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="classgeos_1_1geom_1_1Geometry.html#ae46e3ec59729a56ea2979b5a177cc25d"> 318</a></span>  <a class="code" href="classgeos_1_1geom_1_1Geometry.html#ae46e3ec59729a56ea2979b5a177cc25d">getGeometryN</a>(std::size_t <span class="comment">/*n*/</span>)<span class="keyword"> const</span></div> <div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="keyword"> </span>{</div> <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">return</span> <span class="keyword">this</span>;</div> <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  }</div> <div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div> <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isValid() <span class="keyword">const</span>;</div> <div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div> <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isEmpty() <span class="keyword">const</span> = 0; <span class="comment">//Abstract</span></div> <div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div> <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span></div> <div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="classgeos_1_1geom_1_1Geometry.html#ab21116730ab9f580285a7e3a93f7941e"> 339</a></span>  <a class="code" href="classgeos_1_1geom_1_1Geometry.html#ab21116730ab9f580285a7e3a93f7941e">isRectangle</a>()<span class="keyword"> const</span></div> <div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="keyword"> </span>{</div> <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  }</div> <div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div> <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keyword">virtual</span> <a class="code" href="classgeos_1_1geom_1_1Dimension.html#af46f1c0c325eb685fcf32987748d04cf">Dimension::DimensionType</a> getDimension() <span class="keyword">const</span> = 0; <span class="comment">//Abstract</span></div> <div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div> <div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="classgeos_1_1geom_1_1Geometry.html#a2263ca7a107a8048276f11c92fabfab3"> 348</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html#a2263ca7a107a8048276f11c92fabfab3">isDimensionStrict</a>(<a class="code" href="classgeos_1_1geom_1_1Dimension.html#af46f1c0c325eb685fcf32987748d04cf">Dimension::DimensionType</a> d)<span class="keyword"> const </span>{</div> <div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordflow">return</span> d == getDimension();</div> <div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  }</div> <div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div> <div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordtype">bool</span> isPuntal()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="keywordflow">return</span> isDimensionStrict(<a class="code" href="classgeos_1_1geom_1_1Dimension.html#af46f1c0c325eb685fcf32987748d04cfa8baa9b556734c7439b778dd77175d68a">Dimension::P</a>);</div> <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  }</div> <div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div> <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordtype">bool</span> isLineal()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="keywordflow">return</span> isDimensionStrict(<a class="code" href="classgeos_1_1geom_1_1Dimension.html#af46f1c0c325eb685fcf32987748d04cfa4647a7b91baa6f91d523f9293100789d">Dimension::L</a>);</div> <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  }</div> <div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div> <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keywordtype">bool</span> isPolygonal()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keywordflow">return</span> isDimensionStrict(<a class="code" href="classgeos_1_1geom_1_1Dimension.html#af46f1c0c325eb685fcf32987748d04cfa35166f022d8564b72d7cb041c1a8d9a2">Dimension::A</a>);</div> <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  }</div> <div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div> <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> getCoordinateDimension() <span class="keyword">const</span> = 0; <span class="comment">//Abstract</span></div> <div class="line"><a name="l00366"></a><span class="lineno"> 366</span> </div> <div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keyword">virtual</span> std::unique_ptr<Geometry> getBoundary() <span class="keyword">const</span> = 0; <span class="comment">//Abstract</span></div> <div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div> <div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> getBoundaryDimension() <span class="keyword">const</span> = 0; <span class="comment">//Abstract</span></div> <div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div> <div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keyword">virtual</span> std::unique_ptr<Geometry> getEnvelope() <span class="keyword">const</span>;</div> <div class="line"><a name="l00390"></a><span class="lineno"> 390</span> </div> <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> Envelope* getEnvelopeInternal() <span class="keyword">const</span>;</div> <div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div> <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> disjoint(<span class="keyword">const</span> Geometry* other) <span class="keyword">const</span>;</div> <div class="line"><a name="l00414"></a><span class="lineno"> 414</span> </div> <div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> touches(<span class="keyword">const</span> Geometry* other) <span class="keyword">const</span>;</div> <div class="line"><a name="l00420"></a><span class="lineno"> 420</span> </div> <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> intersects(<span class="keyword">const</span> Geometry* g) <span class="keyword">const</span>;</div> <div class="line"><a name="l00423"></a><span class="lineno"> 423</span> </div> <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> crosses(<span class="keyword">const</span> Geometry* g) <span class="keyword">const</span>;</div> <div class="line"><a name="l00447"></a><span class="lineno"> 447</span> </div> <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> within(<span class="keyword">const</span> Geometry* g) <span class="keyword">const</span>;</div> <div class="line"><a name="l00453"></a><span class="lineno"> 453</span> </div> <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> contains(<span class="keyword">const</span> Geometry* g) <span class="keyword">const</span>;</div> <div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div> <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> overlaps(<span class="keyword">const</span> Geometry* g) <span class="keyword">const</span>;</div> <div class="line"><a name="l00463"></a><span class="lineno"> 463</span> </div> <div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keywordtype">bool</span> relate(<span class="keyword">const</span> Geometry* g,</div> <div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keyword">const</span> std::string& intersectionPattern) <span class="keyword">const</span>;</div> <div class="line"><a name="l00480"></a><span class="lineno"> 480</span> </div> <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keywordtype">bool</span></div> <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  relate(<span class="keyword">const</span> Geometry& g, <span class="keyword">const</span> std::string& intersectionPattern)<span class="keyword"> const</span></div> <div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="keyword"> </span>{</div> <div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keywordflow">return</span> relate(&g, intersectionPattern);</div> <div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  }</div> <div class="line"><a name="l00486"></a><span class="lineno"> 486</span> </div> <div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  std::unique_ptr<IntersectionMatrix> relate(<span class="keyword">const</span> Geometry* g) <span class="keyword">const</span>;</div> <div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div> <div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  std::unique_ptr<IntersectionMatrix> relate(<span class="keyword">const</span> Geometry& g)<span class="keyword"> const</span></div> <div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="keyword"> </span>{</div> <div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keywordflow">return</span> relate(&g);</div> <div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  }</div> <div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div> <div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> equals(<span class="keyword">const</span> Geometry* g) <span class="keyword">const</span>;</div> <div class="line"><a name="l00501"></a><span class="lineno"> 501</span> </div> <div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keywordtype">bool</span> covers(<span class="keyword">const</span> Geometry* g) <span class="keyword">const</span>;</div> <div class="line"><a name="l00541"></a><span class="lineno"> 541</span> </div> <div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="keywordtype">bool</span></div> <div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="classgeos_1_1geom_1_1Geometry.html#af979c13c17f500907d0be400f80abb45"> 573</a></span>  <a class="code" href="classgeos_1_1geom_1_1Geometry.html#af979c13c17f500907d0be400f80abb45">coveredBy</a>(<span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* g)<span class="keyword"> const</span></div> <div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="keyword"> </span>{</div> <div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keywordflow">return</span> g-><a class="code" href="classgeos_1_1geom_1_1Geometry.html#aad901fe993635be50793e7cfd19b113f">covers</a>(<span class="keyword">this</span>);</div> <div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  }</div> <div class="line"><a name="l00577"></a><span class="lineno"> 577</span> </div> <div class="line"><a name="l00578"></a><span class="lineno"> 578</span> </div> <div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keyword">virtual</span> std::string toString() <span class="keyword">const</span>;</div> <div class="line"><a name="l00581"></a><span class="lineno"> 581</span> </div> <div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="keyword">virtual</span> std::string toText() <span class="keyword">const</span>;</div> <div class="line"><a name="l00583"></a><span class="lineno"> 583</span> </div> <div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  std::unique_ptr<Geometry> buffer(<span class="keywordtype">double</span> distance) <span class="keyword">const</span>;</div> <div class="line"><a name="l00589"></a><span class="lineno"> 589</span> </div> <div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  std::unique_ptr<Geometry> buffer(<span class="keywordtype">double</span> distance, <span class="keywordtype">int</span> quadrantSegments) <span class="keyword">const</span>;</div> <div class="line"><a name="l00598"></a><span class="lineno"> 598</span> </div> <div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  std::unique_ptr<Geometry> buffer(<span class="keywordtype">double</span> distance, <span class="keywordtype">int</span> quadrantSegments,</div> <div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <span class="keywordtype">int</span> endCapStyle) <span class="keyword">const</span>;</div> <div class="line"><a name="l00637"></a><span class="lineno"> 637</span> </div> <div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <span class="keyword">virtual</span> std::unique_ptr<Geometry> convexHull() <span class="keyword">const</span>;</div> <div class="line"><a name="l00642"></a><span class="lineno"> 642</span> </div> <div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <span class="keyword">virtual</span> std::unique_ptr<Geometry> reverse() <span class="keyword">const</span> = 0;</div> <div class="line"><a name="l00650"></a><span class="lineno"> 650</span> </div> <div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  std::unique_ptr<Geometry> intersection(<span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* other) <span class="keyword">const</span>;</div> <div class="line"><a name="l00661"></a><span class="lineno"> 661</span> </div> <div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  std::unique_ptr<Geometry> Union(<span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* other) <span class="keyword">const</span>;</div> <div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <span class="comment">// throw(IllegalArgumentException *, TopologyException *);</span></div> <div class="line"><a name="l00673"></a><span class="lineno"> 673</span> </div> <div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  Ptr Union() <span class="keyword">const</span>;</div> <div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  <span class="comment">// throw(IllegalArgumentException *, TopologyException *);</span></div> <div class="line"><a name="l00693"></a><span class="lineno"> 693</span> </div> <div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  std::unique_ptr<Geometry> difference(<span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* other) <span class="keyword">const</span>;</div> <div class="line"><a name="l00705"></a><span class="lineno"> 705</span> </div> <div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  std::unique_ptr<Geometry> symDifference(<span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* other) <span class="keyword">const</span>;</div> <div class="line"><a name="l00716"></a><span class="lineno"> 716</span> </div> <div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> equalsExact(<span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* other, <span class="keywordtype">double</span> tolerance = 0)</div> <div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <span class="keyword">const</span> = 0; <span class="comment">//Abstract</span></div> <div class="line"><a name="l00723"></a><span class="lineno"> 723</span> </div> <div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> apply_rw(<span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1CoordinateFilter.html">CoordinateFilter</a>* filter) = 0; <span class="comment">//Abstract</span></div> <div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> apply_ro(<a class="code" href="classgeos_1_1geom_1_1CoordinateFilter.html">CoordinateFilter</a>* filter) <span class="keyword">const</span> = 0; <span class="comment">//Abstract</span></div> <div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> apply_rw(<a class="code" href="classgeos_1_1geom_1_1GeometryFilter.html">GeometryFilter</a>* filter);</div> <div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> apply_ro(<a class="code" href="classgeos_1_1geom_1_1GeometryFilter.html">GeometryFilter</a>* filter) <span class="keyword">const</span>;</div> <div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> apply_rw(<a class="code" href="classgeos_1_1geom_1_1GeometryComponentFilter.html">GeometryComponentFilter</a>* filter);</div> <div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> apply_ro(<a class="code" href="classgeos_1_1geom_1_1GeometryComponentFilter.html">GeometryComponentFilter</a>* filter) <span class="keyword">const</span>;</div> <div class="line"><a name="l00730"></a><span class="lineno"> 730</span> </div> <div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> apply_rw(<a class="code" href="classgeos_1_1geom_1_1CoordinateSequenceFilter.html">CoordinateSequenceFilter</a>& filter) = 0;</div> <div class="line"><a name="l00740"></a><span class="lineno"> 740</span> </div> <div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> apply_ro(<a class="code" href="classgeos_1_1geom_1_1CoordinateSequenceFilter.html">CoordinateSequenceFilter</a>& filter) <span class="keyword">const</span> = 0;</div> <div class="line"><a name="l00748"></a><span class="lineno"> 748</span> </div> <div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  <span class="keyword">template</span> <<span class="keyword">class</span> T></div> <div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  <span class="keywordtype">void</span></div> <div class="line"><a name="l00760"></a><span class="lineno"><a class="line" href="classgeos_1_1geom_1_1Geometry.html#a979504ef90b6d3b67af529cec504fbfe"> 760</a></span>  <a class="code" href="classgeos_1_1geom_1_1Geometry.html#a979504ef90b6d3b67af529cec504fbfe">applyComponentFilter</a>(T& f)<span class="keyword"> const</span></div> <div class="line"><a name="l00761"></a><span class="lineno"> 761</span> <span class="keyword"> </span>{</div> <div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keywordflow">for</span>(std::size_t i = 0, n = getNumGeometries(); i < n; ++i) {</div> <div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  f.filter(getGeometryN(i));</div> <div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  }</div> <div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  }</div> <div class="line"><a name="l00766"></a><span class="lineno"> 766</span> </div> <div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> normalize() = 0; <span class="comment">//Abstract</span></div> <div class="line"><a name="l00769"></a><span class="lineno"> 769</span> </div> <div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> compareTo(<span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* geom) <span class="keyword">const</span>;</div> <div class="line"><a name="l00771"></a><span class="lineno"> 771</span> </div> <div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <span class="keyword">virtual</span> <span class="keywordtype">double</span> distance(<span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* g) <span class="keyword">const</span>;</div> <div class="line"><a name="l00777"></a><span class="lineno"> 777</span> </div> <div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="keyword">virtual</span> <span class="keywordtype">double</span> getArea() <span class="keyword">const</span>;</div> <div class="line"><a name="l00780"></a><span class="lineno"> 780</span> </div> <div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <span class="keyword">virtual</span> <span class="keywordtype">double</span> getLength() <span class="keyword">const</span>;</div> <div class="line"><a name="l00783"></a><span class="lineno"> 783</span> </div> <div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isWithinDistance(<span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* geom,</div> <div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  <span class="keywordtype">double</span> cDistance) <span class="keyword">const</span>;</div> <div class="line"><a name="l00797"></a><span class="lineno"> 797</span> </div> <div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  <span class="keyword">virtual</span> std::unique_ptr<Point> getCentroid() <span class="keyword">const</span>;</div> <div class="line"><a name="l00808"></a><span class="lineno"> 808</span> </div> <div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  <span class="comment">//</span></div> <div class="line"><a name="l00813"></a><span class="lineno"> 813</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> getCentroid(<a class="code" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a>& ret) <span class="keyword">const</span>;</div> <div class="line"><a name="l00814"></a><span class="lineno"> 814</span> </div> <div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  std::unique_ptr<Point> getInteriorPoint() <span class="keyword">const</span>;</div> <div class="line"><a name="l00826"></a><span class="lineno"> 826</span> </div> <div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> geometryChanged();</div> <div class="line"><a name="l00833"></a><span class="lineno"> 833</span> </div> <div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  <span class="keywordtype">void</span> geometryChangedAction();</div> <div class="line"><a name="l00840"></a><span class="lineno"> 840</span> </div> <div class="line"><a name="l00841"></a><span class="lineno"> 841</span> <span class="keyword">protected</span>:</div> <div class="line"><a name="l00842"></a><span class="lineno"> 842</span> </div> <div class="line"><a name="l00844"></a><span class="lineno"><a class="line" href="classgeos_1_1geom_1_1Geometry.html#a3078813471b2c70b04da6271a5da83eb"> 844</a></span>  <span class="keyword">mutable</span> std::unique_ptr<Envelope> <a class="code" href="classgeos_1_1geom_1_1Geometry.html#a3078813471b2c70b04da6271a5da83eb">envelope</a>;</div> <div class="line"><a name="l00845"></a><span class="lineno"> 845</span> </div> <div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div> <div class="line"><a name="l00848"></a><span class="lineno"><a class="line" href="classgeos_1_1geom_1_1Geometry.html#a9fe7d434f5eeac333fca775a652f5d70"> 848</a></span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html#a9fe7d434f5eeac333fca775a652f5d70">hasNonEmptyElements</a>(<span class="keyword">const</span> std::vector<T>* geometries) {</div> <div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <span class="keywordflow">return</span> std::any_of(geometries->begin(), geometries->end(), [](<span class="keyword">const</span> T& g) { <span class="keywordflow">return</span> !g->isEmpty(); });</div> <div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  }</div> <div class="line"><a name="l00851"></a><span class="lineno"> 851</span> </div> <div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> hasNullElements(<span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1CoordinateSequence.html">CoordinateSequence</a>* list);</div> <div class="line"><a name="l00854"></a><span class="lineno"> 854</span> </div> <div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div> <div class="line"><a name="l00857"></a><span class="lineno"><a class="line" href="classgeos_1_1geom_1_1Geometry.html#af956233ea57ece02cc8a97338e8e91db"> 857</a></span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html#af956233ea57ece02cc8a97338e8e91db">hasNullElements</a>(<span class="keyword">const</span> std::vector<T>* geometries) {</div> <div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  <span class="keywordflow">return</span> std::any_of(geometries->begin(), geometries->end(), [](<span class="keyword">const</span> T& g) { <span class="keywordflow">return</span> g == <span class="keyword">nullptr</span>; });</div> <div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  }</div> <div class="line"><a name="l00860"></a><span class="lineno"> 860</span> </div> <div class="line"><a name="l00861"></a><span class="lineno"> 861</span> <span class="comment">// static void reversePointOrder(CoordinateSequence* coordinates);</span></div> <div class="line"><a name="l00862"></a><span class="lineno"> 862</span> <span class="comment">// static Coordinate& minCoordinate(CoordinateSequence* coordinates);</span></div> <div class="line"><a name="l00863"></a><span class="lineno"> 863</span> <span class="comment">// static void scroll(CoordinateSequence* coordinates,Coordinate* firstCoordinate);</span></div> <div class="line"><a name="l00864"></a><span class="lineno"> 864</span> <span class="comment">// static int indexOf(Coordinate* coordinate,CoordinateSequence* coordinates);</span></div> <div class="line"><a name="l00865"></a><span class="lineno"> 865</span> <span class="comment">//</span></div> <div class="line"><a name="l00870"></a><span class="lineno"> 870</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isEquivalentClass(<span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* other) <span class="keyword">const</span>;</div> <div class="line"><a name="l00871"></a><span class="lineno"> 871</span> </div> <div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> checkNotGeometryCollection(<span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* g);</div> <div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <span class="comment">// throw(IllegalArgumentException *);</span></div> <div class="line"><a name="l00874"></a><span class="lineno"> 874</span> </div> <div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  <span class="comment">//virtual void checkEqualSRID(Geometry *other);</span></div> <div class="line"><a name="l00876"></a><span class="lineno"> 876</span> </div> <div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  <span class="comment">//virtual void checkEqualPrecisionModel(Geometry *other);</span></div> <div class="line"><a name="l00878"></a><span class="lineno"> 878</span> </div> <div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  <span class="keyword">virtual</span> Envelope::Ptr computeEnvelopeInternal() <span class="keyword">const</span> = 0; <span class="comment">//Abstract</span></div> <div class="line"><a name="l00880"></a><span class="lineno"> 880</span> </div> <div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> compareToSameClass(<span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* geom) <span class="keyword">const</span> = 0; <span class="comment">//Abstract</span></div> <div class="line"><a name="l00882"></a><span class="lineno"> 882</span> </div> <div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <span class="keywordtype">int</span> compare(std::vector<Coordinate> a, std::vector<Coordinate> b) <span class="keyword">const</span>;</div> <div class="line"><a name="l00884"></a><span class="lineno"> 884</span> </div> <div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  <span class="keywordtype">int</span> compare(std::vector<Geometry*> a, std::vector<Geometry*> b) <span class="keyword">const</span>;</div> <div class="line"><a name="l00886"></a><span class="lineno"> 886</span> </div> <div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  <span class="keywordtype">int</span> compare(<span class="keyword">const</span> std::vector<std::unique_ptr<Geometry>> & a, <span class="keyword">const</span> std::vector<std::unique_ptr<Geometry>> & b) <span class="keyword">const</span>;</div> <div class="line"><a name="l00888"></a><span class="lineno"> 888</span> </div> <div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  <span class="keywordtype">bool</span> equal(<span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a>& a, <span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a>& b,</div> <div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  <span class="keywordtype">double</span> tolerance) <span class="keyword">const</span>;</div> <div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  <span class="keywordtype">int</span> SRID;</div> <div class="line"><a name="l00892"></a><span class="lineno"> 892</span> </div> <div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <a class="code" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>(<span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>& geom);</div> <div class="line"><a name="l00894"></a><span class="lineno"> 894</span> </div> <div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  <a class="code" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>(<span class="keyword">const</span> <a class="code" href="classgeos_1_1geom_1_1GeometryFactory.html">GeometryFactory</a>* factory);</div> <div class="line"><a name="l00905"></a><span class="lineno"> 905</span> </div> <div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div> <div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  <span class="keyword">static</span> std::vector<std::unique_ptr<Geometry>> toGeometryArray(std::vector<std::unique_ptr<T>> && v) {</div> <div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  static_assert(std::is_base_of<Geometry, T>::value, <span class="stringliteral">""</span>);</div> <div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  std::vector<std::unique_ptr<Geometry>> gv(v.size());</div> <div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < v.size(); i++) {</div> <div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  gv[i] = std::move(v[i]);</div> <div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  }</div> <div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  <span class="keywordflow">return</span> gv;</div> <div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  }</div> <div class="line"><a name="l00915"></a><span class="lineno"> 915</span> </div> <div class="line"><a name="l00916"></a><span class="lineno"> 916</span> <span class="keyword">protected</span>:</div> <div class="line"><a name="l00917"></a><span class="lineno"> 917</span> </div> <div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> getSortIndex() <span class="keyword">const</span> = 0;</div> <div class="line"><a name="l00919"></a><span class="lineno"> 919</span> </div> <div class="line"><a name="l00920"></a><span class="lineno"> 920</span> </div> <div class="line"><a name="l00921"></a><span class="lineno"> 921</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l00922"></a><span class="lineno"> 922</span> </div> <div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  <span class="keyword">class </span>GEOS_DLL GeometryChangedFilter : <span class="keyword">public</span> GeometryComponentFilter {</div> <div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  <span class="keyword">public</span>:</div> <div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <span class="keywordtype">void</span> filter_rw(Geometry* geom) <span class="keyword">override</span>;</div> <div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  };</div> <div class="line"><a name="l00927"></a><span class="lineno"> 927</span> </div> <div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  <span class="keyword">static</span> GeometryChangedFilter geometryChangedFilter;</div> <div class="line"><a name="l00929"></a><span class="lineno"> 929</span> </div> <div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  <span class="keyword">const</span> GeometryFactory* _factory;</div> <div class="line"><a name="l00935"></a><span class="lineno"> 935</span> </div> <div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  <span class="keywordtype">void</span>* _userData;</div> <div class="line"><a name="l00937"></a><span class="lineno"> 937</span> };</div> <div class="line"><a name="l00938"></a><span class="lineno"> 938</span> </div> <div class="line"><a name="l00943"></a><span class="lineno"> 943</span> GEOS_DLL std::ostream& <a class="code" href="namespacegeos_1_1geom.html#a2031e0143940407ca589d3216cf0eb06">operator<< </a>(std::ostream& os, <span class="keyword">const</span> Geometry& geom);</div> <div class="line"><a name="l00944"></a><span class="lineno"> 944</span> </div> <div class="line"><a name="l00945"></a><span class="lineno"> 945</span> <span class="keyword">struct </span>GEOS_DLL GeometryGreaterThen {</div> <div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  <span class="keywordtype">bool</span> operator()(<span class="keyword">const</span> Geometry* first, <span class="keyword">const</span> Geometry* second);</div> <div class="line"><a name="l00947"></a><span class="lineno"> 947</span> };</div> <div class="line"><a name="l00948"></a><span class="lineno"> 948</span> </div> <div class="line"><a name="l00949"></a><span class="lineno"> 949</span> </div> <div class="line"><a name="l00951"></a><span class="lineno"> 951</span> GEOS_DLL std::string <a class="code" href="namespacegeos_1_1geom.html#acdb90e29e8ba4eeeb5860f2bb0bb9b0f">geosversion</a>();</div> <div class="line"><a name="l00952"></a><span class="lineno"> 952</span> </div> <div class="line"><a name="l00958"></a><span class="lineno"> 958</span> GEOS_DLL std::string <a class="code" href="namespacegeos_1_1geom.html#ac0f658bdb01fb543cd247febca7ab10c">jtsport</a>();</div> <div class="line"><a name="l00959"></a><span class="lineno"> 959</span> </div> <div class="line"><a name="l00960"></a><span class="lineno"> 960</span> <span class="comment">// We use this instead of std::pair<unique_ptr<Geometry>> because C++11</span></div> <div class="line"><a name="l00961"></a><span class="lineno"> 961</span> <span class="comment">// forbids that construct:</span></div> <div class="line"><a name="l00962"></a><span class="lineno"> 962</span> <span class="comment">// http://lwg.github.com/issues/lwg-closed.html#2068</span></div> <div class="line"><a name="l00963"></a><span class="lineno"> 963</span> <span class="keyword">struct </span>GeomPtrPair {</div> <div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  <span class="keyword">typedef</span> std::unique_ptr<Geometry> GeomPtr;</div> <div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  GeomPtr first;</div> <div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  GeomPtr second;</div> <div class="line"><a name="l00967"></a><span class="lineno"> 967</span> };</div> <div class="line"><a name="l00968"></a><span class="lineno"> 968</span> </div> <div class="line"><a name="l00969"></a><span class="lineno"> 969</span> } <span class="comment">// namespace geos::geom</span></div> <div class="line"><a name="l00970"></a><span class="lineno"> 970</span> } <span class="comment">// namespace geos</span></div> <div class="line"><a name="l00971"></a><span class="lineno"> 971</span> </div> <div class="line"><a name="l00972"></a><span class="lineno"> 972</span> <span class="preprocessor">#ifdef _MSC_VER</span></div> <div class="line"><a name="l00973"></a><span class="lineno"> 973</span> <span class="preprocessor"></span><span class="preprocessor">#pragma warning(pop)</span></div> <div class="line"><a name="l00974"></a><span class="lineno"> 974</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> <div class="line"><a name="l00975"></a><span class="lineno"> 975</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00976"></a><span class="lineno"> 976</span> <span class="preprocessor">#endif // ndef GEOS_GEOM_GEOMETRY_H</span></div> <div class="ttc" id="classgeos_1_1geom_1_1GeometryFilter_html"><div class="ttname"><a href="classgeos_1_1geom_1_1GeometryFilter.html">geos::geom::GeometryFilter</a></div><div class="ttdoc">Geometry classes support the concept of applying a Geometry filter to the Geometry. </div><div class="ttdef"><b>Definition:</b> GeometryFilter.h:47</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Geometry_html_a898135f854cc07c243e7deb45de65505"><div class="ttname"><a href="classgeos_1_1geom_1_1Geometry.html#a898135f854cc07c243e7deb45de65505">geos::geom::Geometry::getSRID</a></div><div class="ttdeci">virtual int getSRID() const </div><div class="ttdoc">Returns the ID of the Spatial Reference System used by the Geometry. </div><div class="ttdef"><b>Definition:</b> Geometry.h:265</div></div> <div class="ttc" id="namespacegeos_1_1geom_html_a98c5b0e81001a7c3fdc7a058960356d8acac50eabb09b9a062bfeaef7f943f9e7"><div class="ttname"><a href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8acac50eabb09b9a062bfeaef7f943f9e7">geos::geom::GEOS_LINESTRING</a></div><div class="ttdoc">a linestring </div><div class="ttdef"><b>Definition:</b> Geometry.h:79</div></div> <div class="ttc" id="namespacegeos_1_1geom_html_a98c5b0e81001a7c3fdc7a058960356d8ab48fde06301f4394c46d0fd5305be70e"><div class="ttname"><a href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8ab48fde06301f4394c46d0fd5305be70e">geos::geom::GEOS_GEOMETRYCOLLECTION</a></div><div class="ttdoc">a collection of heterogeneus geometries </div><div class="ttdef"><b>Definition:</b> Geometry.h:91</div></div> <div class="ttc" id="namespacegeos_1_1geom_html_a98c5b0e81001a7c3fdc7a058960356d8a1370cb41e0578504d2b93a23fdac99fd"><div class="ttname"><a href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8a1370cb41e0578504d2b93a23fdac99fd">geos::geom::GEOS_MULTILINESTRING</a></div><div class="ttdoc">a collection of linestrings </div><div class="ttdef"><b>Definition:</b> Geometry.h:87</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Coordinate_html"><div class="ttname"><a href="classgeos_1_1geom_1_1Coordinate.html">geos::geom::Coordinate</a></div><div class="ttdoc">Coordinate is the lightweight class used to store coordinates. </div><div class="ttdef"><b>Definition:</b> Coordinate.h:60</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Geometry_html_ae46e3ec59729a56ea2979b5a177cc25d"><div class="ttname"><a href="classgeos_1_1geom_1_1Geometry.html#ae46e3ec59729a56ea2979b5a177cc25d">geos::geom::Geometry::getGeometryN</a></div><div class="ttdeci">virtual const Geometry * getGeometryN(std::size_t) const </div><div class="ttdoc">Returns a pointer to the nth Geometry in this collection (or self if this is not a collection) ...</div><div class="ttdef"><b>Definition:</b> Geometry.h:318</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Geometry_html_ab21116730ab9f580285a7e3a93f7941e"><div class="ttname"><a href="classgeos_1_1geom_1_1Geometry.html#ab21116730ab9f580285a7e3a93f7941e">geos::geom::Geometry::isRectangle</a></div><div class="ttdeci">virtual bool isRectangle() const </div><div class="ttdoc">Polygon overrides to check for actual rectangle. </div><div class="ttdef"><b>Definition:</b> Geometry.h:339</div></div> <div class="ttc" id="classgeos_1_1geom_1_1CoordinateSequenceFilter_html"><div class="ttname"><a href="classgeos_1_1geom_1_1CoordinateSequenceFilter.html">geos::geom::CoordinateSequenceFilter</a></div><div class="ttdoc">Interface for classes which provide operations that can be applied to the coordinates in a Coordinate...</div><div class="ttdef"><b>Definition:</b> CoordinateSequenceFilter.h:57</div></div> <div class="ttc" id="classgeos_1_1geom_1_1PrecisionModel_html"><div class="ttname"><a href="classgeos_1_1geom_1_1PrecisionModel.html">geos::geom::PrecisionModel</a></div><div class="ttdoc">Specifies the precision model of the Coordinate in a Geometry. </div><div class="ttdef"><b>Definition:</b> PrecisionModel.h:87</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Geometry_html_aa9c08c0e76c8cfc0e13b1b471e4049db"><div class="ttname"><a href="classgeos_1_1geom_1_1Geometry.html#aa9c08c0e76c8cfc0e13b1b471e4049db">geos::geom::Geometry::getNumGeometries</a></div><div class="ttdeci">virtual std::size_t getNumGeometries() const </div><div class="ttdef"><b>Definition:</b> Geometry.h:310</div></div> <div class="ttc" id="namespacegeos_1_1geom_html_acdb90e29e8ba4eeeb5860f2bb0bb9b0f"><div class="ttname"><a href="namespacegeos_1_1geom.html#acdb90e29e8ba4eeeb5860f2bb0bb9b0f">geos::geom::geosversion</a></div><div class="ttdeci">std::string geosversion()</div><div class="ttdoc">Return current GEOS version. </div></div> <div class="ttc" id="namespacegeos_1_1geom_html_a98c5b0e81001a7c3fdc7a058960356d8"><div class="ttname"><a href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8">geos::geom::GeometryTypeId</a></div><div class="ttdeci">GeometryTypeId</div><div class="ttdoc">Geometry types. </div><div class="ttdef"><b>Definition:</b> Geometry.h:75</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Geometry_html_aad901fe993635be50793e7cfd19b113f"><div class="ttname"><a href="classgeos_1_1geom_1_1Geometry.html#aad901fe993635be50793e7cfd19b113f">geos::geom::Geometry::covers</a></div><div class="ttdeci">bool covers(const Geometry *g) const </div><div class="ttdoc">Returns true if this geometry covers the specified geometry. </div></div> <div class="ttc" id="classgeos_1_1geom_1_1Geometry_html"><div class="ttname"><a href="classgeos_1_1geom_1_1Geometry.html">geos::geom::Geometry</a></div><div class="ttdoc">Basic implementation of Geometry, constructed and destructed by GeometryFactory. </div><div class="ttdef"><b>Definition:</b> Geometry.h:188</div></div> <div class="ttc" id="classgeos_1_1geom_1_1CoordinateFilter_html"><div class="ttname"><a href="classgeos_1_1geom_1_1CoordinateFilter.html">geos::geom::CoordinateFilter</a></div><div class="ttdoc">Geometry classes support the concept of applying a coordinate filter to every coordinate in the Geome...</div><div class="ttdef"><b>Definition:</b> CoordinateFilter.h:43</div></div> <div class="ttc" id="namespacegeos_1_1geom_html_a98c5b0e81001a7c3fdc7a058960356d8afc434e57e19533af795a95796a032a8f"><div class="ttname"><a href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8afc434e57e19533af795a95796a032a8f">geos::geom::GEOS_MULTIPOINT</a></div><div class="ttdoc">a collection of points </div><div class="ttdef"><b>Definition:</b> Geometry.h:85</div></div> <div class="ttc" id="namespacegeos_1_1geom_html_ac0f658bdb01fb543cd247febca7ab10c"><div class="ttname"><a href="namespacegeos_1_1geom.html#ac0f658bdb01fb543cd247febca7ab10c">geos::geom::jtsport</a></div><div class="ttdeci">std::string jtsport()</div><div class="ttdoc">Return the version of JTS this GEOS release has been ported from. </div></div> <div class="ttc" id="classgeos_1_1geom_1_1Geometry_html_a75dcb588b48e79ab3249d37137b12e1d"><div class="ttname"><a href="classgeos_1_1geom_1_1Geometry.html#a75dcb588b48e79ab3249d37137b12e1d">geos::geom::Geometry::setUserData</a></div><div class="ttdeci">void setUserData(void *newUserData)</div><div class="ttdoc">A simple scheme for applications to add their own custom data to a Geometry. An example use might be ...</div><div class="ttdef"><b>Definition:</b> Geometry.h:237</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Dimension_html_af46f1c0c325eb685fcf32987748d04cfa4647a7b91baa6f91d523f9293100789d"><div class="ttname"><a href="classgeos_1_1geom_1_1Dimension.html#af46f1c0c325eb685fcf32987748d04cfa4647a7b91baa6f91d523f9293100789d">geos::geom::Dimension::L</a></div><div class="ttdoc">Dimension value of a curve (1). </div><div class="ttdef"><b>Definition:</b> Dimension.h:45</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Dimension_html_af46f1c0c325eb685fcf32987748d04cfa35166f022d8564b72d7cb041c1a8d9a2"><div class="ttname"><a href="classgeos_1_1geom_1_1Dimension.html#af46f1c0c325eb685fcf32987748d04cfa35166f022d8564b72d7cb041c1a8d9a2">geos::geom::Dimension::A</a></div><div class="ttdoc">Dimension value of a surface (2). </div><div class="ttdef"><b>Definition:</b> Dimension.h:48</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Geometry_html_a28afb816f4065c929e97108da1503f29"><div class="ttname"><a href="classgeos_1_1geom_1_1Geometry.html#a28afb816f4065c929e97108da1503f29">geos::geom::Geometry::getUserData</a></div><div class="ttdeci">void * getUserData() const </div><div class="ttdoc">Gets the user data object for this geometry, if any. </div><div class="ttdef"><b>Definition:</b> Geometry.h:249</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Geometry_html_ab41bcf3461be250e143ed2d7da19815b"><div class="ttname"><a href="classgeos_1_1geom_1_1Geometry.html#ab41bcf3461be250e143ed2d7da19815b">geos::geom::Geometry::getFactory</a></div><div class="ttdeci">const GeometryFactory * getFactory() const </div><div class="ttdoc">Gets the factory which contains the context in which this geometry was created. </div><div class="ttdef"><b>Definition:</b> Geometry.h:218</div></div> <div class="ttc" id="namespacegeos_1_1geom_html_a2031e0143940407ca589d3216cf0eb06"><div class="ttname"><a href="namespacegeos_1_1geom.html#a2031e0143940407ca589d3216cf0eb06">geos::geom::operator<<</a></div><div class="ttdeci">std::ostream & operator<<(std::ostream &os, const Coordinate &c)</div><div class="ttdoc">Output function. </div></div> <div class="ttc" id="classgeos_1_1geom_1_1GeometryFactory_html"><div class="ttname"><a href="classgeos_1_1geom_1_1GeometryFactory.html">geos::geom::GeometryFactory</a></div><div class="ttdoc">Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...</div><div class="ttdef"><b>Definition:</b> GeometryFactory.h:68</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Geometry_html_a0a36e1ee6e576c0fe925592a510ef307"><div class="ttname"><a href="classgeos_1_1geom_1_1Geometry.html#a0a36e1ee6e576c0fe925592a510ef307">geos::geom::Geometry::NonConstVect</a></div><div class="ttdeci">std::vector< Geometry * > NonConstVect</div><div class="ttdoc">A vector of non-const Geometry pointers. </div><div class="ttdef"><b>Definition:</b> Geometry.h:198</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Geometry_html_a2263ca7a107a8048276f11c92fabfab3"><div class="ttname"><a href="classgeos_1_1geom_1_1Geometry.html#a2263ca7a107a8048276f11c92fabfab3">geos::geom::Geometry::isDimensionStrict</a></div><div class="ttdeci">virtual bool isDimensionStrict(Dimension::DimensionType d) const </div><div class="ttdoc">Checks whether this Geometry consists only of components having dimension d. </div><div class="ttdef"><b>Definition:</b> Geometry.h:348</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Geometry_html_afc2702d0d3827a304db1ccc25714f6a3"><div class="ttname"><a href="classgeos_1_1geom_1_1Geometry.html#afc2702d0d3827a304db1ccc25714f6a3">geos::geom::Geometry::setSRID</a></div><div class="ttdeci">virtual void setSRID(int newSRID)</div><div class="ttdoc">Sets the ID of the Spatial Reference System used by the Geometry. </div><div class="ttdef"><b>Definition:</b> Geometry.h:274</div></div> <div class="ttc" id="namespacegeos_1_1geom_html_a98c5b0e81001a7c3fdc7a058960356d8ad049a213a3bced4eb7900eeae0814ba3"><div class="ttname"><a href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8ad049a213a3bced4eb7900eeae0814ba3">geos::geom::GEOS_POLYGON</a></div><div class="ttdoc">a polygon </div><div class="ttdef"><b>Definition:</b> Geometry.h:83</div></div> <div class="ttc" id="namespacegeos_1_1geom_html_a98c5b0e81001a7c3fdc7a058960356d8a2858500525a9249ef95a24d33c04f2f6"><div class="ttname"><a href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8a2858500525a9249ef95a24d33c04f2f6">geos::geom::GEOS_LINEARRING</a></div><div class="ttdoc">a linear ring (linestring with 1st point == last point) </div><div class="ttdef"><b>Definition:</b> Geometry.h:81</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Geometry_html_af956233ea57ece02cc8a97338e8e91db"><div class="ttname"><a href="classgeos_1_1geom_1_1Geometry.html#af956233ea57ece02cc8a97338e8e91db">geos::geom::Geometry::hasNullElements</a></div><div class="ttdeci">static bool hasNullElements(const std::vector< T > *geometries)</div><div class="ttdoc">Returns true if the vector contains any null elements. </div><div class="ttdef"><b>Definition:</b> Geometry.h:857</div></div> <div class="ttc" id="namespacegeos_1_1geom_html_a98c5b0e81001a7c3fdc7a058960356d8ac376a9701abf81f81a64a270ad4eb5de"><div class="ttname"><a href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8ac376a9701abf81f81a64a270ad4eb5de">geos::geom::GEOS_POINT</a></div><div class="ttdoc">a point </div><div class="ttdef"><b>Definition:</b> Geometry.h:77</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Dimension_html_af46f1c0c325eb685fcf32987748d04cfa8baa9b556734c7439b778dd77175d68a"><div class="ttname"><a href="classgeos_1_1geom_1_1Dimension.html#af46f1c0c325eb685fcf32987748d04cfa8baa9b556734c7439b778dd77175d68a">geos::geom::Dimension::P</a></div><div class="ttdoc">Dimension value of a point (0). </div><div class="ttdef"><b>Definition:</b> Dimension.h:42</div></div> <div class="ttc" id="classgeos_1_1geom_1_1CoordinateSequence_html"><div class="ttname"><a href="classgeos_1_1geom_1_1CoordinateSequence.html">geos::geom::CoordinateSequence</a></div><div class="ttdoc">The internal representation of a list of coordinates inside a Geometry. </div><div class="ttdef"><b>Definition:</b> CoordinateSequence.h:58</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Geometry_html_a9fe7d434f5eeac333fca775a652f5d70"><div class="ttname"><a href="classgeos_1_1geom_1_1Geometry.html#a9fe7d434f5eeac333fca775a652f5d70">geos::geom::Geometry::hasNonEmptyElements</a></div><div class="ttdeci">static bool hasNonEmptyElements(const std::vector< T > *geometries)</div><div class="ttdoc">Returns true if the array contains any non-empty Geometrys. </div><div class="ttdef"><b>Definition:</b> Geometry.h:848</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Geometry_html_a57c6acd6bb0a8371356897f40247ed33"><div class="ttname"><a href="classgeos_1_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">geos::geom::Geometry::Ptr</a></div><div class="ttdeci">std::unique_ptr< Geometry > Ptr</div><div class="ttdoc">An unique_ptr of Geometry. </div><div class="ttdef"><b>Definition:</b> Geometry.h:201</div></div> <div class="ttc" id="namespacegeos_1_1geom_html_a98c5b0e81001a7c3fdc7a058960356d8ae56b8b200a145ccfacc77cdb05e25b2c"><div class="ttname"><a href="namespacegeos_1_1geom.html#a98c5b0e81001a7c3fdc7a058960356d8ae56b8b200a145ccfacc77cdb05e25b2c">geos::geom::GEOS_MULTIPOLYGON</a></div><div class="ttdoc">a collection of polygons </div><div class="ttdef"><b>Definition:</b> Geometry.h:89</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Geometry_html_a3078813471b2c70b04da6271a5da83eb"><div class="ttname"><a href="classgeos_1_1geom_1_1Geometry.html#a3078813471b2c70b04da6271a5da83eb">geos::geom::Geometry::envelope</a></div><div class="ttdeci">std::unique_ptr< Envelope > envelope</div><div class="ttdoc">The bounding box of this Geometry. </div><div class="ttdef"><b>Definition:</b> Geometry.h:844</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Geometry_html_a83f0703f34370c8c1900f70478479ed2"><div class="ttname"><a href="classgeos_1_1geom_1_1Geometry.html#a83f0703f34370c8c1900f70478479ed2">geos::geom::Geometry::ConstVect</a></div><div class="ttdeci">std::vector< const Geometry * > ConstVect</div><div class="ttdoc">A vector of const Geometry pointers. </div><div class="ttdef"><b>Definition:</b> Geometry.h:195</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Geometry_html_a979504ef90b6d3b67af529cec504fbfe"><div class="ttname"><a href="classgeos_1_1geom_1_1Geometry.html#a979504ef90b6d3b67af529cec504fbfe">geos::geom::Geometry::applyComponentFilter</a></div><div class="ttdeci">void applyComponentFilter(T &f) const </div><div class="ttdoc">Apply a filter to each component of this geometry. The filter is expected to provide a ...</div><div class="ttdef"><b>Definition:</b> Geometry.h:760</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Dimension_html_af46f1c0c325eb685fcf32987748d04cf"><div class="ttname"><a href="classgeos_1_1geom_1_1Dimension.html#af46f1c0c325eb685fcf32987748d04cf">geos::geom::Dimension::DimensionType</a></div><div class="ttdeci">DimensionType</div><div class="ttdef"><b>Definition:</b> Dimension.h:31</div></div> <div class="ttc" id="classgeos_1_1geom_1_1Geometry_html_af979c13c17f500907d0be400f80abb45"><div class="ttname"><a href="classgeos_1_1geom_1_1Geometry.html#af979c13c17f500907d0be400f80abb45">geos::geom::Geometry::coveredBy</a></div><div class="ttdeci">bool coveredBy(const Geometry *g) const </div><div class="ttdoc">Tests whether this geometry is covered by the specified geometry. </div><div class="ttdef"><b>Definition:</b> Geometry.h:573</div></div> <div class="ttc" id="classgeos_1_1geom_1_1GeometryComponentFilter_html"><div class="ttname"><a href="classgeos_1_1geom_1_1GeometryComponentFilter.html">geos::geom::GeometryComponentFilter</a></div><div class="ttdef"><b>Definition:</b> GeometryComponentFilter.h:43</div></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.5 </small></address> </body> </html>