#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 740 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 793 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 798 of file nanoflann.hpp.
typedef Distance::DistanceType nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::DistanceType |
Definition at line 752 of file nanoflann.hpp.
typedef Distance::ElementType nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::ElementType |
Definition at line 751 of file nanoflann.hpp.
typedef Node* nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::NodePtr |
Definition at line 770 of file nanoflann.hpp.
|
inline |
Definition at line 1006 of file nanoflann.hpp.
|
inline |
Definition at line 837 of file nanoflann.hpp.
|
inline |
Helper accessor to the dataset points:
Definition at line 822 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 858 of file nanoflann.hpp.
|
inline |
Frees the previously-built index. Automatically called within buildIndex().
Definition at line 745 of file nanoflann.hpp.
|
inline |
Definition at line 1035 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 1065 of file nanoflann.hpp.
|
inline |
Definition at line 910 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 968 of file nanoflann.hpp.
|
inline |
Definition at line 1025 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 1051 of file nanoflann.hpp.
|
inline |
Returns number of points in dataset
Definition at line 814 of file nanoflann.hpp.
|
inline |
Computes the inde memory usage Returns: memory used by the index
Definition at line 831 of file nanoflann.hpp.
|
inline |
Returns the length of each point in the dataset
Definition at line 817 of file nanoflann.hpp.
int nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::dim |
Dimensionality of each data point.
Definition at line 788 of file nanoflann.hpp.
size_t nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::m_leaf_max_size |
Definition at line 783 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 785 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 786 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 811 of file nanoflann.hpp.
BoundingBox nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::root_bbox |
The KD-tree used to find neighbours
Definition at line 802 of file nanoflann.hpp.
NodePtr nanoflann::KDTreeBaseClass< Derived, Distance, DatasetAdaptor, DIM, IndexType >::root_node |
Definition at line 781 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 779 of file nanoflann.hpp.