Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 #ifndef PCL_FILTERS_DON_H_
00039 #define PCL_FILTERS_DON_H_
00040 
00041 #include <pcl/features/feature.h>
00042 
00043 namespace pcl
00044 {
00067   template <typename PointInT, typename PointNT, typename PointOutT>
00068   class DifferenceOfNormalsEstimation : public Feature<PointInT, PointOutT>
00069   {
00070       using Feature<PointInT, PointOutT>::getClassName;
00071       using Feature<PointInT, PointOutT>::feature_name_;
00072       using PCLBase<PointInT>::input_;
00073       typedef typename pcl::PointCloud<PointNT> PointCloudN;
00074       typedef typename PointCloudN::Ptr PointCloudNPtr;
00075       typedef typename PointCloudN::ConstPtr PointCloudNConstPtr;
00076       typedef typename Feature<PointInT, PointOutT>::PointCloudOut PointCloudOut;
00077     public:
00078       typedef boost::shared_ptr<DifferenceOfNormalsEstimation<PointInT, PointNT, PointOutT> > Ptr;
00079       typedef boost::shared_ptr<const DifferenceOfNormalsEstimation<PointInT, PointNT, PointOutT> > ConstPtr;
00080 
00084       DifferenceOfNormalsEstimation ()
00085       {
00086         feature_name_ = "DifferenceOfNormalsEstimation";
00087       }
00088 
00089       virtual ~DifferenceOfNormalsEstimation ()
00090       {
00091         
00092       }
00093 
00098       inline void
00099       setNormalScaleSmall (const PointCloudNConstPtr &normals)
00100       {
00101         input_normals_small_ = normals;
00102       }
00103 
00108       inline void
00109       setNormalScaleLarge (const PointCloudNConstPtr &normals)
00110       {
00111         input_normals_large_ = normals;
00112       }
00113 
00118       virtual void
00119       computeFeature (PointCloudOut &output);
00120 
00125       virtual bool
00126       initCompute ();
00127     private:
00131       void
00132       compute (PointCloudOut &) {}
00133 
00135       PointCloudNConstPtr input_normals_small_;
00137       PointCloudNConstPtr input_normals_large_;
00138     };
00139 }
00140 
00141 #ifdef PCL_NO_PRECOMPILE
00142 #include <pcl/features/impl/don.hpp>
00143 #endif
00144 
00145 #endif // PCL_FILTERS_DON_H_