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 
00039 #include <pcl/features/impl/ppf.hpp>
00040 #include <pcl/features/impl/ppfrgb.hpp>
00041 
00043 bool
00044 pcl::computePPFPairFeature (const Eigen::Vector4f &p1, const Eigen::Vector4f &n1,
00045                             const Eigen::Vector4f &p2, const Eigen::Vector4f &n2,
00046                             float &f1, float &f2, float &f3, float &f4)
00047 {
00048   Eigen::Vector4f delta = p2 - p1;
00049   delta[3] = 0.0f;
00050   
00051   f4 = delta.norm ();
00052 
00053   delta /= f4;
00054 
00055   
00056   f1 = n1[0] * delta[0] + n1[1] * delta[1] + n1[2] * delta[2];
00057   
00058   f2 = n2[0] * delta[0] + n2[1] * delta[1] + n2[2] * delta[2];
00059   
00060   f3 = n1[0] * n2[0] + n1[1] * n2[1] + n1[2] * n2[2];
00061 
00062   return (true);
00063 }
00064 
00065 #ifndef PCL_NO_PRECOMPILE
00066 #include <pcl/point_types.h>
00067 #include <pcl/impl/instantiate.hpp>
00068 
00069 #ifdef PCL_ONLY_CORE_POINT_TYPES
00070   PCL_INSTANTIATE_PRODUCT(PPFEstimation, ((pcl::PointXYZ)(pcl::PointXYZI)(pcl::PointNormal)(pcl::PointXYZRGBA))((pcl::PointNormal)(pcl::Normal))((pcl::PPFSignature)))
00071   PCL_INSTANTIATE_PRODUCT(PPFRGBEstimation, ((pcl::PointXYZRGBA) (pcl::PointXYZRGBNormal))
00072                         ((pcl::Normal) (pcl::PointNormal)  (pcl::PointXYZRGBNormal))
00073                         ((pcl::PPFRGBSignature)))
00074 #else
00075   PCL_INSTANTIATE_PRODUCT(PPFEstimation, (PCL_XYZ_POINT_TYPES)(PCL_NORMAL_POINT_TYPES)((pcl::PPFSignature)))
00076   PCL_INSTANTIATE_PRODUCT(PPFRGBRegionEstimation, ((pcl::PointXYZRGBA) (pcl::PointXYZRGBNormal))
00077                         ((pcl::Normal) (pcl::PointNormal)  (pcl::PointXYZRGBNormal))
00078                         ((pcl::PPFRGBSignature)))
00079 #endif
00080 #endif    // PCL_NO_PRECOMPILE
00081