24 using Ptr = std::shared_ptr<PointCloudGPU>;
25 using ConstPtr = std::shared_ptr<const PointCloudGPU>;
30 template <
typename T,
int D>
33 template <
typename T,
int D,
typename Alloc>
41 static PointCloudGPU::Ptr clone(
const PointCloud& frame, CUstream_st* stream = 0);
45 void add_times(
const T*
times,
int num_points, CUstream_st* stream = 0) {
50 void add_times(
const std::vector<T>&
times, CUstream_st* stream = 0) {
55 void add_times_gpu(
const T*
times,
int num_points, CUstream_st* stream = 0);
57 void add_times_gpu(
const std::vector<T>&
times, CUstream_st* stream = 0) {
58 add_times_gpu(
times.data(),
times.size(), stream);
61 template <
typename T,
int D>
62 void add_points(
const Eigen::Matrix<T, D, 1>*
points,
int num_points, CUstream_st* stream = 0) {
66 template <
typename T,
int D,
typename Alloc>
67 void add_points(
const std::vector<Eigen::Matrix<T, D, 1>, Alloc>&
points, CUstream_st* stream = 0) {
71 template <
typename T,
int D>
72 void add_points_gpu(
const Eigen::Matrix<T, D, 1>*
points,
int num_points, CUstream_st* stream = 0);
73 template <
typename T,
int D,
typename Alloc>
74 void add_points_gpu(
const std::vector<Eigen::Matrix<T, D, 1>, Alloc>&
points, CUstream_st* stream = 0) {
78 template <
typename T,
int D>
79 void add_normals(
const Eigen::Matrix<T, D, 1>*
normals,
int num_points, CUstream_st* stream = 0) {
83 template <
typename T,
int D,
typename Alloc>
84 void add_normals(
const std::vector<Eigen::Matrix<T, D, 1>, Alloc>&
normals, CUstream_st* stream = 0) {
88 template <
typename T,
int D>
89 void add_normals_gpu(
const Eigen::Matrix<T, D, 1>*
normals,
int num_points, CUstream_st* stream = 0);
90 template <
typename T,
int D,
typename Alloc>
91 void add_normals_gpu(
const std::vector<Eigen::Matrix<T, D, 1>, Alloc>&
normals, CUstream_st* stream = 0) {
95 template <
typename T,
int D>
96 void add_covs(
const Eigen::Matrix<T, D, D>*
covs,
int num_points, CUstream_st* stream = 0) {
100 template <
typename T,
int D,
typename Alloc>
101 void add_covs(
const std::vector<Eigen::Matrix<T, D, D>, Alloc>&
covs, CUstream_st* stream = 0) {
102 add_covs(
covs.data(),
covs.size(), stream);
105 template <
typename T,
int D>
106 void add_covs_gpu(
const Eigen::Matrix<T, D, D>*
covs,
int num_points, CUstream_st* stream = 0);
107 template <
typename T,
int D,
typename Alloc>
108 void add_covs_gpu(
const std::vector<Eigen::Matrix<T, D, D>, Alloc>&
covs, CUstream_st* stream = 0) {
109 add_covs_gpu(
covs.data(),
covs.size(), stream);
112 template <
typename T>
117 template <
typename T>
118 void add_intensities(
const std::vector<T>&
intensities, CUstream_st* stream = 0) {
122 template <
typename T>
124 template <
typename T>
125 void add_intensities_gpu(
const std::vector<T>&
intensities, CUstream_st* stream = 0) {
129 void download_points(CUstream_st* stream = 0);