38 #ifndef PCL_GPU_CONTAINERS_KERNEL_CONTAINERS_HPP_
39 #define PCL_GPU_CONTAINERS_KERNEL_CONTAINERS_HPP_
42 #if defined(__CUDACC__)
43 #define __PCL_GPU_HOST_DEVICE__ __host__ __device__ __forceinline__
45 #define __PCL_GPU_HOST_DEVICE__
61 __PCL_GPU_HOST_DEVICE__
DevPtr() : data(0) {}
62 __PCL_GPU_HOST_DEVICE__
DevPtr(T* data_arg) : data(data_arg) {}
65 __PCL_GPU_HOST_DEVICE__
operator T*() {
return data; }
66 __PCL_GPU_HOST_DEVICE__
operator const T*()
const {
return data; }
72 __PCL_GPU_HOST_DEVICE__
PtrSz(T* data_arg,
size_t size_arg) :
DevPtr<T>(data_arg),
size(size_arg) {}
80 __PCL_GPU_HOST_DEVICE__
PtrStep(T* data_arg,
size_t step_arg) :
DevPtr<T>(data_arg),
step(step_arg) {}
86 __PCL_GPU_HOST_DEVICE__
const T*
ptr(
int y = 0)
const {
return (
const T*)( (
const char*)
DevPtr<T>::data + y * step); }
88 __PCL_GPU_HOST_DEVICE__ T&
operator()(
int y,
int x) {
return ptr(y)[x]; }
89 __PCL_GPU_HOST_DEVICE__
const T&
operator()(
int y,
int x)
const {
return ptr(y)[x]; }
95 __PCL_GPU_HOST_DEVICE__
PtrStepSz(
int rows_arg,
int cols_arg, T* data_arg,
size_t step_arg)
111 #undef __PCL_GPU_HOST_DEVICE__
__PCL_GPU_HOST_DEVICE__ const T & operator()(int y, int x) const
__PCL_GPU_HOST_DEVICE__ T & operator()(int y, int x)
This file defines compatibility wrappers for low level I/O functions.
__PCL_GPU_HOST_DEVICE__ PtrStepSz()
__PCL_GPU_HOST_DEVICE__ size_t elemSize() const
__PCL_GPU_HOST_DEVICE__ DevPtr(T *data_arg)
__PCL_GPU_HOST_DEVICE__ PtrSz()
__PCL_GPU_HOST_DEVICE__ DevPtr()
size_t step
stride between two consecutive rows in bytes.
static const size_t elem_size
__PCL_GPU_HOST_DEVICE__ const T * ptr(int y=0) const
__PCL_GPU_HOST_DEVICE__ PtrStep(T *data_arg, size_t step_arg)
__PCL_GPU_HOST_DEVICE__ PtrStepSz(int rows_arg, int cols_arg, T *data_arg, size_t step_arg)
__PCL_GPU_HOST_DEVICE__ PtrStep()
__PCL_GPU_HOST_DEVICE__ T * ptr(int y=0)
__PCL_GPU_HOST_DEVICE__ PtrSz(T *data_arg, size_t size_arg)