40 #ifndef PCL_REGISTRATION_TRANSFORMATION_ESTIMATION_POINT_TO_PLANE_H_
41 #define PCL_REGISTRATION_TRANSFORMATION_ESTIMATION_POINT_TO_PLANE_H_
43 #include <pcl/registration/transformation_estimation.h>
44 #include <pcl/registration/transformation_estimation_lm.h>
45 #include <pcl/registration/warp_point_rigid.h>
49 namespace registration
57 template <
typename Po
intSource,
typename Po
intTarget,
typename Scalar =
float>
61 typedef boost::shared_ptr<TransformationEstimationPointToPlane<PointSource, PointTarget, Scalar> >
Ptr;
62 typedef boost::shared_ptr<const TransformationEstimationPointToPlane<PointSource, PointTarget, Scalar> >
ConstPtr;
71 typedef Eigen::Matrix<Scalar, 4, 1>
Vector4;
81 Vector4 s (p_src.x, p_src.y, p_src.z, 0);
82 Vector4 t (p_tgt.x, p_tgt.y, p_tgt.z, 0);
83 Vector4 n (p_tgt.normal_x, p_tgt.normal_y, p_tgt.normal_z, 0);
84 return ((s - t).dot (n));
91 Vector4 t (p_tgt.x, p_tgt.y, p_tgt.z, 0);
92 Vector4 n (p_tgt.normal_x, p_tgt.normal_y, p_tgt.normal_z, 0);
93 return ((p_src - t).dot (n));