43 #include <pcl/registration/warp_point_rigid.h>
46 namespace registration {
55 template <
typename Po
intSourceT,
typename Po
intTargetT,
typename Scalar =
float>
63 using Ptr = shared_ptr<WarpPointRigid6D<PointSourceT, PointTargetT, Scalar>>;
65 shared_ptr<const WarpPointRigid6D<PointSourceT, PointTargetT, Scalar>>;
79 assert(p.rows() == this->getDimension());
89 Eigen::Quaternion<Scalar> q(0, p[3], p[4], p[5]);
90 q.w() =
static_cast<Scalar
>(std::sqrt(1 - q.dot(q)));
WarpPointRigid3D enables 6D (3D rotation + 3D translation) transformations for points.
typename WarpPointRigid< PointSourceT, PointTargetT, Scalar >::VectorX VectorX
~WarpPointRigid6D() override=default
Empty destructor.
void setParam(const VectorX &p) override
Set warp parameters.
shared_ptr< WarpPointRigid6D< PointSourceT, PointTargetT, Scalar > > Ptr
shared_ptr< const WarpPointRigid6D< PointSourceT, PointTargetT, Scalar > > ConstPtr
typename WarpPointRigid< PointSourceT, PointTargetT, Scalar >::Matrix4 Matrix4
Matrix4 transform_matrix_
Eigen::Matrix< Scalar, 4, 4 > Matrix4
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > VectorX