40#ifndef PCL_FEATURES_IMPL_SHOT_LRF_OMP_H_
41#define PCL_FEATURES_IMPL_SHOT_LRF_OMP_H_
43#include <pcl/features/shot_lrf_omp.h>
44#include <pcl/features/shot_lrf.h>
47template<
typename Po
intInT,
typename Po
intOutT>
void
61template<
typename Po
intInT,
typename Po
intOutT>
void
68 "[pcl::%s::computeFeature] Error! Search method set to k-neighborhood. Call setKSearch(0) and setRadiusSearch( radius ) to use this class.\n",
72 tree_->setSortedResults (
true);
74#pragma omp parallel for \
77 num_threads(threads_) \
79 for (std::ptrdiff_t i = 0; i < static_cast<std::ptrdiff_t> (
indices_->size ()); ++i)
83 PointOutT& output_rf = output[i];
90 output.is_dense =
false;
93 for (
int d = 0; d < 3; ++d)
95 output_rf.x_axis[d] = rf.row (0)[d];
96 output_rf.y_axis[d] = rf.row (1)[d];
97 output_rf.z_axis[d] = rf.row (2)[d];
103#define PCL_INSTANTIATE_SHOTLocalReferenceFrameEstimationOMP(T,OutT) template class PCL_EXPORTS pcl::SHOTLocalReferenceFrameEstimationOMP<T,OutT>;
const std::string & getClassName() const
float getLocalRF(const int &index, Eigen::Matrix3f &rf)
unsigned int threads_
The number of threads the scheduler should use.
void computeFeature(PointCloudOut &output) override
Feature estimation method.
void setNumberOfThreads(unsigned int nr_threads=0)
Initialize the scheduler and set the number of threads to use.
typename Feature< PointInT, PointOutT >::PointCloudOut PointCloudOut