<!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> > <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 Page</span></a></li> <li><a href="pages.html"><span>Related 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 List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class 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> | <a href="#pub-methods">Public Member Functions</a> | <a href="#pub-attribs">Public Attributes</a> | <a href="#pri-types">Private Types</a> | <a href="#pri-methods">Private Member Functions</a> | <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 "p1[0:size-1]" and the data point with index "idx_p2" 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'th component of the idx'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 "bb" 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> <<span class="keyword">class</span> BBOX> <span class="keywordtype">bool</span> kdtree_get_bbox(BBOX &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 <<a class="el" href="nanoflann_8hpp_source.html">mrpt/otherlibs/nanoflann/nanoflann.hpp</a>></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  </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"> </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  </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  </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"> </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 &inputData, const <a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_params.html">KDTreeSingleIndexAdaptorParams</a> &params=<a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_params.html">KDTreeSingleIndexAdaptorParams</a>())</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">KDTree constructor. <a href="#a4848332eaa0f21e6cdfeb419effea381"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </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"> </td><td class="mdescRight">Standard destructor. <a href="#a006f508a2709ad21db133f53b568c95c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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"> </td><td class="mdescRight">Builds the index. <a href="#aca790689af0e1cacb97c1702bca7e801"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">size_t </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"> </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 </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"> </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 </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"> </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<typename RESULTSET > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a993c2f92163508dee0b2ea7240758788">findNeighbors</a> (RESULTSET &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> &searchParams) const </td></tr> <tr><td class="mdescLeft"> </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 </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"> </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 </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>< std::pair< int, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> > > &IndicesDists, const <a class="el" href="structnanoflann_1_1_search_params.html">SearchParams</a> &searchParams) const </td></tr> <tr><td class="mdescLeft"> </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 </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 </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 </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> * </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>< <a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_1_1_interval.html">Interval</a> > </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>< <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> > </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> * </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> </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"> </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 </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 </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> &tree)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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> &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> </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> &bbox)</td></tr> <tr><td class="mdescLeft"> </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 </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> &min_elem, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#ad1cbf9b9b733b4cb2a0c94e2263ae6ac">ElementType</a> &max_elem)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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 &index, int &cutfeat, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> &cutval, const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a69a9111665626fbebca0231426eb76cf">BoundingBox</a> &bbox)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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 &index, int &cutfeat, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> &cutval, const <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a69a9111665626fbebca0231426eb76cf">BoundingBox</a> &bbox)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </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 &lim1, int &lim2)</td></tr> <tr><td class="mdescLeft"> </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> </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>< <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> > &dists) const </td></tr> <tr><td class="memTemplParams" colspan="2">template<class RESULTSET > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dff098b8369ada2018523d8e2caf7e6">searchLevel</a> (RESULTSET &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>< <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> > &dists, const float epsError, int &count_leaf) const </td></tr> <tr><td class="mdescLeft"> </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 </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 </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>< int > </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"> </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 </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 & </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"> </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> </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 </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 </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> </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"> </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> </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> </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"> </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><<a class="el" href="structnanoflann_1_1_k_d_tree_single_index_adaptor_1_1_interval.html">Interval</a>> <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><<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>> <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 & Destructor Documentation</h2> <a class="anchor" id="a4848332eaa0f21e6cdfeb419effea381"></a><!-- doxytag: member="nanoflann::KDTreeSingleIndexAdaptor::KDTreeSingleIndexAdaptor" ref="a4848332eaa0f21e6cdfeb419effea381" args="(const int dimensionality, const DatasetAdaptor &inputData, const KDTreeSingleIndexAdaptorParams &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 </td> <td class="paramname"><em>dimensionality</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const DatasetAdaptor & </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> & </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> </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 &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> & </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< DistanceType > &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> * </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>< <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> > & </td> <td class="paramname"><em>dists</em> </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 &min_elem, ElementType &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 * </td> <td class="paramname"><em>ind</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>count</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </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> & </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> & </td> <td class="paramname"><em>max_elem</em> </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 </td> <td class="paramname"><em>idx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>component</em> </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 &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 </td> <td class="paramname"><em>left</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </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> & </td> <td class="paramname"><em>bbox</em> </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 &result, const ElementType *vec, const SearchParams &searchParams) const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename RESULTSET > </div> <table class="memname"> <tr> <td class="memname">void nanoflann::KDTreeSingleIndexAdaptor::findNeighbors </td> <td>(</td> <td class="paramtype">RESULTSET & </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> * </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> & </td> <td class="paramname"><em>searchParams</em> </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<DistanceType> </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 "num_closest" 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> * </td> <td class="paramname"><em>query_point</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>num_closest</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int * </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> * </td> <td class="paramname"><em>out_distances_sq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const int </td> <td class="paramname"><em>nChecks</em> = <code>10</code> </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 &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 * </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> & </td> <td class="paramname"><em>tree</em> </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 * </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 &index, int &cutfeat, DistanceType &cutval, const BoundingBox &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 * </td> <td class="paramname"><em>ind</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>count</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int & </td> <td class="paramname"><em>index</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int & </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> & </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> & </td> <td class="paramname"><em>bbox</em> </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 &index, int &cutfeat, DistanceType &cutval, const BoundingBox &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 * </td> <td class="paramname"><em>ind</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>count</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int & </td> <td class="paramname"><em>index</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int & </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> & </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> & </td> <td class="paramname"><em>bbox</em> </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 &lim1, int &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 * </td> <td class="paramname"><em>ind</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>count</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </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> </td> <td class="paramname"><em>cutval</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int & </td> <td class="paramname"><em>lim1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int & </td> <td class="paramname"><em>lim2</em> </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]<cutval dataset[ind[lim1..lim2-1]][cutfeat]==cutval dataset[ind[lim2..count]][cutfeat]>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< std::pair< int, DistanceType > > &IndicesDists, const SearchParams &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> * </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> </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>< std::pair< int, <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> > > & </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> & </td> <td class="paramname"><em>searchParams</em> </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 "num_closest" 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 * </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> </td> <td class="paramname"><em>tree</em> </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 * </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 &result_set, const ElementType *vec, const NodePtr node, DistanceType mindistsq, std::vector< DistanceType > &dists, const float epsError, int &count_leaf) const " --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class RESULTSET > </div> <table class="memname"> <tr> <td class="memname">void nanoflann::KDTreeSingleIndexAdaptor::searchLevel </td> <td>(</td> <td class="paramtype">RESULTSET & </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> * </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> </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> </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>< <a class="el" href="classnanoflann_1_1_k_d_tree_single_index_adaptor.html#a6dc5d921d34570f8f190d4cd1755ae88">DistanceType</a> > & </td> <td class="paramname"><em>dists</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const float </td> <td class="paramname"><em>epsError</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int & </td> <td class="paramname"><em>count_leaf</em> </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<DistanceType> </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& <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><int> <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>