1#ifndef GLK_POINTCLOUD_BUFFER_PCL_HPP
2#define GLK_POINTCLOUD_BUFFER_PCL_HPP
5#include <pcl/point_types.h>
6#include <pcl/point_cloud.h>
11template <
typename Po
intT>
14 for (
int i = 0;
i <
cloud.size();
i++) {
17 return std::make_shared<PointCloudBuffer>(
points[0].data(),
sizeof(Eigen::Vector3f),
cloud.size());
22 return std::make_shared<PointCloudBuffer>(&
cloud.at(0).x,
sizeof(pcl::PointXYZ),
cloud.size());
28 std::vector<Eigen::Vector3f> normals(
cloud.size());
29 for (
int i = 0;
i <
cloud.size();
i++) {
31 normals[
i] =
cloud[
i].getNormalVector3fMap();
34 auto cloud_buffer = std::make_shared<PointCloudBuffer>(
points[0].data(),
sizeof(Eigen::Vector3f),
cloud.size());
35 cloud_buffer->add_normals(normals[0].data(),
sizeof(Eigen::Vector3f), normals.size());
40template <
typename Po
intT>
43 std::vector<Eigen::Vector4f> colors(
cloud.size());
45 for (
int i = 0;
i <
cloud.size();
i++) {
50 auto cloud_buffer = std::make_shared<PointCloudBuffer>(
points[0].data(),
sizeof(Eigen::Vector3f),
points.size());
51 cloud_buffer->add_color(colors[0].data(),
sizeof(Eigen::Vector4f), colors.size());
Definition async_buffer_copy.hpp:6
std::shared_ptr< PointCloudBuffer > create_colored_point_cloud_buffer(const pcl::PointCloud< PointT > &cloud)
Definition pointcloud_buffer_pcl.hpp:41
static std::shared_ptr< PointCloudBuffer > create_point_cloud_buffer(const void *src_cuda_ptr, int stride, int num_points)
Definition pointcloud_buffer_cuda.hpp:13
std::enable_if_t< needs_aligned_allocator< T >::value, std::shared_ptr< T > > make_shared(Args &&... args)
Definition make_shared.hpp:20