Easy3D 2.5.3
KdTreeSearch_FLANN Class Reference

KdTree implementation based on FLANN. More...

#include <easy3d/kdtree/kdtree_search_flann.h>

Inheritance diagram for KdTreeSearch_FLANN:
KdTreeSearch

Public Member Functions

 KdTreeSearch_FLANN (const PointCloud *cloud)
 Constructor. More...
 
 KdTreeSearch_FLANN (const std::vector< vec3 > &points)
 Constructor. More...
 
void set_checks (int chk)
 Specifies the maximum number of leaves to visit when searching for neighbors. More...
 
Closest point query
int find_closest_point (const vec3 &p, float &squared_distance) const override
 Queries the closest point for a given point. More...
 
int find_closest_point (const vec3 &p) const override
 Queries the closest point for a given point. More...
 
K nearest neighbors search
void find_closest_k_points (const vec3 &p, int k, std::vector< int > &neighbors, std::vector< float > &squared_distances) const override
 Queries the K nearest neighbors for a given point. More...
 
void find_closest_k_points (const vec3 &p, int k, std::vector< int > &neighbors) const override
 Queries the K nearest neighbors for a given point. More...
 
Fixed radius search
void find_points_in_range (const vec3 &p, float squared_radius, std::vector< int > &neighbors, std::vector< float > &squared_distances) const override
 Queries the nearest neighbors within a fixed range. More...
 
void find_points_in_range (const vec3 &p, float squared_radius, std::vector< int > &neighbors) const override
 Queries the nearest neighbors within a fixed range. More...
 

Detailed Description

KdTree implementation based on FLANN.

See also
KdTreeSearch_ANN, KdTreeSearch_ETH, and KdTreeSearch_NanoFLANN.

Constructor & Destructor Documentation

◆ KdTreeSearch_FLANN() [1/2]

KdTreeSearch_FLANN ( const PointCloud cloud)
explicit

Constructor.

Parameters
cloudThe point cloud for which a KdTree will be constructed.

◆ KdTreeSearch_FLANN() [2/2]

KdTreeSearch_FLANN ( const std::vector< vec3 > &  points)
explicit

Constructor.

Parameters
pointsThe points for which a KdTree will be constructed.

Member Function Documentation

◆ find_closest_k_points() [1/2]

void find_closest_k_points ( const vec3 p,
int  k,
std::vector< int > &  neighbors 
) const
overridevirtual

Queries the K nearest neighbors for a given point.

Parameters
pThe query point.
kThe number of required neighbors.
neighborsThe indices of the neighbors found.

Implements KdTreeSearch.

◆ find_closest_k_points() [2/2]

void find_closest_k_points ( const vec3 p,
int  k,
std::vector< int > &  neighbors,
std::vector< float > &  squared_distances 
) const
overridevirtual

Queries the K nearest neighbors for a given point.

Parameters
pThe query point.
kThe number of required neighbors.
neighborsThe indices of the neighbors found.
squared_distancesThe squared distances between the query point and its K nearest neighbors. The values are stored in accordance with their indices.
Note
The squared distances are returned by the argument squared_distances.

Implements KdTreeSearch.

◆ find_closest_point() [1/2]

int find_closest_point ( const vec3 p) const
overridevirtual

Queries the closest point for a given point.

Parameters
pThe query point.
Returns
The index of the nearest neighbor found.

Implements KdTreeSearch.

◆ find_closest_point() [2/2]

int find_closest_point ( const vec3 p,
float &  squared_distance 
) const
overridevirtual

Queries the closest point for a given point.

Parameters
pThe query point.
squared_distanceThe squared distance between the query point and its closest neighbor.
Note
A squared distance is returned by the second argument squared_distance.
Returns
The index of the nearest neighbor found.

Implements KdTreeSearch.

◆ find_points_in_range() [1/2]

void find_points_in_range ( const vec3 p,
float  squared_radius,
std::vector< int > &  neighbors 
) const
overridevirtual

Queries the nearest neighbors within a fixed range.

Parameters
pThe query point.
squared_radiusThe search range (which is required to be squared).
neighborsThe indices of the neighbors found.

Implements KdTreeSearch.

◆ find_points_in_range() [2/2]

void find_points_in_range ( const vec3 p,
float  squared_radius,
std::vector< int > &  neighbors,
std::vector< float > &  squared_distances 
) const
overridevirtual

Queries the nearest neighbors within a fixed range.

Parameters
pThe query point.
squared_radiusThe search range (which is required to be squared).
neighborsThe indices of the neighbors found.
squared_distancesThe squared distances between the query point and the neighbors found. The values are stored in accordance with their indices.
Note
The squared distances are returned by the argument squared_distances.

Implements KdTreeSearch.

◆ set_checks()

void set_checks ( int  chk)

Specifies the maximum number of leaves to visit when searching for neighbors.

Parameters
chkThe maximum number of leaves to visit. A higher value for this parameter would give better search precision, but also take more time. For all leaves to be checked use the value FLANN_CHECKS_UNLIMITED. If automatic configuration was used when the index was created, the number of checks required to achieve the specified precision was also computed, to use that value specify FLANN_CHECKS_AUTOTUNED. The default value is FLANN_CHECKS_AUTOTUNED. (Liangliang: 32 is also a good value).

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