29 #include <pcl/point_cloud.h>
30 #include <pcl/point_types.h>
36 inline Eigen::Vector2f
39 return Eigen::Vector2f{pt.x, pt.y};
42 inline Eigen::Vector3f
45 return Eigen::Vector3f{pt.x, pt.y, pt.z};
48 template <
typename Po
intT,
typename EigenVector = decltype(pcl2eigen(Po
intT()))>
50 pcl2eigen(
const pcl::PointCloud<PointT>& pointCloud) -> std::vector<EigenVector>
52 std::vector<EigenVector>
v;
53 v.reserve(pointCloud.points.size());
56 pointCloud.points.end(),
57 std::back_inserter(
v),
68 return pcl::PointXY{pt.x(), pt.y()};
74 return pcl::PointXYZ{pt.x(), pt.y(), 0.F};
77 template <
typename EigenVector,
typename Po
intT = decltype(eigen2pcl(EigenVector()))>
79 eigen2pcl(
const std::vector<EigenVector>& points) -> pcl::PointCloud<PointT>
81 pcl::PointCloud<PointT> pointCloud;
82 pointCloud.points.reserve(points.size());
86 std::back_inserter(pointCloud.points),
89 pointCloud.width = pointCloud.points.size();
90 pointCloud.height = 1;
91 pointCloud.is_dense =
true;