8#include <gtsam_points/ann/nearest_neighbor_search.hpp>
13template <
class T,
class DataSource,
typename _DistanceType>
14class L2_Simple_Adaptor;
16template <
typename Distance,
class DatasetAdaptor,
int DIM,
typename IndexType>
17class KDTreeSingleIndexAdaptor;
21namespace gtsam_points {
34 KdTreeX(
const Eigen::Matrix<double, D, 1>* points,
int num_points);
37 int dim()
const {
return D != -1 ? D : points[0].size(); }
38 inline size_t kdtree_get_point_count()
const {
return num_points; }
39 inline double kdtree_get_pt(
const size_t idx,
const size_t dim)
const {
return points[idx][dim]; }
42 bool kdtree_get_bbox(BBox&)
const {
51 double max_sq_dist = std::numeric_limits<double>::max())
const override;
56 std::vector<size_t>& indices,
57 std::vector<double>& sq_dists,
58 int max_num_neighbors = std::numeric_limits<int>::max())
const override;
62 const Eigen::Matrix<double, D, 1>* points;
65 std::unique_ptr<Index> index;
Definition intensity_kdtree.hpp:17
KdTree with arbitrary dimension.
Definition kdtreex.hpp:27
virtual size_t radius_search(const double *pt, double radius, std::vector< size_t > &indices, std::vector< double > &sq_dists, int max_num_neighbors=std::numeric_limits< int >::max()) const override
Radius search.
Definition kdtreex_impl.hpp:37
virtual size_t knn_search(const double *pt, size_t k, size_t *k_indices, double *k_sq_dists, double max_sq_dist=std::numeric_limits< double >::max()) const override
k-nearest neighbor search
Definition kdtreex_impl.hpp:23
Nearest neighbor search interface.
Definition nearest_neighbor_search.hpp:16