点云库PCL是基于C++的重度模板库,一般将函数的定义与声明放在.h文件中,函数的实现放在.hpp或.cpp文件中。
以函数transformPointCloud 为例,此函数的功能为将点云按变换矩阵进行变换,为点云的拼接做准备。
.h中函数的定义:
template <typename PointT, typename Scalar> void
transformPointCloud (const pcl::PointCloud<PointT> &cloud_in,
pcl::PointCloud<PointT> &cloud_out,
const Eigen::Matrix<Scalar, 4, 4> &transform)
{
Eigen::Transform<Scalar, 3, Eigen::Affine> t (transform);
return (transformPointCloud<PointT, Scalar>(cloud_in, cloud_out, t));
}
此为函数的定义部分,并且并非无实现的功能,这一函数内先将转换参数,然后将参数传给真正实现功能函数,
其声明如下
.h文件中:
template <typename PointT, typename Scalar> void
transformPointCloud (const pcl::PointCloud<PointT> &cloud_in,
pcl::PointCloud<PointT> &cloud_out,
const Eigen::Transform<Scalar, 3,