38 #ifndef PCL_REGISTRATION_IMPL_META_REGISTRATION_HPP_
39 #define PCL_REGISTRATION_IMPL_META_REGISTRATION_HPP_
43 namespace registration {
45 template <
typename Po
intT,
typename Scalar>
47 : abs_transform_(
Matrix4::Identity())
50 template <
typename Po
intT,
typename Scalar>
55 assert(registration_);
61 full_cloud_ = new_cloud_transformed;
62 abs_transform_ = delta_estimate;
66 registration_->setInputSource(new_cloud);
67 registration_->setInputTarget(full_cloud_);
69 registration_->align(*new_cloud_transformed, abs_transform_ * delta_estimate);
71 bool converged = registration_->hasConverged();
74 abs_transform_ = registration_->getFinalTransformation();
75 *full_cloud_ += *new_cloud_transformed;
81 template <
typename Po
intT,
typename Scalar>
85 return (abs_transform_);
88 template <
typename Po
intT,
typename Scalar>
93 abs_transform_ = Matrix4::Identity();
96 template <
typename Po
intT,
typename Scalar>
103 template <
typename Po
intT,
typename Scalar>
PointCloud represents the base class in PCL for storing collections of 3D points.
void transformPointCloud(const pcl::PointCloud< PointT > &cloud_in, pcl::PointCloud< PointT > &cloud_out, const Eigen::Matrix< Scalar, 4, 4 > &transform, bool copy_all_fields)
Apply a rigid transform defined by a 4x4 matrix.