39 #ifndef PCL_SEARCH_OCTREE_H
40 #define PCL_SEARCH_OCTREE_H
65 template<
typename Po
intT,
typename LeafTWrap = pcl::octree::OctreeContainerDataTVector<
int>,
typename BranchTWrap = pcl::octree::OctreeContainerEmpty<
int>,
66 typename OctreeT = pcl::octree::OctreeBase<
int, LeafTWrap, BranchTWrap > >
79 typedef boost::shared_ptr<pcl::octree::OctreePointCloudSearch<PointT, LeafTWrap, BranchTWrap> >
Ptr;
80 typedef boost::shared_ptr<const pcl::octree::OctreePointCloudSearch<PointT, LeafTWrap, BranchTWrap> >
ConstPtr;
92 ,
tree_ (new pcl::octree::OctreePointCloudSearch<
PointT, LeafTWrap, BranchTWrap> (resolution))
108 tree_->deleteTree ();
109 tree_->setInputCloud (cloud);
110 tree_->addPointsFromInputCloud ();
121 tree_->deleteTree ();
122 tree_->setInputCloud (cloud, indices);
123 tree_->addPointsFromInputCloud ();
139 std::vector<float> &k_sqr_distances)
const
141 return (
tree_->nearestKSearch (cloud, index, k, k_indices, k_sqr_distances));
154 std::vector<float> &k_sqr_distances)
const
156 return (
tree_->nearestKSearch (point, k, k_indices, k_sqr_distances));
171 nearestKSearch (
int index,
int k, std::vector<int> &k_indices, std::vector<float> &k_sqr_distances)
const
173 return (
tree_->nearestKSearch (index, k, k_indices, k_sqr_distances));
189 std::vector<int> &k_indices,
190 std::vector<float> &k_sqr_distances,
191 unsigned int max_nn = 0)
const
193 tree_->radiusSearch (cloud, index, radius, k_indices, k_sqr_distances, max_nn);
195 this->sortResults (k_indices, k_sqr_distances);
196 return (static_cast<int> (k_indices.size ()));
210 std::vector<int> &k_indices,
211 std::vector<float> &k_sqr_distances,
212 unsigned int max_nn = 0)
const
214 tree_->radiusSearch (p_q, radius, k_indices, k_sqr_distances, max_nn);
216 this->sortResults (k_indices, k_sqr_distances);
217 return (static_cast<int> (k_indices.size ()));
231 std::vector<float> &k_sqr_distances,
unsigned int max_nn = 0)
const
233 tree_->radiusSearch (index, radius, k_indices, k_sqr_distances, max_nn);
235 this->sortResults (k_indices, k_sqr_distances);
236 return (static_cast<int> (k_indices.size ()));
251 return (
tree_->approxNearestSearch (cloud->points[query_index], result_index, sqr_distance));
262 return (
tree_->approxNearestSearch (p_q, result_index, sqr_distance));
275 return (
tree_->approxNearestSearch (query_index, result_index, sqr_distance));
282 #define PCL_INSTANTIATE_Octree(T) template class PCL_EXPORTS pcl::search::Octree<T>;
284 #endif // PCL_SEARCH_OCTREE_H