#include <nanoflann.hpp>
Classes | |
struct | Interval |
struct | Node |
Public Types | |
typedef array_or_vector_selector< DIM, Interval >::container_t | BoundingBox |
typedef array_or_vector_selector< DIM, DistanceType >::container_t | distance_vector_t |
typedef Distance::DistanceType | DistanceType |
typedef Distance::ElementType | ElementType |
typedef Node * | NodePtr |
Public Member Functions | |
DistanceType | computeInitialDistances (const Derived &obj, const ElementType *vec, distance_vector_t &dists) const |
void | computeMinMax (const Derived &obj, IndexType *ind, IndexType count, int element, ElementType &min_elem, ElementType &max_elem) |
ElementType | dataset_get (const Derived &obj, size_t idx, int component) const |
Helper accessor to the dataset points: More... | |
NodePtr | divideTree (Derived &obj, const IndexType left, const IndexType right, BoundingBox &bbox) |
void | freeIndex (Derived &obj) |
void | load_tree (Derived &obj, FILE *stream, NodePtr &tree) |
void | loadIndex_ (Derived &obj, FILE *stream) |
void | middleSplit_ (Derived &obj, IndexType *ind, IndexType count, IndexType &index, int &cutfeat, DistanceType &cutval, const BoundingBox &bbox) |
void | planeSplit (Derived &obj, IndexType *ind, const IndexType count, int cutfeat, DistanceType &cutval, IndexType &lim1, IndexType &lim2) |
void | save_tree (Derived &obj, FILE *stream, NodePtr tree) |
void | saveIndex_ (Derived &obj, FILE *stream) |
size_t | size (const Derived &obj) const |
size_t | usedMemory (Derived &obj) |
size_t | veclen (const Derived &obj) |
Public Attributes | |
int | dim |
Dimensionality of each data point. More... | |
size_t | m_leaf_max_size |
size_t | m_size |
Number of current points in the dataset. More... | |
size_t | m_size_at_index_build |
PooledAllocator | pool |
BoundingBox | root_bbox |
NodePtr | root_node |
std::vector< IndexType > | vind |
kd-tree base-class
Contains the member functions common to the classes KDTreeSingleIndexAdaptor and KDTreeSingleIndexDynamicAdaptor_.
Derived | The name of the class which inherits this class. |
DatasetAdaptor | The user-provided adaptor (see comments above). |
Distance | The distance metric to use, these are all classes derived from nanoflann::Metric |
DIM | Dimensionality of data points (e.g. 3 for 3D points) |
IndexType | Will be typically size_t or int |
Definition at line 739 of file nanoflann.hpp.
typedef array_or_vector_selector<DIM, Interval>::container_t nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::BoundingBox |
Define "BoundingBox" as a fixed-size or variable-size container depending on "DIM"
Definition at line 792 of file nanoflann.hpp.
typedef array_or_vector_selector<DIM, DistanceType>::container_t nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::distance_vector_t |
Define "distance_vector_t" as a fixed-size or variable-size container depending on "DIM"
Definition at line 797 of file nanoflann.hpp.
typedef Distance::DistanceType nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::DistanceType |
Definition at line 751 of file nanoflann.hpp.
typedef Distance::ElementType nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::ElementType |
Definition at line 750 of file nanoflann.hpp.
typedef Node* nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::NodePtr |
Definition at line 769 of file nanoflann.hpp.
|
inline |
Definition at line 1005 of file nanoflann.hpp.
|
inline |
Definition at line 836 of file nanoflann.hpp.
|
inline |
Helper accessor to the dataset points:
Definition at line 821 of file nanoflann.hpp.
|
inline |
Create a tree node that subdivides the list of vecs from vind[first] to vind[last]. The routine is called recursively on each sublist.
left | index of the first vector |
right | index of the last vector |
Definition at line 857 of file nanoflann.hpp.
|
inline |
Frees the previously-built index. Automatically called within buildIndex().
Definition at line 744 of file nanoflann.hpp.
|
inline |
Definition at line 1034 of file nanoflann.hpp.
|
inline |
Loads a previous index from a binary file. IMPORTANT NOTE: The set of data points is NOT stored in the file, so the index object must be constructed associated to the same source of data points used while building the index. See the example: examples/saveload_example.cpp
Definition at line 1064 of file nanoflann.hpp.
|
inline |
Definition at line 909 of file nanoflann.hpp.
|
inline |
Subdivide the list of points by a plane perpendicular on axe corresponding to the 'cutfeat' dimension at 'cutval' position.
On return: dataset[ind[0..lim1-1]][cutfeat]<cutval dataset[ind[lim1..lim2-1]][cutfeat]==cutval dataset[ind[lim2..count]][cutfeat]>cutval
Definition at line 967 of file nanoflann.hpp.
|
inline |
Definition at line 1024 of file nanoflann.hpp.
|
inline |
Stores the index in a binary file. IMPORTANT NOTE: The set of data points is NOT stored in the file, so when loading the index object it must be constructed associated to the same source of data points used while building it. See the example: examples/saveload_example.cpp
Definition at line 1050 of file nanoflann.hpp.
|
inline |
Returns number of points in dataset
Definition at line 813 of file nanoflann.hpp.
|
inline |
Computes the inde memory usage Returns: memory used by the index
Definition at line 830 of file nanoflann.hpp.
|
inline |
Returns the length of each point in the dataset
Definition at line 816 of file nanoflann.hpp.
int nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::dim |
Dimensionality of each data point.
Definition at line 787 of file nanoflann.hpp.
size_t nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::m_leaf_max_size |
Definition at line 782 of file nanoflann.hpp.
size_t nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::m_size |
Number of current points in the dataset.
Definition at line 784 of file nanoflann.hpp.
size_t nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::m_size_at_index_build |
Number of points in the dataset when the index was built
Definition at line 785 of file nanoflann.hpp.
PooledAllocator nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::pool |
Pooled memory allocator.
Using a pooled memory allocator is more efficient than allocating memory directly when there is a large number small of memory allocations.
Definition at line 810 of file nanoflann.hpp.
BoundingBox nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::root_bbox |
The KD-tree used to find neighbours
Definition at line 801 of file nanoflann.hpp.
NodePtr nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::root_node |
Definition at line 780 of file nanoflann.hpp.
std::vector<IndexType> nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::vind |
Array of indices to vectors in the dataset.
Definition at line 778 of file nanoflann.hpp.