Go to the documentation of this file.00001
00063 #ifndef __IMPL_ORGANIZED_NORMAL_ESTIMATION_H__
00064 #define __IMPL_ORGANIZED_NORMAL_ESTIMATION_H__
00065
00066 #include "cob_3d_mapping_common/label_defines.h"
00067 #include "cob_3d_features/organized_normal_estimation_omp.h"
00068
00069 template <typename PointInT, typename PointOutT, typename LabelOutT> void
00070 cob_3d_features::OrganizedNormalEstimationOMP<PointInT,PointOutT,LabelOutT>::computeFeature (PointCloudOut &output)
00071 {
00072 if (labels_->points.size() != input_->size())
00073 {
00074 labels_->points.resize(input_->size());
00075 labels_->height = input_->height;
00076 labels_->width = input_->width;
00077 }
00078
00079 int threadsize = 1;
00080
00081 #pragma omp parallel for schedule (dynamic, threadsize)
00082 for (size_t i=0; i < indices_->size(); ++i)
00083 {
00084 labels_->points[(*indices_)[i]].label = I_UNDEF;
00085 computePointNormal(*surface_, (*indices_)[i],
00086 output.points[(*indices_)[i]].normal[0],
00087 output.points[(*indices_)[i]].normal[1],
00088 output.points[(*indices_)[i]].normal[2],
00089 labels_->points[(*indices_)[i]].label);
00090 }
00091 }
00092
00093 #define PCL_INSTANTIATE_OrganizedNormalEstimationOMP(T,OutT,LabelT) template class PCL_EXPORTS cob_3d_features::OrganizedNormalEstimationOMP<T,OutT,LabelT>;
00094
00095 #endif
00096