nanoflann
C++ header-only ANN library
Loading...
Searching...
No Matches
nanoflann::KDTreeEigenMatrixAdaptor< MatrixType, DIM, Distance, row_major > Struct Template Reference

#include <nanoflann.hpp>

Public Types

using self_t = KDTreeEigenMatrixAdaptor<MatrixType, DIM, Distance, row_major>
using num_t = typename MatrixType::Scalar
using IndexType = typename MatrixType::Index
using metric_t = typename Distance::template traits<num_t, self_t, IndexType>::distance_t
using index_t
using Offset = typename index_t::Offset
 The kd-tree index for the user to call its methods as usual with any other FLANN index.
using Size = typename index_t::Size
using Dimension = typename index_t::Dimension

Public Member Functions

 KDTreeEigenMatrixAdaptor (const Dimension dimensionality, const std::reference_wrapper< const MatrixType > &mat, const int leaf_max_size=10, const unsigned int n_thread_build=1)
 Constructor: takes a const ref to the matrix object with the data points.
 KDTreeEigenMatrixAdaptor (const self_t &)=delete
void query (const num_t *query_point, const Size num_closest, IndexType *out_indices, num_t *out_distances) const
Interface expected by KDTreeSingleIndexAdaptor
const self_t & derived () const noexcept
self_t & derived () noexcept
Size kdtree_get_point_count () const
num_t kdtree_get_pt (const IndexType idx, size_t dim) const
template<class BBOX>
bool kdtree_get_bbox (BBOX &) const

Public Attributes

index_t * index_
const std::reference_wrapper< const MatrixType > m_data_matrix

Detailed Description

template<class MatrixType, int32_t DIM = -1, class Distance = nanoflann::metric_L2, bool row_major = true>
struct nanoflann::KDTreeEigenMatrixAdaptor< MatrixType, DIM, Distance, row_major >

An L2-metric KD-tree adaptor for working with data directly stored in an Eigen Matrix, without duplicating the data storage. You can select whether a row or column in the matrix represents a point in the state space.

Example of usage:

Eigen::Matrix<num_t,Eigen::Dynamic,Eigen::Dynamic> mat;
// Fill out "mat"...
Eigen::Matrix<num_t,Dynamic,Dynamic>>;
const int max_leaf = 10;
my_kd_tree_t mat_index(mat, max_leaf);
mat_index.index->...
Definition nanoflann.hpp:2707
Template Parameters
DIMIf set to >0, it specifies a compile-time fixed dimensionality for the points in the data set, allowing more compiler optimizations.
DistanceThe distance metric to use: nanoflann::metric_L1, nanoflann::metric_L2, nanoflann::metric_L2_Simple, etc.
row_majorIf set to true the rows of the matrix are used as the points, if set to false the columns of the matrix are used as the points.

Member Typedef Documentation

◆ index_t

template<class MatrixType, int32_t DIM = -1, class Distance = nanoflann::metric_L2, bool row_major = true>
using nanoflann::KDTreeEigenMatrixAdaptor< MatrixType, DIM, Distance, row_major >::index_t
Initial value:
metric_t, self_t, row_major ? MatrixType::ColsAtCompileTime : MatrixType::RowsAtCompileTime,
IndexType>
Definition nanoflann.hpp:1609

Constructor & Destructor Documentation

◆ KDTreeEigenMatrixAdaptor()

template<class MatrixType, int32_t DIM = -1, class Distance = nanoflann::metric_L2, bool row_major = true>
nanoflann::KDTreeEigenMatrixAdaptor< MatrixType, DIM, Distance, row_major >::KDTreeEigenMatrixAdaptor ( const self_t & )
delete

Deleted copy constructor

Member Function Documentation

◆ query()

template<class MatrixType, int32_t DIM = -1, class Distance = nanoflann::metric_L2, bool row_major = true>
void nanoflann::KDTreeEigenMatrixAdaptor< MatrixType, DIM, Distance, row_major >::query ( const num_t * query_point,
const Size num_closest,
IndexType * out_indices,
num_t * out_distances ) const
inline

Query for the num_closest closest points to a given point (entered as query_point[0:dim-1]). Note that this is a short-cut method for index->findNeighbors(). The user can also call index->... methods as desired.

Note
If L2 norms are used, all returned distances are actually squared distances.

The documentation for this struct was generated from the following file: