gtsam_points
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
gtsam_points::KdTreeX< D > Struct Template Reference

KdTree with arbitrary dimension. More...

#include <kdtreex.hpp>

Inheritance diagram for gtsam_points::KdTreeX< D >:
Inheritance graph
[legend]
Collaboration diagram for gtsam_points::KdTreeX< D >:
Collaboration graph
[legend]

Public Types

using Index = nanoflann::KDTreeSingleIndexAdaptor< nanoflann::L2_Simple_Adaptor< double, KdTreeX< D >, double >, KdTreeX< D >, D, size_t >
 
- Public Types inherited from gtsam_points::NearestNeighborSearch
using Ptr = std::shared_ptr< NearestNeighborSearch >
 
using ConstPtr = std::shared_ptr< const NearestNeighborSearch >
 

Public Member Functions

 KdTreeX (const Eigen::Matrix< double, D, 1 > *points, int num_points)
 Constructor.
 
int dim () const
 
size_t kdtree_get_point_count () const
 
double kdtree_get_pt (const size_t idx, const size_t dim) const
 
template<class BBox >
bool kdtree_get_bbox (BBox &) const
 
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
 
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.
 

Public Attributes

const int num_points
 
const Eigen::Matrix< double, D, 1 > * points
 
double search_eps
 
std::unique_ptr< Indexindex
 

Detailed Description

template<int D = -1>
struct gtsam_points::KdTreeX< D >

KdTree with arbitrary dimension.

Member Function Documentation

◆ knn_search()

template<int D>
size_t gtsam_points::KdTreeX< D >::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
overridevirtual

k-nearest neighbor search

Parameters
ptPoint
kNumber of neighbors
k_indicesIndices of k-nearest neighbors
k_sq_distsSquared distances to the neighbors (sorted in ascending order)

Reimplemented from gtsam_points::NearestNeighborSearch.

◆ radius_search()

template<int D>
size_t gtsam_points::KdTreeX< D >::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
overridevirtual

Radius search.

Note
There is no assumption and guarantee on the order of points to be selected when max_num_neighbors is specified. (Some algorithms like KdTree tend to first pick closer points though).
Parameters
ptPoint
radiusSearch radius
indicesIndices of neighbors within the radius
sq_distsSquared distances to the neighbors (sorted in ascending order)
max_num_neighborsMaximum number of neighbors
Returns
Number of neighbors

Reimplemented from gtsam_points::NearestNeighborSearch.


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