<!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::index::quadtree::NodeBase 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 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 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 List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class 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_1index.html">index</a> </li> <li><a class="el" href="namespacegeos_1_1index_1_1quadtree.html">quadtree</a> </li> <li><a class="el" href="classgeos_1_1index_1_1quadtree_1_1NodeBase.html">geos::index::quadtree::NodeBase</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pub-static-methods">Static Public Member Functions</a> | <a href="#pro-methods">Protected Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> </div> <div class="headertitle"> <h1>geos::index::quadtree::NodeBase Class Reference</h1> </div> </div> <div class="contents"> <!-- doxytag: class="geos::index::quadtree::NodeBase" --> <p>The base class for nodes in a <a class="el" href="classgeos_1_1index_1_1quadtree_1_1Quadtree.html" title="A Quadtree is a spatial index structure for efficient querying of 2D rectangles. If other kinds of sp...">Quadtree</a>. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="quadtree_2NodeBase_8h_source.html">NodeBase.h</a>></code></p> <div class="dynheader"> Inheritance diagram for geos::index::quadtree::NodeBase:</div> <div class="dyncontent"> <div class="center"> <img src="classgeos_1_1index_1_1quadtree_1_1NodeBase.png" usemap="#geos::index::quadtree::NodeBase_map" alt=""/> <map id="geos::index::quadtree::NodeBase_map" name="geos::index::quadtree::NodeBase_map"> <area href="classgeos_1_1index_1_1quadtree_1_1Node.html" alt="geos::index::quadtree::Node" shape="rect" coords="0,56,194,80"/> <area href="classgeos_1_1index_1_1quadtree_1_1Root.html" alt="geos::index::quadtree::Root" shape="rect" coords="204,56,398,80"/> </map> </div> <p><a href="classgeos_1_1index_1_1quadtree_1_1NodeBase-members.html">List of all members.</a></p> <table class="memberdecls"> <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="a9d9dc87a278ac3a26c945c47a51bce2d"></a><!-- doxytag: member="geos::index::quadtree::NodeBase::getItems" ref="a9d9dc87a278ac3a26c945c47a51bce2d" args="()" --> std::vector< void * > & </td><td class="memItemRight" valign="bottom"><b>getItems</b> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1index_1_1quadtree_1_1NodeBase.html#afffc0a21cfa4e9bebd800858bcdd241d">add</a> (void *item)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aff47f707c40cf60b085e110427149500"></a><!-- doxytag: member="geos::index::quadtree::NodeBase::addAllItems" ref="aff47f707c40cf60b085e110427149500" args="(std::vector< void * > &resultItems) const " --> std::vector< void * > & </td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1index_1_1quadtree_1_1NodeBase.html#aff47f707c40cf60b085e110427149500">addAllItems</a> (std::vector< void * > &resultItems) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Push all node items to the given vector, return the argument. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4301a0a2833361597b36b8f73566e141"></a><!-- doxytag: member="geos::index::quadtree::NodeBase::addAllItemsFromOverlapping" ref="a4301a0a2833361597b36b8f73566e141" args="(const geom::Envelope &searchEnv, std::vector< void * > &resultItems) const " --> virtual void </td><td class="memItemRight" valign="bottom"><b>addAllItemsFromOverlapping</b> (const <a class="el" href="classgeos_1_1geom_1_1Envelope.html">geom::Envelope</a> &searchEnv, std::vector< void * > &resultItems) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab4f5a7a575c0467e461c4669c6ca0407"></a><!-- doxytag: member="geos::index::quadtree::NodeBase::depth" ref="ab4f5a7a575c0467e461c4669c6ca0407" args="() const " --> unsigned int </td><td class="memItemRight" valign="bottom"><b>depth</b> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a276ef9602853643e0d649628d519c746"></a><!-- doxytag: member="geos::index::quadtree::NodeBase::size" ref="a276ef9602853643e0d649628d519c746" args="() const " --> unsigned int </td><td class="memItemRight" valign="bottom"><b>size</b> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae5eb12c1329202a8bf300f1f202ae182"></a><!-- doxytag: member="geos::index::quadtree::NodeBase::getNodeCount" ref="ae5eb12c1329202a8bf300f1f202ae182" args="() const " --> unsigned int </td><td class="memItemRight" valign="bottom"><b>getNodeCount</b> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae01615440deb6dce55e8f47f8f170be6"></a><!-- doxytag: member="geos::index::quadtree::NodeBase::toString" ref="ae01615440deb6dce55e8f47f8f170be6" args="() const " --> virtual std::string </td><td class="memItemRight" valign="bottom"><b>toString</b> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9911c1f0490448ddb228c6d7ba09dc4f"></a><!-- doxytag: member="geos::index::quadtree::NodeBase::visit" ref="a9911c1f0490448ddb228c6d7ba09dc4f" args="(const geom::Envelope *searchEnv, ItemVisitor &visitor)" --> virtual void </td><td class="memItemRight" valign="bottom"><b>visit</b> (const <a class="el" href="classgeos_1_1geom_1_1Envelope.html">geom::Envelope</a> *searchEnv, <a class="el" href="classgeos_1_1index_1_1ItemVisitor.html">ItemVisitor</a> &visitor)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1index_1_1quadtree_1_1NodeBase.html#a699caf191302b61a36311b6eeba50e03">remove</a> (const <a class="el" href="classgeos_1_1geom_1_1Envelope.html">geom::Envelope</a> *itemEnv, void *item)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a619b35e4a6e7e1841a31101cefc29064"></a><!-- doxytag: member="geos::index::quadtree::NodeBase::hasItems" ref="a619b35e4a6e7e1841a31101cefc29064" args="() const " --> bool </td><td class="memItemRight" valign="bottom"><b>hasItems</b> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaff52e7a12a06c388621a21bd96f3ac8"></a><!-- doxytag: member="geos::index::quadtree::NodeBase::hasChildren" ref="aaff52e7a12a06c388621a21bd96f3ac8" args="() const " --> bool </td><td class="memItemRight" valign="bottom"><b>hasChildren</b> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a742d629e87601b4c83b99c0d383a1922"></a><!-- doxytag: member="geos::index::quadtree::NodeBase::isPrunable" ref="a742d629e87601b4c83b99c0d383a1922" args="() const " --> bool </td><td class="memItemRight" valign="bottom"><b>isPrunable</b> () const </td></tr> <tr><td colspan="2"><h2><a name="pub-static-methods"></a> Static Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a05b90932b608a08e215b4ff9c1dea0"></a><!-- doxytag: member="geos::index::quadtree::NodeBase::getSubnodeIndex" ref="a3a05b90932b608a08e215b4ff9c1dea0" args="(const geom::Envelope *env, const geom::Coordinate &centre)" --> static int </td><td class="memItemRight" valign="bottom"><b>getSubnodeIndex</b> (const <a class="el" href="classgeos_1_1geom_1_1Envelope.html">geom::Envelope</a> *env, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &centre)</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="a670416b0289d00482afe373800376879"></a><!-- doxytag: member="geos::index::quadtree::NodeBase::isSearchMatch" ref="a670416b0289d00482afe373800376879" args="(const geom::Envelope &searchEnv) const =0" --> virtual bool </td><td class="memItemRight" valign="bottom"><b>isSearchMatch</b> (const <a class="el" href="classgeos_1_1geom_1_1Envelope.html">geom::Envelope</a> &searchEnv) const =0</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="a56e32a714cf1120b06d323e6f35f732e"></a><!-- doxytag: member="geos::index::quadtree::NodeBase::items" ref="a56e32a714cf1120b06d323e6f35f732e" args="" --> std::vector< void * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1index_1_1quadtree_1_1NodeBase.html#a56e32a714cf1120b06d323e6f35f732e">items</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Actual items are NOT owned by this class. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1index_1_1quadtree_1_1Node.html">Node</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1index_1_1quadtree_1_1NodeBase.html#aac005ed5f9aee3956d5ca10c1a6f914b">subnode</a> [4]</td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>The base class for nodes in a <a class="el" href="classgeos_1_1index_1_1quadtree_1_1Quadtree.html" title="A Quadtree is a spatial index structure for efficient querying of 2D rectangles. If other kinds of sp...">Quadtree</a>. </p> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="afffc0a21cfa4e9bebd800858bcdd241d"></a><!-- doxytag: member="geos::index::quadtree::NodeBase::add" ref="afffc0a21cfa4e9bebd800858bcdd241d" args="(void *item)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void geos::index::quadtree::NodeBase::add </td> <td>(</td> <td class="paramtype">void * </td> <td class="paramname"> <em>item</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Add an item to this node. Ownership of the item is left to caller. </p> </div> </div> <a class="anchor" id="a699caf191302b61a36311b6eeba50e03"></a><!-- doxytag: member="geos::index::quadtree::NodeBase::remove" ref="a699caf191302b61a36311b6eeba50e03" args="(const geom::Envelope *itemEnv, void *item)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool geos::index::quadtree::NodeBase::remove </td> <td>(</td> <td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Envelope.html">geom::Envelope</a> * </td> <td class="paramname"> <em>itemEnv</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>item</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Removes a single item from this subtree.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>searchEnv</em> </td><td>the envelope containing the item </td></tr> <tr><td valign="top"></td><td valign="top"><em>item</em> </td><td>the item to remove </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd><code>true</code> if the item was found and removed </dd></dl> </div> </div> <hr/><h2>Member Data Documentation</h2> <a class="anchor" id="aac005ed5f9aee3956d5ca10c1a6f914b"></a><!-- doxytag: member="geos::index::quadtree::NodeBase::subnode" ref="aac005ed5f9aee3956d5ca10c1a6f914b" args="[4]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classgeos_1_1index_1_1quadtree_1_1Node.html">Node</a>* <a class="el" href="classgeos_1_1index_1_1quadtree_1_1NodeBase.html#aac005ed5f9aee3956d5ca10c1a6f914b">geos::index::quadtree::NodeBase::subnode</a>[4]<code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>subquads are numbered as follows: </p> <pre> 2 | 3 --+-- 0 | 1 </pre><p>Nodes are owned by this class </p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="quadtree_2NodeBase_8h_source.html">quadtree/NodeBase.h</a></li> </ul> </div> <hr class="footer"/><address class="footer"><small>Generated on Thu Jul 22 2010 for GEOS by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address> </body> </html>