Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 4bc66056a634db26a1f4d0845dc41ca6 > files > 5523

mrpt-doc-0.9.5-0.1.20110925svn2670.fc16.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>nanoflann::KDTreeSingleIndexAdaptor Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> &gt; <b>C++ reference</b> </div>
<div align="right">
<a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a>
</div>
<!-- Generated by Doxygen 1.7.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</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>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
          <div class="left">
            <form id="FSearchBox" action="search.php" method="get">
              <img id="MSearchSelect" src="search/mag.png" alt=""/>
              <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" 
                     onfocus="searchBox.OnSearchFieldFocus(true)" 
                     onblur="searchBox.OnSearchFieldFocus(false)"/>
            </form>
          </div><div class="right"></div>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacenanoflann.html">nanoflann</a>      </li>
      <li class="navelem"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html">KDTreeSingleIndexAdaptor</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pri-types">Private Types</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">nanoflann::KDTreeSingleIndexAdaptor Class Reference<div class="ingroups"><a class="el" href="group__kdtrees__grp.html">KD-tree classes and adaptors</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="nanoflann::KDTreeSingleIndexAdaptor" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>kd-tree index </p>
<p>Contains the k-d trees and other information for indexing a set of points for nearest-neighbor matching.</p>
<p>The class "DatasetAdaptor" must provide the following interface (can be non-virtual, inlined methods):</p>
<div class="fragment"><pre class="fragment">   <span class="comment">// Must return the number of data points</span>
   <span class="keyword">inline</span> <span class="keywordtype">size_t</span> kdtree_get_point_count()<span class="keyword"> const </span>{ ... }

   <span class="comment">// Must return the Euclidean (L2) distance between the vector &quot;p1[0:size-1]&quot; and the data point with index &quot;idx_p2&quot; stored in the class:</span>
   <span class="keyword">inline</span> <span class="keywordtype">float</span> kdtree_distance(<span class="keyword">const</span> <span class="keywordtype">float</span> *p1, <span class="keyword">const</span> <span class="keywordtype">size_t</span> idx_p2,<span class="keywordtype">size_t</span> <a class="code" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a69ade412e55d0e64b20e017809ca87ee" title="Returns size of index.">size</a>)<span class="keyword"> const </span>{ ... }

   <span class="comment">// Must return the dim&#39;th component of the idx&#39;th point in the class:</span>
   <span class="keyword">inline</span> num_t kdtree_get_pt(<span class="keyword">const</span> <span class="keywordtype">size_t</span> idx, <span class="keywordtype">int</span> <a class="code" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ac0c5e3331356e68a7b658ccd950af75b">dim</a>)<span class="keyword"> const </span>{ ... }

   <span class="comment">// Optional bounding-box computation: return false to default to a standard bbox computation loop.</span>
   <span class="comment">//   Return true if the BBOX was already computed by the class and returned in &quot;bb&quot; so it can be avoided to redo it again.</span>
   <span class="comment">//   Look at bb.size() to find out the expected dimensionality (e.g. 2 or 3 for point clouds)</span>
   <span class="keyword">template</span> &lt;<span class="keyword">class</span> BBOX&gt;
   <span class="keywordtype">bool</span> kdtree_get_bbox(BBOX &amp;bb)<span class="keyword"> const</span>
<span class="keyword">   </span>{
      bb[0].low = ...; bb[0].high = ...;  <span class="comment">// 0th dimension limits</span>
      bb[1].low = ...; bb[1].high = ...;  <span class="comment">// 1st dimension limits</span>
      ...
      <span class="keywordflow">return</span> <span class="keyword">true</span>;
   }
</pre></div> </div>
<p><code>#include &lt;<a class="el" href="nanoflann_8hpp_source.html">mrpt/otherlibs/nanoflann/nanoflann.hpp</a>&gt;</code></p>

<p><a href="classnanoflann_1_1_k_d_tree_single_index_adaptor-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_1_1_branch_struct.html">BranchStruct</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This record represents a branch point when finding neighbors in the tree.  <a href="structnanoflann_1_1_k_d_tree_single_index_adaptor_1_1_branch_struct.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_1_1_interval.html">Interval</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_1_1_node.html">Node</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a4848332eaa0f21e6cdfeb419effea381">KDTreeSingleIndexAdaptor</a> (const int dimensionality, const DatasetAdaptor &amp;inputData, const <a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_params.html">KDTreeSingleIndexAdaptorParams</a> &amp;params=<a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_params.html">KDTreeSingleIndexAdaptorParams</a>())</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">KDTree constructor.  <a href="#a4848332eaa0f21e6cdfeb419effea381"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a006f508a2709ad21db133f53b568c95c">~KDTreeSingleIndexAdaptor</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Standard destructor.  <a href="#a006f508a2709ad21db133f53b568c95c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#aca790689af0e1cacb97c1702bca7e801">buildIndex</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds the index.  <a href="#aca790689af0e1cacb97c1702bca7e801"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a69ade412e55d0e64b20e017809ca87ee">size</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns size of index.  <a href="#a69ade412e55d0e64b20e017809ca87ee"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a226820ee2ad26a5ca3d559a3ac84a88b">veclen</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the length of an index feature.  <a href="#a226820ee2ad26a5ca3d559a3ac84a88b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ac5c1431f7adbabe16ef58d67ff2a369c">usedMemory</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the inde memory usage Returns: memory used by the index.  <a href="#ac5c1431f7adbabe16ef58d67ff2a369c"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Query methods</div></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename RESULTSET &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a993c2f92163508dee0b2ea7240758788">findNeighbors</a> (RESULTSET &amp;result, const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a> *vec, const <a class="el" href="structnanoflann_1_1_search_params.html">SearchParams</a> &amp;searchParams) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Find set of nearest neighbors to vec[0:dim-1].  <a href="#a993c2f92163508dee0b2ea7240758788"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a1d10f4eee8eb2d8fd1cbdd8f680a0e60">knnSearch</a> (const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a> *query_point, int num_closest, int *out_indices, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a> *out_distances_sq, const int nChecks=10) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the "num_closest" nearest neighbors to the <em>query_point</em>[0:dim-1].  <a href="#a1d10f4eee8eb2d8fd1cbdd8f680a0e60"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#af38434c674cac047f8d2f297ce1f5178">radiusSearch</a> (const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a> *query_point, const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> radius, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; std::pair&lt; int, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> &gt; &gt; &amp;IndicesDists, const <a class="el" href="structnanoflann_1_1_search_params.html">SearchParams</a> &amp;searchParams) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Find all the neighbors to <em>query_point</em>[0:dim-1] within a maximum radius.  <a href="#af38434c674cac047f8d2f297ce1f5178"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Distance&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#aa2eec2ed9ff1fac56fcc90f4a7a27ff7">distance</a></td></tr>
<tr><td colspan="2"><h2><a name="pri-types"></a>
Private Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef Distance::ElementType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef Distance::ResultType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_1_1_node.html">Node</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a3bf8e168a72b079f50d104b2e526e3bc">NodePtr</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_1_1_interval.html">Interval</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a69a9111665626fbebca0231426eb76cf">BoundingBox</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_1_1_branch_struct.html">BranchStruct</a>&lt; <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a3bf8e168a72b079f50d104b2e526e3bc">NodePtr</a>, <br class="typebreak"/>
<a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a44cfc5a539d278b67ec7aae434c428a5">BranchSt</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a44cfc5a539d278b67ec7aae434c428a5">BranchSt</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#aa5fa781fca2d8b0e3704f0782333c566">Branch</a></td></tr>
<tr><td colspan="2"><h2><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a851e4a0c4d7aa40f08a57ee42cc869cf">dataset_get</a> (size_t idx, int component) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper accessor to the dataset points:  <a href="#a851e4a0c4d7aa40f08a57ee42cc869cf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a2ad8974bea65453783163ff3150a7a38">save_tree</a> (FILE *stream, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a3bf8e168a72b079f50d104b2e526e3bc">NodePtr</a> tree)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a721d1e86474196928d6f7c95d2b13168">load_tree</a> (FILE *stream, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a3bf8e168a72b079f50d104b2e526e3bc">NodePtr</a> &amp;tree)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a2ba88e4d33cdd00c13663bffd2bd301a">computeBoundingBox</a> (<a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a69a9111665626fbebca0231426eb76cf">BoundingBox</a> &amp;bbox)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a3bf8e168a72b079f50d104b2e526e3bc">NodePtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a2a30a300ecc5e9fd837688dd8c4b807c">divideTree</a> (int left, int right, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a69a9111665626fbebca0231426eb76cf">BoundingBox</a> &amp;bbox)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a tree node that subdivides the list of vecs from vind[first] to vind[last].  <a href="#a2a30a300ecc5e9fd837688dd8c4b807c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a7f7121b101dfe0651b80653bcc58bd1a">computeMinMax</a> (int *ind, int count, int element, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a> &amp;min_elem, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a> &amp;max_elem)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a7df2741d46afbfe9739eee0015c12fbd">middleSplit</a> (int *ind, int count, int &amp;index, int &amp;cutfeat, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> &amp;cutval, const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a69a9111665626fbebca0231426eb76cf">BoundingBox</a> &amp;bbox)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a73b605f0600d237b4b641d5cc2058d84">middleSplit_</a> (int *ind, int count, int &amp;index, int &amp;cutfeat, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> &amp;cutval, const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a69a9111665626fbebca0231426eb76cf">BoundingBox</a> &amp;bbox)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a7cd481e90c75d1ec49306b2a94c76b44">planeSplit</a> (int *ind, int count, int cutfeat, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> cutval, int &amp;lim1, int &amp;lim2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Subdivide the list of points by a plane perpendicular on axe corresponding to the 'cutfeat' dimension at 'cutval' position.  <a href="#a7cd481e90c75d1ec49306b2a94c76b44"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a652bcb94da37cba34499a63a74a5a8a4">computeInitialDistances</a> (const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a> *vec, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> &gt; &amp;dists) const </td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class RESULTSET &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dff098b8369ada2018523d8e2caf7e6">searchLevel</a> (RESULTSET &amp;result_set, const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a> *vec, const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a3bf8e168a72b079f50d104b2e526e3bc">NodePtr</a> node, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> mindistsq, <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> &gt; &amp;dists, const float epsError, int &amp;count_leaf) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an exact search in the tree starting from a node.  <a href="#a6dff098b8369ada2018523d8e2caf7e6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a860fcfd642158e06a47b8b4fe27003fe">saveIndex</a> (FILE *stream)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a1e298a1f4c11a00d6421b2e577e6fe37">loadIndex</a> (FILE *stream)</td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ade22cc465a0105733f5d5a2805e7735c">vind</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Array of indices to vectors in the dataset.  <a href="#ade22cc465a0105733f5d5a2805e7735c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a4b925cfecaefd01e828f8f7ef30501d5">leaf_max_size_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const DatasetAdaptor &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ab75797e3d3ce9b230b302c280f89474c">dataset</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The dataset used by this index.  <a href="#ab75797e3d3ce9b230b302c280f89474c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <br class="typebreak"/>
<a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_params.html">KDTreeSingleIndexAdaptorParams</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a7419d9e0afc13cf75433f37087026d46">index_params</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6694660fb4fcf93ef2351e2c31b35473">size_</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ac0c5e3331356e68a7b658ccd950af75b">dim</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a3bf8e168a72b079f50d104b2e526e3bc">NodePtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a70dc661a5321eeee84615e61dee72d38">root_node</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Array of k-d trees used to find neighbours.  <a href="#a70dc661a5321eeee84615e61dee72d38"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a69a9111665626fbebca0231426eb76cf">BoundingBox</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a137f3db080f1f4b891049b46ac6eac15">root_bbox</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnanoflann_1_1_pooled_allocator.html">PooledAllocator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a65dd6389fd3369f779ab913b0321042a">pool</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Pooled memory allocator.  <a href="#a65dd6389fd3369f779ab913b0321042a"></a><br/></td></tr>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="a69a9111665626fbebca0231426eb76cf"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::BoundingBox" ref="a69a9111665626fbebca0231426eb76cf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;<a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_1_1_interval.html">Interval</a>&gt; <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a69a9111665626fbebca0231426eb76cf">nanoflann::KDTreeSingleIndexAdaptor::BoundingBox</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00639">639</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="aa5fa781fca2d8b0e3704f0782333c566"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::Branch" ref="aa5fa781fca2d8b0e3704f0782333c566" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a44cfc5a539d278b67ec7aae434c428a5">BranchSt</a>* <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#aa5fa781fca2d8b0e3704f0782333c566">nanoflann::KDTreeSingleIndexAdaptor::Branch</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00666">666</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a44cfc5a539d278b67ec7aae434c428a5"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::BranchSt" ref="a44cfc5a539d278b67ec7aae434c428a5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_1_1_branch_struct.html">BranchStruct</a>&lt;<a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a3bf8e168a72b079f50d104b2e526e3bc">NodePtr</a>, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a>&gt; <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a44cfc5a539d278b67ec7aae434c428a5">nanoflann::KDTreeSingleIndexAdaptor::BranchSt</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00665">665</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a6dc5d921d34570f8f190d4cd1755ae88"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::DistanceType" ref="a6dc5d921d34570f8f190d4cd1755ae88" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Distance::ResultType <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">nanoflann::KDTreeSingleIndexAdaptor::DistanceType</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00582">582</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="ad1cbf9b9b733b4cb2a0c94e2263ae6ac"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::ElementType" ref="ad1cbf9b9b733b4cb2a0c94e2263ae6ac" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Distance::ElementType <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">nanoflann::KDTreeSingleIndexAdaptor::ElementType</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00581">581</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a3bf8e168a72b079f50d104b2e526e3bc"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::NodePtr" ref="a3bf8e168a72b079f50d104b2e526e3bc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_1_1_node.html">Node</a>* <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a3bf8e168a72b079f50d104b2e526e3bc">nanoflann::KDTreeSingleIndexAdaptor::NodePtr</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00631">631</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a4848332eaa0f21e6cdfeb419effea381"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::KDTreeSingleIndexAdaptor" ref="a4848332eaa0f21e6cdfeb419effea381" args="(const int dimensionality, const DatasetAdaptor &amp;inputData, const KDTreeSingleIndexAdaptorParams &amp;params=KDTreeSingleIndexAdaptorParams())" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">nanoflann::KDTreeSingleIndexAdaptor::KDTreeSingleIndexAdaptor </td>
          <td>(</td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>dimensionality</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const DatasetAdaptor &amp;&#160;</td>
          <td class="paramname"><em>inputData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_params.html">KDTreeSingleIndexAdaptorParams</a> &amp;&#160;</td>
          <td class="paramname"><em>params</em> = <code><a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_params.html">KDTreeSingleIndexAdaptorParams</a>()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>KDTree constructor. </p>
<p>Params: inputData = dataset with the input features params = parameters passed to the kdtree algorithm </p>

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00690">690</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a006f508a2709ad21db133f53b568c95c"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::~KDTreeSingleIndexAdaptor" ref="a006f508a2709ad21db133f53b568c95c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">nanoflann::KDTreeSingleIndexAdaptor::~KDTreeSingleIndexAdaptor </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Standard destructor. </p>

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00711">711</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="aca790689af0e1cacb97c1702bca7e801"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::buildIndex" ref="aca790689af0e1cacb97c1702bca7e801" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nanoflann::KDTreeSingleIndexAdaptor::buildIndex </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Builds the index. </p>

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00718">718</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a2ba88e4d33cdd00c13663bffd2bd301a"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::computeBoundingBox" ref="a2ba88e4d33cdd00c13663bffd2bd301a" args="(BoundingBox &amp;bbox)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nanoflann::KDTreeSingleIndexAdaptor::computeBoundingBox </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a69a9111665626fbebca0231426eb76cf">BoundingBox</a> &amp;&#160;</td>
          <td class="paramname"><em>bbox</em></td><td>)</td>
          <td><code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00845">845</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a652bcb94da37cba34499a63a74a5a8a4"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::computeInitialDistances" ref="a652bcb94da37cba34499a63a74a5a8a4" args="(const ElementType *vec, std::vector&lt; DistanceType &gt; &amp;dists) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> nanoflann::KDTreeSingleIndexAdaptor::computeInitialDistances </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a> *&#160;</td>
          <td class="paramname"><em>vec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>dists</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l01064">1064</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

<p>References <a class="el" href="group__geometry__grp.html#ga8c0a76e906f12560cfa49fcd269c8398">mrpt::math::distance()</a>.</p>

</div>
</div>
<a class="anchor" id="a7f7121b101dfe0651b80653bcc58bd1a"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::computeMinMax" ref="a7f7121b101dfe0651b80653bcc58bd1a" args="(int *ind, int count, int element, ElementType &amp;min_elem, ElementType &amp;max_elem)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nanoflann::KDTreeSingleIndexAdaptor::computeMinMax </td>
          <td>(</td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>ind</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>element</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a> &amp;&#160;</td>
          <td class="paramname"><em>min_elem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a> &amp;&#160;</td>
          <td class="paramname"><em>max_elem</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00928">928</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

<p>References <a class="el" href="nanoflann_8hpp_source.html#l00066">nanoflann::KNNResultSet::count</a>.</p>

</div>
</div>
<a class="anchor" id="a851e4a0c4d7aa40f08a57ee42cc869cf"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::dataset_get" ref="a851e4a0c4d7aa40f08a57ee42cc869cf" args="(size_t idx, int component) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a> nanoflann::KDTreeSingleIndexAdaptor::dataset_get </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>component</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Helper accessor to the dataset points: </p>

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00815">815</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a2a30a300ecc5e9fd837688dd8c4b807c"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::divideTree" ref="a2a30a300ecc5e9fd837688dd8c4b807c" args="(int left, int right, BoundingBox &amp;bbox)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a3bf8e168a72b079f50d104b2e526e3bc">NodePtr</a> nanoflann::KDTreeSingleIndexAdaptor::divideTree </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>left</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>right</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a69a9111665626fbebca0231426eb76cf">BoundingBox</a> &amp;&#160;</td>
          <td class="paramname"><em>bbox</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a tree node that subdivides the list of vecs from vind[first] to vind[last]. </p>
<p>The routine is called recursively on each sublist. Place a pointer to this new tree node in the location pTree.</p>
<p>Params: pTree = the new node to create first = index of the first vector last = index of the last vector </p>

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00878">878</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

<p>References <a class="el" href="nanoflann_8hpp_source.html#l00629">nanoflann::KDTreeSingleIndexAdaptor::Node::child1</a>, <a class="el" href="nanoflann_8hpp_source.html#l00629">nanoflann::KDTreeSingleIndexAdaptor::Node::child2</a>, <a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_1_1_node.html#a4af2b70f9aa82818ea759b65e791f8b3">nanoflann::KDTreeSingleIndexAdaptor::Node::lr</a>, and <a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_1_1_node.html#a47fda7bcb8c3237bc347aeac21ad2817">nanoflann::KDTreeSingleIndexAdaptor::Node::sub</a>.</p>

</div>
</div>
<a class="anchor" id="a993c2f92163508dee0b2ea7240758788"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::findNeighbors" ref="a993c2f92163508dee0b2ea7240758788" args="(RESULTSET &amp;result, const ElementType *vec, const SearchParams &amp;searchParams) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename RESULTSET &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void nanoflann::KDTreeSingleIndexAdaptor::findNeighbors </td>
          <td>(</td>
          <td class="paramtype">RESULTSET &amp;&#160;</td>
          <td class="paramname"><em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a> *&#160;</td>
          <td class="paramname"><em>vec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structnanoflann_1_1_search_params.html">SearchParams</a> &amp;&#160;</td>
          <td class="paramname"><em>searchParams</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find set of nearest neighbors to vec[0:dim-1]. </p>
<p>Their indices are stored inside the result object.</p>
<p>Params: result = the result object in which the indices of the nearest-neighbors are stored vec = the vector for which to search the nearest neighbors maxCheck = the maximum number of restarts (in a best-bin-first manner)</p>
<dl><dt><b>Template Parameters:</b></dt><dd>
  <table class="">
    <tr><td class="paramname">RESULTSET</td><td>Should be any ResultSet&lt;DistanceType&gt; </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a1d10f4eee8eb2d8fd1cbdd8f680a0e60" title="Find the &quot;num_closest&quot; nearest neighbors to the query_point[0:dim-1].">knnSearch</a>, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#af38434c674cac047f8d2f297ce1f5178" title="Find all the neighbors to query_point[0:dim-1] within a maximum radius.">radiusSearch</a> </dd></dl>

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00765">765</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

<p>References <a class="el" href="nanoflann_8hpp_source.html#l00388">nanoflann::SearchParams::eps</a>, and <a class="el" href="nanoflann_8hpp_source.html#l00064">nanoflann::KNNResultSet::dists</a>.</p>

</div>
</div>
<a class="anchor" id="a1d10f4eee8eb2d8fd1cbdd8f680a0e60"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::knnSearch" ref="a1d10f4eee8eb2d8fd1cbdd8f680a0e60" args="(const ElementType *query_point, int num_closest, int *out_indices, ElementType *out_distances_sq, const int nChecks=10) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nanoflann::KDTreeSingleIndexAdaptor::knnSearch </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a> *&#160;</td>
          <td class="paramname"><em>query_point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>num_closest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>out_indices</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a> *&#160;</td>
          <td class="paramname"><em>out_distances_sq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>nChecks</em> = <code>10</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find the "num_closest" nearest neighbors to the <em>query_point</em>[0:dim-1]. </p>
<p>Their indices are stored inside the result object. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#af38434c674cac047f8d2f297ce1f5178" title="Find all the neighbors to query_point[0:dim-1] within a maximum radius.">radiusSearch</a>, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a993c2f92163508dee0b2ea7240758788" title="Find set of nearest neighbors to vec[0:dim-1].">findNeighbors</a> </dd></dl>

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00780">780</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

<p>References <a class="el" href="nanoflann_8hpp_source.html#l00073">nanoflann::KNNResultSet::init()</a>.</p>

</div>
</div>
<a class="anchor" id="a721d1e86474196928d6f7c95d2b13168"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::load_tree" ref="a721d1e86474196928d6f7c95d2b13168" args="(FILE *stream, NodePtr &amp;tree)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nanoflann::KDTreeSingleIndexAdaptor::load_tree </td>
          <td>(</td>
          <td class="paramtype">FILE *&#160;</td>
          <td class="paramname"><em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a3bf8e168a72b079f50d104b2e526e3bc">NodePtr</a> &amp;&#160;</td>
          <td class="paramname"><em>tree</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00832">832</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

<p>References <a class="el" href="nanoflann_8hpp_source.html#l00185">nanoflann::load_value()</a>, <a class="el" href="nanoflann_8hpp_source.html#l00629">nanoflann::KDTreeSingleIndexAdaptor::Node::child1</a>, and <a class="el" href="nanoflann_8hpp_source.html#l00629">nanoflann::KDTreeSingleIndexAdaptor::Node::child2</a>.</p>

</div>
</div>
<a class="anchor" id="a1e298a1f4c11a00d6421b2e577e6fe37"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::loadIndex" ref="a1e298a1f4c11a00d6421b2e577e6fe37" args="(FILE *stream)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nanoflann::KDTreeSingleIndexAdaptor::loadIndex </td>
          <td>(</td>
          <td class="paramtype">FILE *&#160;</td>
          <td class="paramname"><em>stream</em></td><td>)</td>
          <td><code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l01147">1147</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

<p>References <a class="el" href="nanoflann_8hpp_source.html#l00185">nanoflann::load_value()</a>.</p>

</div>
</div>
<a class="anchor" id="a7df2741d46afbfe9739eee0015c12fbd"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::middleSplit" ref="a7df2741d46afbfe9739eee0015c12fbd" args="(int *ind, int count, int &amp;index, int &amp;cutfeat, DistanceType &amp;cutval, const BoundingBox &amp;bbox)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nanoflann::KDTreeSingleIndexAdaptor::middleSplit </td>
          <td>(</td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>ind</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>cutfeat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> &amp;&#160;</td>
          <td class="paramname"><em>cutval</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a69a9111665626fbebca0231426eb76cf">BoundingBox</a> &amp;&#160;</td>
          <td class="paramname"><em>bbox</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00939">939</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a73b605f0600d237b4b641d5cc2058d84"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::middleSplit_" ref="a73b605f0600d237b4b641d5cc2058d84" args="(int *ind, int count, int &amp;index, int &amp;cutfeat, DistanceType &amp;cutval, const BoundingBox &amp;bbox)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nanoflann::KDTreeSingleIndexAdaptor::middleSplit_ </td>
          <td>(</td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>ind</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>cutfeat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> &amp;&#160;</td>
          <td class="paramname"><em>cutval</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a69a9111665626fbebca0231426eb76cf">BoundingBox</a> &amp;&#160;</td>
          <td class="paramname"><em>bbox</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00984">984</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a7cd481e90c75d1ec49306b2a94c76b44"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::planeSplit" ref="a7cd481e90c75d1ec49306b2a94c76b44" args="(int *ind, int count, int cutfeat, DistanceType cutval, int &amp;lim1, int &amp;lim2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nanoflann::KDTreeSingleIndexAdaptor::planeSplit </td>
          <td>(</td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>ind</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cutfeat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a>&#160;</td>
          <td class="paramname"><em>cutval</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>lim1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>lim2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Subdivide the list of points by a plane perpendicular on axe corresponding to the 'cutfeat' dimension at 'cutval' position. </p>
<p>On return: dataset[ind[0..lim1-1]][cutfeat]&lt;cutval dataset[ind[lim1..lim2-1]][cutfeat]==cutval dataset[ind[lim2..count]][cutfeat]&gt;cutval </p>

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l01035">1035</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="af38434c674cac047f8d2f297ce1f5178"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::radiusSearch" ref="af38434c674cac047f8d2f297ce1f5178" args="(const ElementType *query_point, const DistanceType radius, std::vector&lt; std::pair&lt; int, DistanceType &gt; &gt; &amp;IndicesDists, const SearchParams &amp;searchParams) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t nanoflann::KDTreeSingleIndexAdaptor::radiusSearch </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a> *&#160;</td>
          <td class="paramname"><em>query_point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a>&#160;</td>
          <td class="paramname"><em>radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; std::pair&lt; int, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>IndicesDists</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structnanoflann_1_1_search_params.html">SearchParams</a> &amp;&#160;</td>
          <td class="paramname"><em>searchParams</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find all the neighbors to <em>query_point</em>[0:dim-1] within a maximum radius. </p>
<p>The output is given as a vector of pairs, of which the first element is a point index and the second the corresponding distance. Previous contents of <em>IndicesDists</em> are cleared.</p>
<p>If searchParams.sorted==true, the output list is sorted by ascending distances.</p>
<p>For a better performance, it is advisable to do a .reserve() on the vector if you have any wild guess about the number of expected matches.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a1d10f4eee8eb2d8fd1cbdd8f680a0e60" title="Find the &quot;num_closest&quot; nearest neighbors to the query_point[0:dim-1].">knnSearch</a>, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a993c2f92163508dee0b2ea7240758788" title="Find set of nearest neighbors to vec[0:dim-1].">findNeighbors</a> </dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The number of points within the given radius (i.e. <a class="el" href="namespacemrpt_1_1math.html#a632ae0aecf78103f87f18f9ac33f7170">indices.size()</a> or <a class="el" href="namespacemrpt_1_1math.html#a632ae0aecf78103f87f18f9ac33f7170">dists.size()</a> ) </dd></dl>

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00799">799</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

<p>References <a class="el" href="nanoflann_8hpp_source.html#l00389">nanoflann::SearchParams::sorted</a>.</p>

</div>
</div>
<a class="anchor" id="a2ad8974bea65453783163ff3150a7a38"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::save_tree" ref="a2ad8974bea65453783163ff3150a7a38" args="(FILE *stream, NodePtr tree)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nanoflann::KDTreeSingleIndexAdaptor::save_tree </td>
          <td>(</td>
          <td class="paramtype">FILE *&#160;</td>
          <td class="paramname"><em>stream</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a3bf8e168a72b079f50d104b2e526e3bc">NodePtr</a>&#160;</td>
          <td class="paramname"><em>tree</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00820">820</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

<p>References <a class="el" href="nanoflann_8hpp_source.html#l00171">nanoflann::save_value()</a>, <a class="el" href="nanoflann_8hpp_source.html#l00629">nanoflann::KDTreeSingleIndexAdaptor::Node::child1</a>, and <a class="el" href="nanoflann_8hpp_source.html#l00629">nanoflann::KDTreeSingleIndexAdaptor::Node::child2</a>.</p>

</div>
</div>
<a class="anchor" id="a860fcfd642158e06a47b8b4fe27003fe"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::saveIndex" ref="a860fcfd642158e06a47b8b4fe27003fe" args="(FILE *stream)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nanoflann::KDTreeSingleIndexAdaptor::saveIndex </td>
          <td>(</td>
          <td class="paramtype">FILE *&#160;</td>
          <td class="paramname"><em>stream</em></td><td>)</td>
          <td><code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l01137">1137</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

<p>References <a class="el" href="nanoflann_8hpp_source.html#l00171">nanoflann::save_value()</a>.</p>

</div>
</div>
<a class="anchor" id="a6dff098b8369ada2018523d8e2caf7e6"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::searchLevel" ref="a6dff098b8369ada2018523d8e2caf7e6" args="(RESULTSET &amp;result_set, const ElementType *vec, const NodePtr node, DistanceType mindistsq, std::vector&lt; DistanceType &gt; &amp;dists, const float epsError, int &amp;count_leaf) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class RESULTSET &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void nanoflann::KDTreeSingleIndexAdaptor::searchLevel </td>
          <td>(</td>
          <td class="paramtype">RESULTSET &amp;&#160;</td>
          <td class="paramname"><em>result_set</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a> *&#160;</td>
          <td class="paramname"><em>vec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a3bf8e168a72b079f50d104b2e526e3bc">NodePtr</a>&#160;</td>
          <td class="paramname"><em>node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a>&#160;</td>
          <td class="paramname"><em>mindistsq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>dists</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&#160;</td>
          <td class="paramname"><em>epsError</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>count_leaf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Performs an exact search in the tree starting from a node. </p>
<dl><dt><b>Template Parameters:</b></dt><dd>
  <table class="">
    <tr><td class="paramname">RESULTSET</td><td>Should be any ResultSet&lt;DistanceType&gt; </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l01087">1087</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

<p>References <a class="el" href="nanoflann_8hpp_source.html#l00629">nanoflann::KDTreeSingleIndexAdaptor::Node::child1</a>, <a class="el" href="nanoflann_8hpp_source.html#l00629">nanoflann::KDTreeSingleIndexAdaptor::Node::child2</a>, <a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_1_1_node.html#a4af2b70f9aa82818ea759b65e791f8b3">nanoflann::KDTreeSingleIndexAdaptor::Node::lr</a>, <a class="el" href="group__geometry__grp.html#ga8c0a76e906f12560cfa49fcd269c8398">mrpt::math::distance()</a>, and <a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_1_1_node.html#a47fda7bcb8c3237bc347aeac21ad2817">nanoflann::KDTreeSingleIndexAdaptor::Node::sub</a>.</p>

</div>
</div>
<a class="anchor" id="a69ade412e55d0e64b20e017809ca87ee"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::size" ref="a69ade412e55d0e64b20e017809ca87ee" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t nanoflann::KDTreeSingleIndexAdaptor::size </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns size of index. </p>

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00727">727</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="ac5c1431f7adbabe16ef58d67ff2a369c"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::usedMemory" ref="ac5c1431f7adbabe16ef58d67ff2a369c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int nanoflann::KDTreeSingleIndexAdaptor::usedMemory </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the inde memory usage Returns: memory used by the index. </p>

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00744">744</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a226820ee2ad26a5ca3d559a3ac84a88b"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::veclen" ref="a226820ee2ad26a5ca3d559a3ac84a88b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t nanoflann::KDTreeSingleIndexAdaptor::veclen </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the length of an index feature. </p>

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00735">735</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="ab75797e3d3ce9b230b302c280f89474c"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::dataset" ref="ab75797e3d3ce9b230b302c280f89474c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const DatasetAdaptor&amp; <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ab75797e3d3ce9b230b302c280f89474c">nanoflann::KDTreeSingleIndexAdaptor::dataset</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The dataset used by this index. </p>
<p>The source of our data </p>

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00595">595</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="ac0c5e3331356e68a7b658ccd950af75b"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::dim" ref="ac0c5e3331356e68a7b658ccd950af75b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ac0c5e3331356e68a7b658ccd950af75b">nanoflann::KDTreeSingleIndexAdaptor::dim</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00600">600</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="aa2eec2ed9ff1fac56fcc90f4a7a27ff7"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::distance" ref="aa2eec2ed9ff1fac56fcc90f4a7a27ff7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Distance <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#aa2eec2ed9ff1fac56fcc90f4a7a27ff7">nanoflann::KDTreeSingleIndexAdaptor::distance</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00681">681</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a7419d9e0afc13cf75433f37087026d46"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::index_params" ref="a7419d9e0afc13cf75433f37087026d46" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_params.html">KDTreeSingleIndexAdaptorParams</a> <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a7419d9e0afc13cf75433f37087026d46">nanoflann::KDTreeSingleIndexAdaptor::index_params</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00597">597</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a4b925cfecaefd01e828f8f7ef30501d5"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::leaf_max_size_" ref="a4b925cfecaefd01e828f8f7ef30501d5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a4b925cfecaefd01e828f8f7ef30501d5">nanoflann::KDTreeSingleIndexAdaptor::leaf_max_size_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00589">589</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a65dd6389fd3369f779ab913b0321042a"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::pool" ref="a65dd6389fd3369f779ab913b0321042a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classnanoflann_1_1_pooled_allocator.html">PooledAllocator</a> <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a65dd6389fd3369f779ab913b0321042a">nanoflann::KDTreeSingleIndexAdaptor::pool</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Pooled memory allocator. </p>
<p>Using a pooled memory allocator is more efficient than allocating memory directly when there is a large number small of memory allocations. </p>

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00677">677</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a137f3db080f1f4b891049b46ac6eac15"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::root_bbox" ref="a137f3db080f1f4b891049b46ac6eac15" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a69a9111665626fbebca0231426eb76cf">BoundingBox</a> <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a137f3db080f1f4b891049b46ac6eac15">nanoflann::KDTreeSingleIndexAdaptor::root_bbox</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00668">668</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a70dc661a5321eeee84615e61dee72d38"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::root_node" ref="a70dc661a5321eeee84615e61dee72d38" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a3bf8e168a72b079f50d104b2e526e3bc">NodePtr</a> <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a70dc661a5321eeee84615e61dee72d38">nanoflann::KDTreeSingleIndexAdaptor::root_node</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Array of k-d trees used to find neighbours. </p>

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00664">664</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="a6694660fb4fcf93ef2351e2c31b35473"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::size_" ref="a6694660fb4fcf93ef2351e2c31b35473" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6694660fb4fcf93ef2351e2c31b35473">nanoflann::KDTreeSingleIndexAdaptor::size_</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00599">599</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
<a class="anchor" id="ade22cc465a0105733f5d5a2805e7735c"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::vind" ref="ade22cc465a0105733f5d5a2805e7735c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt;int&gt; <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ade22cc465a0105733f5d5a2805e7735c">nanoflann::KDTreeSingleIndexAdaptor::vind</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Array of indices to vectors in the dataset. </p>

<p>Definition at line <a class="el" href="nanoflann_8hpp_source.html#l00587">587</a> of file <a class="el" href="nanoflann_8hpp_source.html">nanoflann.hpp</a>.</p>

</div>
</div>
</div>
<br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.7.5</a> for MRPT 0.9.5 SVN: at Sun Sep 25 17:20:18 UTC 2011</td><td></td> <td width="100"> </td> <td width="150">  </td></tr> </table>  </body></html>