40 #ifndef PCL_FEATURES_IMPL_SHOT_LRF_OMP_H_
41 #define PCL_FEATURES_IMPL_SHOT_LRF_OMP_H_
44 #include <pcl/features/shot_lrf_omp.h>
45 #include <pcl/features/shot_lrf.h>
47 template<
typename Po
intInT,
typename Po
intOutT>
52 if (this->getKSearch () != 0)
55 "[pcl::%s::computeFeature] Error! Search method set to k-neighborhood. Call setKSearch(0) and setRadiusSearch( radius ) to use this class.\n",
56 getClassName().c_str ());
59 tree_->setSortedResults (
true);
61 int data_size =
static_cast<int> (indices_->size ());
63 #pragma omp parallel for num_threads(threads_)
65 for (
int i = 0; i < data_size; ++i)
69 PointOutT& output_rf = output[i];
74 std::vector<int> n_indices;
75 std::vector<float> n_sqr_distances;
76 this->searchForNeighbors ((*indices_)[i], search_parameter_, n_indices, n_sqr_distances);
77 if (getLocalRF ((*indices_)[i], rf) == std::numeric_limits<float>::max ())
82 for (
int d = 0; d < 3; ++d)
84 output_rf.x_axis[d] = rf.row (0)[d];
85 output_rf.y_axis[d] = rf.row (1)[d];
86 output_rf.z_axis[d] = rf.row (2)[d];
92 #define PCL_INSTANTIATE_SHOTLocalReferenceFrameEstimationOMP(T,OutT) template class PCL_EXPORTS pcl::SHOTLocalReferenceFrameEstimationOMP<T,OutT>;
94 #endif // PCL_FEATURES_IMPL_SHOT_LRF_H_