Go to the documentation of this file.00001
00063 #ifndef __IMPL_FAST_EDGE_ESTIMATION_3D_OMP_H__
00064 #define __IMPL_FAST_EDGE_ESTIMATION_3D_OMP_H__
00065
00066 #include "cob_3d_features/fast_edge_estimation_3d_omp.h"
00067
00068 template <typename PointInT, typename PointNT, typename PointOutT> void
00069 cob_3d_features::FastEdgeEstimation3DOMP<PointInT, PointNT, PointOutT>::computeFeature (
00070 PointCloudOut &output)
00071 {
00072 int threadsize = 1;
00073
00074 #pragma omp parallel for schedule (dynamic, threadsize)
00075 for (size_t i=0; i < indices_->size(); ++i)
00076 {
00077 Eigen::Vector3f normal;
00078 std::vector<int> nn_indices;
00079 if (isnan(normals_->points[(*indices_)[i]].normal[0]))
00080 output.points[(*indices_)[i]].strength=2;
00081 else
00082 {
00083 this->searchForNeighbors ((*indices_)[i], nn_indices);
00084
00085 normal[0] = normals_->points[(*indices_)[i]].normal_x;
00086 normal[1] = normals_->points[(*indices_)[i]].normal_y;
00087 normal[2] = normals_->points[(*indices_)[i]].normal_z;
00088
00089 isEdgePoint (*surface_, input_->points[(*indices_)[i]], nn_indices,
00090 normal, output.points[(*indices_)[i]].strength);
00091 }
00092 }
00093 }
00094
00095 #define PCL_INSTANTIATE_FastEdgeEstimation3DOMP(PointInT,PointNT,PointOutT) template class PCL_EXPORTS cob_3d_features::FastEdgeEstimation3DOMP<PointInT, PointNT, PointOutT>;
00096
00097 #endif // __IMPL_FAST_EDGE_ESTIMATION_3D_H__