37 #ifndef __PCL_GPU_UTILS_REPACKS_HPP__
38 #define __PCL_GPU_UTILS_REPACKS_HPP__
40 #include <pcl/gpu/containers/device_array.h>
41 #include <pcl/pcl_macros.h>
42 #include <pcl/point_types.h>
50 const int NoCP = 0xFFFFFFFF;
56 return ((to & 0xF) << 4) + (from & 0xF);
61 rule(
int cp1,
int cp2 = NoCP,
int cp3 = NoCP,
int cp4 = NoCP)
63 return (cp1 & 0xFF) + ((cp2 & 0xFF) << 8) + ((cp3 & 0xFF) << 16) +
71 int in_size,
int out_size,
int rules[4],
int size,
const void* input,
void* output);
73 template <
typename Po
intIn,
typename Po
intOut>
82 int rules[4] = {rule1, rule2, rule3, rule4};
85 sizeof(PointOut) /
sizeof(
int),
const int NoCP
This is an experimental code ///.
void copyFieldsEx(const DeviceArray< PointIn > &src, DeviceArray< PointOut > &dst, int rule1, int rule2=NoCP, int rule3=NoCP, int rule4=NoCP)
void create(std::size_t size)
Allocates internal buffer in GPU memory.
void copyFieldsImpl(int in_size, int out_size, int rules[4], int size, const void *input, void *output)
int cp(int from, int to)
Returns field copy operation code.
int rule(int cp1, int cp2=NoCP, int cp3=NoCP, int cp4=NoCP)
T * ptr()
Returns pointer for internal buffer in GPU memory.
std::size_t size() const
Returns size in elements.
void copyFields(const DeviceArray< PointXYZ > &src, DeviceArray< PointNormal > &dst)
void copyFieldsZ(const DeviceArray< PointXYZ > &src, DeviceArray< float > &dst)