Point Cloud Library (PCL)
1.13.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... | |
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 313 of file kdtree.h.
References pcl::KdTree< PointT >::epsilon_.
|
inline |
Get a pointer to the vector of indices used.
Definition at line 93 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 100 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 329 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 118 of file kdtree.h.
References pcl::KdTree< PointT >::point_representation_.
|
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 155 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 198 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 172 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 243 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 290 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 262 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 306 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 85 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 322 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 109 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 342 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 339 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 336 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 345 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 351 of file kdtree.h.
Referenced by pcl::KdTree< PointT >::getPointRepresentation(), and pcl::KdTree< PointT >::setPointRepresentation().
|
protected |