43#include <pcl/point_cloud.h>
44#include <pcl/point_representation.h>
45#include <pcl/common/copy_point.h>
53 template <
typename Po
intT>
68 using Ptr = shared_ptr<KdTree<PointT> >;
69 using ConstPtr = shared_ptr<const KdTree<PointT> >;
99 inline PointCloudConstPtr
136 Indices &k_indices, std::vector<float> &k_sqr_distances)
const = 0;
156 Indices &k_indices, std::vector<float> &k_sqr_distances)
const
158 assert (index >= 0 && index <
static_cast<int> (cloud.
size ()) &&
"Out-of-bounds error in nearestKSearch!");
159 return (
nearestKSearch (cloud[index], k, k_indices, k_sqr_distances));
171 template <
typename Po
intTDiff>
inline int
173 Indices &k_indices, std::vector<float> &k_sqr_distances)
const
199 Indices &k_indices, std::vector<float> &k_sqr_distances)
const
203 assert (index >= 0 && index <
static_cast<int> (
input_->size ()) &&
"Out-of-bounds error in nearestKSearch!");
206 assert (index >= 0 && index <
static_cast<int> (
indices_->size ()) &&
"Out-of-bounds error in nearestKSearch!");
223 std::vector<float> &k_sqr_distances,
unsigned int max_nn = 0)
const = 0;
244 Indices &k_indices, std::vector<float> &k_sqr_distances,
245 unsigned int max_nn = 0)
const
247 assert (index >= 0 && index <
static_cast<int> (cloud.
size ()) &&
"Out-of-bounds error in radiusSearch!");
248 return (
radiusSearch(cloud[index], radius, k_indices, k_sqr_distances, max_nn));
261 template <
typename Po
intTDiff>
inline int
263 std::vector<float> &k_sqr_distances,
unsigned int max_nn = 0)
const
267 return (
radiusSearch (p, radius, k_indices, k_sqr_distances, max_nn));
291 std::vector<float> &k_sqr_distances,
unsigned int max_nn = 0)
const
295 assert (index >= 0 && index <
static_cast<int> (
input_->size ()) &&
"Out-of-bounds error in radiusSearch!");
298 assert (index >= 0 && index <
static_cast<int> (
indices_->size ()) &&
"Out-of-bounds error in radiusSearch!");
DefaultPointRepresentation extends PointRepresentation to define default behavior for common point ty...
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).
shared_ptr< const Indices > IndicesConstPtr
PointRepresentationConstPtr point_representation_
PointCloudConstPtr getInputCloud() const
Get a pointer to the input point cloud dataset.
KdTree(bool sorted=true)
Empty constructor for KdTree.
typename PointRepresentation::ConstPtr PointRepresentationConstPtr
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).
IndicesConstPtr getIndices() const
Get a pointer to the vector of indices used.
typename PointCloud::ConstPtr PointCloudConstPtr
typename PointCloud::Ptr PointCloudPtr
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.
PointCloudConstPtr input_
float getEpsilon() const
Get the search epsilon precision (error bound) for nearest neighbors searches.
virtual void setEpsilon(float eps)
Set the search epsilon precision (error bound) for nearest neighbors searches.
pcl::PointRepresentation< PointT > PointRepresentation
shared_ptr< Indices > IndicesPtr
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.
void setPointRepresentation(const PointRepresentationConstPtr &point_representation)
Provide a pointer to the point representation to use to convert points into k-D vectors.
void setMinPts(int min_pts)
Minimum allowed number of k nearest neighbors points that a viable result must contain.
virtual void setInputCloud(const PointCloudConstPtr &cloud, const IndicesConstPtr &indices=IndicesConstPtr())
Provide a pointer to the input dataset.
int getMinPts() const
Get the minimum allowed number of k nearest neighbors points that a viable result must contain.
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.
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.
shared_ptr< KdTree< PointT > > Ptr
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.
virtual ~KdTree()
Destructor for KdTree.
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.
shared_ptr< const KdTree< PointT > > ConstPtr
virtual std::string getName() const =0
Class getName method.
PointRepresentationConstPtr getPointRepresentation() const
Get a pointer to the point representation used when converting points into k-D vectors.
pcl::PointCloud< PointT > PointCloud
PointCloud represents the base class in PCL for storing collections of 3D points.
shared_ptr< PointCloud< PointT > > Ptr
shared_ptr< const PointCloud< PointT > > ConstPtr
PointRepresentation provides a set of methods for converting a point structs/object into an n-dimensi...
shared_ptr< const PointRepresentation< PointT > > ConstPtr
void copyPoint(const PointInT &point_in, PointOutT &point_out)
Copy the fields of a source point into a target point.
Defines functions, macros and traits for allocating and using memory.
IndicesAllocator<> Indices
Type used for indices in PCL.
shared_ptr< const Indices > IndicesConstPtr
Defines all the PCL and non-PCL macros used.