39 #ifndef PCL_KDTREE_KDTREE_H_
40 #define PCL_KDTREE_KDTREE_H_
43 #include <pcl/pcl_macros.h>
44 #include <pcl/point_cloud.h>
45 #include <pcl/point_representation.h>
46 #include <pcl/common/io.h>
54 template <
typename Po
intT>
58 typedef boost::shared_ptr <std::vector<int> >
IndicesPtr;
70 typedef boost::shared_ptr<KdTree<PointT> >
Ptr;
71 typedef boost::shared_ptr<const KdTree<PointT> >
ConstPtr;
101 inline PointCloudConstPtr
138 std::vector<int> &k_indices, std::vector<float> &k_sqr_distances)
const = 0;
158 std::vector<int> &k_indices, std::vector<float> &k_sqr_distances)
const
160 assert (index >= 0 && index < static_cast<int> (cloud.
points.size ()) &&
"Out-of-bounds error in nearestKSearch!");
173 template <
typename Po
intTDiff>
inline int
175 std::vector<int> &k_indices, std::vector<float> &k_sqr_distances)
const
205 std::vector<int> &k_indices, std::vector<float> &k_sqr_distances)
const
209 assert (index >= 0 && index < static_cast<int> (
input_->points.size ()) &&
"Out-of-bounds error in nearestKSearch!");
214 assert (index >= 0 && index < static_cast<int> (
indices_->size ()) &&
"Out-of-bounds error in nearestKSearch!");
231 std::vector<float> &k_sqr_distances,
unsigned int max_nn = 0)
const = 0;
252 std::vector<int> &k_indices, std::vector<float> &k_sqr_distances,
253 unsigned int max_nn = 0)
const
255 assert (index >= 0 && index < static_cast<int> (cloud.
points.size ()) &&
"Out-of-bounds error in radiusSearch!");
256 return (
radiusSearch(cloud.
points[index], radius, k_indices, k_sqr_distances, max_nn));
269 template <
typename Po
intTDiff>
inline int
270 radiusSearchT (
const PointTDiff &point,
double radius, std::vector<int> &k_indices,
271 std::vector<float> &k_sqr_distances,
unsigned int max_nn = 0)
const
279 return (
radiusSearch (p, radius, k_indices, k_sqr_distances, max_nn));
303 std::vector<float> &k_sqr_distances,
unsigned int max_nn = 0)
const
307 assert (index >= 0 && index < static_cast<int> (
input_->points.size ()) &&
"Out-of-bounds error in radiusSearch!");
308 return (
radiusSearch (
input_->points[index], radius, k_indices, k_sqr_distances, max_nn));
312 assert (index >= 0 && index < static_cast<int> (
indices_->size ()) &&
"Out-of-bounds error in radiusSearch!");
374 #endif //#ifndef _PCL_KDTREE_KDTREE_H_