Point Cloud Library (PCL)
1.14.1-dev
|
KdTree represents the base spatial locator class for kd-tree implementations. More...
#include <pcl/kdtree/kdtree.h>
Public Types | |
using | IndicesPtr = shared_ptr< Indices > |
using | IndicesConstPtr = shared_ptr< const Indices > |
using | PointCloud = pcl::PointCloud< PointT > |
using | PointCloudPtr = typename PointCloud::Ptr |
using | PointCloudConstPtr = typename PointCloud::ConstPtr |
using | PointRepresentation = pcl::PointRepresentation< PointT > |
using | PointRepresentationConstPtr = typename PointRepresentation::ConstPtr |
using | Ptr = shared_ptr< KdTree< PointT > > |
using | ConstPtr = shared_ptr< const KdTree< PointT > > |
Public Member Functions | |
KdTree (bool sorted=true) | |
Empty constructor for KdTree. More... | |
virtual void | setInputCloud (const PointCloudConstPtr &cloud, const IndicesConstPtr &indices=IndicesConstPtr()) |
Provide a pointer to the input dataset. More... | |
IndicesConstPtr | getIndices () const |
Get a pointer to the vector of indices used. More... | |
PointCloudConstPtr | getInputCloud () const |
Get a pointer to the input point cloud dataset. More... | |
void | setPointRepresentation (const PointRepresentationConstPtr &point_representation) |
Provide a pointer to the point representation to use to convert points into k-D vectors. More... | |
PointRepresentationConstPtr | getPointRepresentation () const |
Get a pointer to the point representation used when converting points into k-D vectors. More... | |
virtual | ~KdTree ()=default |
Destructor for KdTree. More... | |
virtual int | nearestKSearch (const PointT &p_q, unsigned int k, Indices &k_indices, std::vector< float > &k_sqr_distances) const =0 |
Search for k-nearest neighbors for the given query point. More... | |
virtual int | nearestKSearch (const PointCloud &cloud, int index, unsigned int k, Indices &k_indices, std::vector< float > &k_sqr_distances) const |
Search for k-nearest neighbors for the given query point. More... | |
template<typename PointTDiff > | |
int | nearestKSearchT (const PointTDiff &point, unsigned int k, Indices &k_indices, std::vector< float > &k_sqr_distances) const |
Search for k-nearest neighbors for the given query point. More... | |
virtual int | nearestKSearch (int index, unsigned int k, Indices &k_indices, std::vector< float > &k_sqr_distances) const |
Search for k-nearest neighbors for the given query point (zero-copy). More... | |
virtual int | radiusSearch (const PointT &p_q, double radius, Indices &k_indices, std::vector< float > &k_sqr_distances, unsigned int max_nn=0) const =0 |
Search for all the nearest neighbors of the query point in a given radius. More... | |
virtual int | radiusSearch (const PointCloud &cloud, int index, double radius, Indices &k_indices, std::vector< float > &k_sqr_distances, unsigned int max_nn=0) const |
Search for all the nearest neighbors of the query point in a given radius. More... | |
template<typename PointTDiff > | |
int | radiusSearchT (const PointTDiff &point, double radius, Indices &k_indices, std::vector< float > &k_sqr_distances, unsigned int max_nn=0) const |
Search for all the nearest neighbors of the query point in a given radius. More... | |
virtual int | radiusSearch (int index, double radius, Indices &k_indices, std::vector< float > &k_sqr_distances, unsigned int max_nn=0) const |
Search for all the nearest neighbors of the query point in a given radius (zero-copy). More... | |
virtual void | setEpsilon (float eps) |
Set the search epsilon precision (error bound) for nearest neighbors searches. More... | |
float | getEpsilon () const |
Get the search epsilon precision (error bound) for nearest neighbors searches. More... | |
void | setMinPts (int min_pts) |
Minimum allowed number of k nearest neighbors points that a viable result must contain. More... | |
int | getMinPts () const |
Get the minimum allowed number of k nearest neighbors points that a viable result must contain. More... | |
bool | getSortedResults () const |
Gets whether the results should be sorted (ascending in the distance) or not Otherwise the results may be returned in any order. More... | |
Protected Member Functions | |
virtual std::string | getName () const =0 |
Class getName method. More... | |
Protected Attributes | |
PointCloudConstPtr | input_ |
The input point cloud dataset containing the points we need to use. More... | |
IndicesConstPtr | indices_ |
A pointer to the vector of point indices to use. More... | |
float | epsilon_ {0.0f} |
Epsilon precision (error bound) for nearest neighbors searches. More... | |
int | min_pts_ {1} |
Minimum allowed number of k nearest neighbors points that a viable result must contain. More... | |
bool | sorted_ |
Return the radius search neighbours sorted. More... | |
PointRepresentationConstPtr | point_representation_ |
For converting different point structures into k-dimensional vectors for nearest-neighbor search. More... | |
KdTree represents the base spatial locator class for kd-tree implementations.
using pcl::KdTree< PointT >::ConstPtr = shared_ptr<const KdTree<PointT> > |
using pcl::KdTree< PointT >::IndicesConstPtr = shared_ptr<const Indices > |
using pcl::KdTree< PointT >::IndicesPtr = shared_ptr<Indices > |
using pcl::KdTree< PointT >::PointCloud = pcl::PointCloud<PointT> |
using pcl::KdTree< PointT >::PointCloudConstPtr = typename PointCloud::ConstPtr |
using pcl::KdTree< PointT >::PointCloudPtr = typename PointCloud::Ptr |
using pcl::KdTree< PointT >::PointRepresentation = pcl::PointRepresentation<PointT> |
using pcl::KdTree< PointT >::PointRepresentationConstPtr = typename PointRepresentation::ConstPtr |
using pcl::KdTree< PointT >::Ptr = shared_ptr<KdTree<PointT> > |
|
inline |
|
virtualdefault |
Destructor for KdTree.
Deletes all allocated data arrays and destroys the kd-tree structures.
|
inline |
Get the search epsilon precision (error bound) for nearest neighbors searches.
Definition at line 314 of file kdtree.h.
References pcl::KdTree< PointT >::epsilon_.
|
inline |
Get a pointer to the vector of indices used.
Definition at line 94 of file kdtree.h.
References pcl::KdTree< PointT >::indices_.
Referenced by pcl::extractEuclideanClusters().
|
inline |
Get a pointer to the input point cloud dataset.
Definition at line 101 of file kdtree.h.
References pcl::KdTree< PointT >::input_.
Referenced by pcl::extractEuclideanClusters().
|
inline |
Get the minimum allowed number of k nearest neighbors points that a viable result must contain.
Definition at line 330 of file kdtree.h.
References pcl::KdTree< PointT >::min_pts_.
|
protectedpure virtual |
Class getName method.
|
inline |
Get a pointer to the point representation used when converting points into k-D vectors.
Definition at line 119 of file kdtree.h.
References pcl::KdTree< PointT >::point_representation_.
|
inline |
Gets whether the results should be sorted (ascending in the distance) or not Otherwise the results may be returned in any order.
Definition at line 339 of file kdtree.h.
References pcl::KdTree< PointT >::sorted_.
Referenced by pcl::extractEuclideanClusters().
|
inlinevirtual |
Search for k-nearest neighbors for the given query point.
[in] | cloud | the point cloud data |
[in] | index | a valid index in cloud representing a valid (i.e., finite) query point |
[in] | k | the number of neighbors to search for |
[out] | k_indices | the resultant indices of the neighboring points (must be resized to k a priori!) |
[out] | k_sqr_distances | the resultant squared distances to the neighboring points (must be resized to k a priori!) |
asserts | in debug mode if the index is not between 0 and the maximum number of points |
Definition at line 156 of file kdtree.h.
References pcl::KdTree< PointT >::nearestKSearch(), and pcl::PointCloud< PointT >::size().
|
pure virtual |
Search for k-nearest neighbors for the given query point.
[in] | p_q | the given query point |
[in] | k | the number of neighbors to search for |
[out] | k_indices | the resultant indices of the neighboring points (must be resized to k a priori!) |
[out] | k_sqr_distances | the resultant squared distances to the neighboring points (must be resized to k a priori!) |
Implemented in pcl::KdTreeFLANN< PointTarget >, pcl::KdTreeFLANN< PointT, Dist >, pcl::KdTreeFLANN< pcl::VFHSignature308 >, pcl::KdTreeFLANN< pcl::PointXYZRGB >, pcl::KdTreeFLANN< pcl::PointXYZLAB >, pcl::KdTreeFLANN< pcl::InterestPoint >, and pcl::KdTreeFLANN< FeatureT >.
Referenced by pcl::KdTree< PointT >::nearestKSearch(), and pcl::KdTree< PointT >::nearestKSearchT().
|
inlinevirtual |
Search for k-nearest neighbors for the given query point (zero-copy).
[in] | index | a valid index representing a valid query point in the dataset given by setInputCloud. If indices were given in setInputCloud, index will be the position in the indices vector. |
[in] | k | the number of neighbors to search for |
[out] | k_indices | the resultant indices of the neighboring points (must be resized to k a priori!) |
[out] | k_sqr_distances | the resultant squared distances to the neighboring points (must be resized to k a priori!) |
asserts | in debug mode if the index is not between 0 and the maximum number of points |
Definition at line 199 of file kdtree.h.
References pcl::KdTree< PointT >::indices_, pcl::KdTree< PointT >::input_, and pcl::KdTree< PointT >::nearestKSearch().
|
inline |
Search for k-nearest neighbors for the given query point.
This method accepts a different template parameter for the point type.
[in] | point | the given query point |
[in] | k | the number of neighbors to search for |
[out] | k_indices | the resultant indices of the neighboring points (must be resized to k a priori!) |
[out] | k_sqr_distances | the resultant squared distances to the neighboring points (must be resized to k a priori!) |
Definition at line 173 of file kdtree.h.
References pcl::copyPoint(), and pcl::KdTree< PointT >::nearestKSearch().
Referenced by pcl::getApproximateIndices().
|
inlinevirtual |
Search for all the nearest neighbors of the query point in a given radius.
[in] | cloud | the point cloud data |
[in] | index | a valid index in cloud representing a valid (i.e., finite) query point |
[in] | radius | the radius of the sphere bounding all of p_q's neighbors |
[out] | k_indices | the resultant indices of the neighboring points |
[out] | k_sqr_distances | the resultant squared distances to the neighboring points |
[in] | max_nn | if given, bounds the maximum returned neighbors to this value. If max_nn is set to 0 or to a number higher than the number of points in the input cloud, all neighbors in radius will be returned. |
asserts | in debug mode if the index is not between 0 and the maximum number of points |
Definition at line 244 of file kdtree.h.
References pcl::KdTree< PointT >::radiusSearch(), and pcl::PointCloud< PointT >::size().
|
pure virtual |
Search for all the nearest neighbors of the query point in a given radius.
[in] | p_q | the given query point |
[in] | radius | the radius of the sphere bounding all of p_q's neighbors |
[out] | k_indices | the resultant indices of the neighboring points |
[out] | k_sqr_distances | the resultant squared distances to the neighboring points |
[in] | max_nn | if given, bounds the maximum returned neighbors to this value. If max_nn is set to 0 or to a number higher than the number of points in the input cloud, all neighbors in radius will be returned. |
Implemented in pcl::KdTreeFLANN< PointTarget >, pcl::KdTreeFLANN< PointT, Dist >, pcl::KdTreeFLANN< pcl::VFHSignature308 >, pcl::KdTreeFLANN< pcl::PointXYZRGB >, pcl::KdTreeFLANN< pcl::PointXYZLAB >, pcl::KdTreeFLANN< pcl::InterestPoint >, and pcl::KdTreeFLANN< FeatureT >.
Referenced by pcl::extractEuclideanClusters(), pcl::KdTree< PointT >::radiusSearch(), and pcl::KdTree< PointT >::radiusSearchT().
|
inlinevirtual |
Search for all the nearest neighbors of the query point in a given radius (zero-copy).
[in] | index | a valid index representing a valid query point in the dataset given by setInputCloud. If indices were given in setInputCloud, index will be the position in the indices vector. |
[in] | radius | the radius of the sphere bounding all of p_q's neighbors |
[out] | k_indices | the resultant indices of the neighboring points |
[out] | k_sqr_distances | the resultant squared distances to the neighboring points |
[in] | max_nn | if given, bounds the maximum returned neighbors to this value. If max_nn is set to 0 or to a number higher than the number of points in the input cloud, all neighbors in radius will be returned. |
asserts | in debug mode if the index is not between 0 and the maximum number of points |
Definition at line 291 of file kdtree.h.
References pcl::KdTree< PointT >::indices_, pcl::KdTree< PointT >::input_, and pcl::KdTree< PointT >::radiusSearch().
|
inline |
Search for all the nearest neighbors of the query point in a given radius.
[in] | point | the given query point |
[in] | radius | the radius of the sphere bounding all of p_q's neighbors |
[out] | k_indices | the resultant indices of the neighboring points |
[out] | k_sqr_distances | the resultant squared distances to the neighboring points |
[in] | max_nn | if given, bounds the maximum returned neighbors to this value. If max_nn is set to 0 or to a number higher than the number of points in the input cloud, all neighbors in radius will be returned. |
Definition at line 263 of file kdtree.h.
References pcl::copyPoint(), and pcl::KdTree< PointT >::radiusSearch().
|
inlinevirtual |
Set the search epsilon precision (error bound) for nearest neighbors searches.
[in] | eps | precision (error bound) for nearest neighbors searches |
Reimplemented in pcl::KdTreeFLANN< PointT, Dist >, pcl::KdTreeFLANN< pcl::PointXYZRGB >, pcl::KdTreeFLANN< pcl::VFHSignature308 >, pcl::KdTreeFLANN< PointTarget >, pcl::KdTreeFLANN< pcl::PointXYZLAB >, pcl::KdTreeFLANN< pcl::InterestPoint >, and pcl::KdTreeFLANN< FeatureT >.
Definition at line 307 of file kdtree.h.
References pcl::KdTree< PointT >::epsilon_.
|
inlinevirtual |
Provide a pointer to the input dataset.
[in] | cloud | the const boost shared pointer to a PointCloud message |
[in] | indices | the point indices subset that is to be used from cloud - if NULL the whole cloud is used |
Reimplemented in pcl::KdTreeFLANN< PointT, Dist >, pcl::KdTreeFLANN< pcl::PointXYZRGB >, pcl::KdTreeFLANN< pcl::VFHSignature308 >, pcl::KdTreeFLANN< PointTarget >, pcl::KdTreeFLANN< pcl::PointXYZLAB >, pcl::KdTreeFLANN< pcl::InterestPoint >, and pcl::KdTreeFLANN< FeatureT >.
Definition at line 86 of file kdtree.h.
References pcl::KdTree< PointT >::indices_, and pcl::KdTree< PointT >::input_.
Referenced by pcl::KdTree< PointT >::setPointRepresentation().
|
inline |
Minimum allowed number of k nearest neighbors points that a viable result must contain.
[in] | min_pts | the minimum number of neighbors in a viable neighborhood |
Definition at line 323 of file kdtree.h.
References pcl::KdTree< PointT >::min_pts_.
|
inline |
Provide a pointer to the point representation to use to convert points into k-D vectors.
[in] | point_representation | the const boost shared pointer to a PointRepresentation |
Definition at line 110 of file kdtree.h.
References pcl::KdTree< PointT >::indices_, pcl::KdTree< PointT >::input_, pcl::KdTree< PointT >::point_representation_, and pcl::KdTree< PointT >::setInputCloud().
|
protected |
Epsilon precision (error bound) for nearest neighbors searches.
Definition at line 352 of file kdtree.h.
Referenced by pcl::KdTree< PointT >::getEpsilon(), and pcl::KdTree< PointT >::setEpsilon().
|
protected |
A pointer to the vector of point indices to use.
Definition at line 349 of file kdtree.h.
Referenced by pcl::KdTree< PointT >::getIndices(), pcl::KdTree< PointT >::nearestKSearch(), pcl::KdTree< PointT >::radiusSearch(), pcl::KdTree< PointT >::setInputCloud(), and pcl::KdTree< PointT >::setPointRepresentation().
|
protected |
The input point cloud dataset containing the points we need to use.
Definition at line 346 of file kdtree.h.
Referenced by pcl::KdTree< PointT >::getInputCloud(), pcl::KdTree< PointT >::nearestKSearch(), pcl::KdTree< PointT >::radiusSearch(), pcl::KdTree< PointT >::setInputCloud(), and pcl::KdTree< PointT >::setPointRepresentation().
|
protected |
Minimum allowed number of k nearest neighbors points that a viable result must contain.
Definition at line 355 of file kdtree.h.
Referenced by pcl::KdTree< PointT >::getMinPts(), and pcl::KdTree< PointT >::setMinPts().
|
protected |
For converting different point structures into k-dimensional vectors for nearest-neighbor search.
Definition at line 361 of file kdtree.h.
Referenced by pcl::KdTree< PointT >::getPointRepresentation(), and pcl::KdTree< PointT >::setPointRepresentation().
|
protected |
Return the radius search neighbours sorted.
Definition at line 358 of file kdtree.h.
Referenced by pcl::KdTree< PointT >::getSortedResults().