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