40 #ifndef PCL_FEATURE_H_
41 #define PCL_FEATURE_H_
43 #include <boost/function.hpp>
44 #include <boost/bind.hpp>
45 #include <boost/mpl/size.hpp>
68 const Eigen::Vector4f &point,
69 Eigen::Vector4f &plane_parameters,
float &curvature);
85 float &nx,
float &ny,
float &nz,
float &curvature);
103 template <
typename Po
intInT,
typename Po
intOutT>
112 typedef boost::shared_ptr< Feature<PointInT, PointOutT> >
Ptr;
113 typedef boost::shared_ptr< const Feature<PointInT, PointOutT> >
ConstPtr;
124 typedef boost::function<int (size_t, double, std::vector<int> &, std::vector<float> &)>
SearchMethod;
125 typedef boost::function<int (const PointCloudIn &cloud, size_t index, double, std::vector<int> &, std::vector<float> &)>
SearchMethodSurface;
130 feature_name_ (), search_method_surface_ (),
132 search_parameter_(0), search_radius_(0), k_(0),
147 fake_surface_ =
false;
175 return (search_parameter_);
198 search_radius_ = radius;
205 return (search_radius_);
226 std::string feature_name_;
240 double search_parameter_;
243 double search_radius_;
249 inline const std::string&
250 getClassName ()
const {
return (feature_name_); }
274 searchForNeighbors (
size_t index,
double parameter,
275 std::vector<int> &indices, std::vector<float> &distances)
const
277 return (search_method_surface_ (*input_, index, parameter, indices, distances));
292 searchForNeighbors (
const PointCloudIn &cloud,
size_t index,
double parameter,
293 std::vector<int> &indices, std::vector<float> &distances)
const
295 return (search_method_surface_ (cloud, index, parameter, indices, distances));
312 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
319 template <
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT>
332 typedef boost::shared_ptr< FeatureFromNormals<PointInT, PointNT, PointOutT> >
Ptr;
333 typedef boost::shared_ptr< const FeatureFromNormals<PointInT, PointNT, PointOutT> >
ConstPtr;
368 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
374 template <
typename Po
intInT,
typename Po
intLT,
typename Po
intOutT>
388 typedef boost::shared_ptr< FeatureFromLabels<PointInT, PointLT, PointOutT> >
Ptr;
389 typedef boost::shared_ptr< const FeatureFromLabels<PointInT, PointLT, PointOutT> >
ConstPtr;
416 inline PointCloudLConstPtr
426 PointCloudLConstPtr labels_;
433 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
450 template <
typename Po
intInT,
typename Po
intRFT>
474 frames_never_defined_ =
false;
488 bool frames_never_defined_;
497 initLocalReferenceFrames (
const size_t& indices_size,
498 const LRFEstimationPtr& lrf_estimation = LRFEstimationPtr());
504 #endif //#ifndef PCL_FEATURE_H_