KdTree implementation based on ANN.
More...
#include <easy3d/kdtree/kdtree_search_ann.h>
|
| KdTreeSearch_ANN (const PointCloud *cloud) |
| Constructor.
|
|
| KdTreeSearch_ANN (const std::vector< vec3 > &points) |
| Constructor.
|
|
|
int | find_closest_point (const vec3 &p, float &squared_distance) const override |
| Queries the closest point for a given point.
|
|
int | find_closest_point (const vec3 &p) const override |
| Queries the closest point for a given point.
|
|
|
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.
|
|
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.
|
|
|
void | set_k_for_radius_search (int k) |
| Specifies the K for fixed range 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.
|
|
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.
|
|
| KdTreeSearch (const PointCloud *cloud) |
| Constructor.
|
|
| KdTreeSearch (const std::vector< vec3 > &points) |
| Constructor.
|
|
◆ KdTreeSearch_ANN() [1/2]
Constructor.
- Parameters
-
cloud | The point cloud for which a KdTree will be constructed. |
◆ KdTreeSearch_ANN() [2/2]
Constructor.
- Parameters
-
points | The points for which a KdTree will be constructed. |
◆ 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
-
p | The query point. |
k | The number of required neighbors. |
neighbors | The 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
-
p | The query point. |
k | The number of required neighbors. |
neighbors | The indices of the neighbors found. |
squared_distances | The 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
-
- 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
-
p | The query point. |
squared_distance | The 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
-
p | The query point. |
squared_radius | The search range (which is required to be squared). |
neighbors | The 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
-
p | The query point. |
squared_radius | The search range (which is required to be squared). |
neighbors | The indices of the neighbors found. |
squared_distances | The 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_k_for_radius_search()
void set_k_for_radius_search |
( |
int | k | ) |
|
|
inline |
Specifies the K for fixed range search.
ANN's annkFRSearch() needs to specify k. ANN's fixed range search is done in two steps. First, it computes the k nearest neighbors within the radius bound. Second, it returns the total number of points lying within the radius bound. It is permitted to set k = 0, in which case it only answers a range counting query.
The documentation for this class was generated from the following files:
- G:/3_code/Easy3D/easy3d/kdtree/kdtree_search_ann.h
- G:/3_code/Easy3D/easy3d/kdtree/kdtree_search_ann.cpp