43 #include <pcl/registration/warp_point_rigid.h>
46 namespace registration {
55 template <
typename Po
intSourceT,
typename Po
intTargetT,
typename Scalar =
float>
61 using Ptr = shared_ptr<WarpPointRigid3D<PointSourceT, PointTargetT, Scalar>>;
63 shared_ptr<const WarpPointRigid3D<PointSourceT, PointTargetT, Scalar>>;
77 assert(p.rows() == this->getDimension());
80 trans = Matrix4::Zero();
85 trans.template block<4, 1>(0, 3) = Eigen::Matrix<Scalar, 4, 1>(p[0], p[1], 0, 1.0);
88 Eigen::Rotation2D<Scalar> r(p[2]);
89 trans.template topLeftCorner<2, 2>() = r.toRotationMatrix();
WarpPointRigid3D enables 3D (1D rotation + 2D translation) transformations for points.
typename WarpPointRigid< PointSourceT, PointTargetT, Scalar >::VectorX VectorX
void setParam(const VectorX &p) override
Set warp parameters.
shared_ptr< WarpPointRigid3D< PointSourceT, PointTargetT, Scalar > > Ptr
typename WarpPointRigid< PointSourceT, PointTargetT, Scalar >::Matrix4 Matrix4
~WarpPointRigid3D() override=default
Empty destructor.
shared_ptr< const WarpPointRigid3D< PointSourceT, PointTargetT, Scalar > > ConstPtr
WarpPointRigid3D()
Constructor.
Matrix4 transform_matrix_
Eigen::Matrix< Scalar, 4, 4 > Matrix4
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > VectorX