nearest_pair_point_cloud_coherence.h
Go to the documentation of this file.
00001 #ifndef PCL_TRACKING_NEAREST_PAIR_POINT_CLOUD_COHERENCE_H_
00002 #define PCL_TRACKING_NEAREST_PAIR_POINT_CLOUD_COHERENCE_H_
00003 
00004 #include <pcl/search/search.h>
00005 
00006 #include <pcl/tracking/coherence.h>
00007 
00008 namespace pcl
00009 {
00010   namespace tracking
00011   {
00017     template <typename PointInT>
00018     class NearestPairPointCloudCoherence: public PointCloudCoherence<PointInT>
00019     {
00020       public:
00021         using PointCloudCoherence<PointInT>::getClassName;
00022         using PointCloudCoherence<PointInT>::coherence_name_;
00023         using PointCloudCoherence<PointInT>::target_input_;
00024         
00025         typedef typename PointCloudCoherence<PointInT>::PointCoherencePtr PointCoherencePtr;
00026         typedef typename PointCloudCoherence<PointInT>::PointCloudInConstPtr PointCloudInConstPtr;
00027         typedef PointCloudCoherence<PointInT> BaseClass;
00028         
00029         typedef boost::shared_ptr<NearestPairPointCloudCoherence<PointInT> > Ptr;
00030         typedef boost::shared_ptr<const NearestPairPointCloudCoherence<PointInT> > ConstPtr;
00031         typedef boost::shared_ptr<pcl::search::Search<PointInT> > SearchPtr;
00032         typedef boost::shared_ptr<const pcl::search::Search<PointInT> > SearchConstPtr;
00033         
00035         NearestPairPointCloudCoherence ()
00036           : new_target_ (false)
00037           , search_ ()
00038           , maximum_distance_ (std::numeric_limits<double>::max ())
00039         {
00040           coherence_name_ = "NearestPairPointCloudCoherence";
00041         }
00042 
00050         inline void 
00051         setSearchMethod (const SearchPtr &search) { search_ = search; }
00052         
00054         inline SearchPtr 
00055         getSearchMethod () { return (search_); }
00056 
00060         virtual inline void
00061         setTargetCloud (const PointCloudInConstPtr &cloud)
00062         {
00063           new_target_ = true;
00064           PointCloudCoherence<PointInT>::setTargetCloud (cloud);
00065         }
00066         
00070         inline void setMaximumDistance (double val) { maximum_distance_ = val; }
00071 
00072       protected:
00073         using PointCloudCoherence<PointInT>::point_coherences_;
00074 
00076         virtual bool initCompute ();
00077 
00079         bool new_target_;
00080         
00082         SearchPtr search_;
00083 
00085         double maximum_distance_;
00086         
00088         virtual void
00089         computeCoherence (const PointCloudInConstPtr &cloud, const IndicesConstPtr &indices, float &w_j);
00090 
00091     };
00092   }
00093 }
00094 
00095 // #include <pcl/tracking/impl/nearest_pair_point_cloud_coherence.hpp>
00096 #ifdef PCL_NO_PRECOMPILE
00097 #include <pcl/tracking/impl/nearest_pair_point_cloud_coherence.hpp>
00098 #endif
00099 
00100 #endif


pcl
Author(s): Open Perception
autogenerated on Wed Aug 26 2015 15:25:46