Point Cloud Library (PCL)
1.13.1
Loading...
Searching...
No Matches
containers
include
pcl
gpu
containers
impl
device_memory.hpp
1
/*
2
* Software License Agreement (BSD License)
3
*
4
* Copyright (c) 2011, Willow Garage, Inc.
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
9
* are met:
10
*
11
* * Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* * Redistributions in binary form must reproduce the above
14
* copyright notice, this list of conditions and the following
15
* disclaimer in the documentation and/or other materials provided
16
* with the distribution.
17
* * Neither the name of Willow Garage, Inc. nor the names of its
18
* contributors may be used to endorse or promote products derived
19
* from this software without specific prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
* POSSIBILITY OF SUCH DAMAGE.
33
*
34
* Author: Anatoly Baskeheev, Itseez Ltd, (myname.mysurname@mycompany.com)
35
*/
36
37
#ifndef PCL_GPU_CONTAINER_DEVICE_MEMORY_IMPL_HPP_
38
#define PCL_GPU_CONTAINER_DEVICE_MEMORY_IMPL_HPP_
39
40
namespace
pcl
{
41
42
namespace
gpu {
43
44
//////////////////// Inline implementations of DeviceMemory //////////////////
45
template
<
class
T>
46
inline
T*
47
DeviceMemory::ptr
()
48
{
49
return
(T*)data_;
50
}
51
52
template
<
class
T>
53
inline
const
T*
54
DeviceMemory::ptr
()
const
55
{
56
return
(
const
T*)data_;
57
}
58
59
template
<
class
U>
60
inline
DeviceMemory::operator
PtrSz<U>
()
const
61
{
62
PtrSz<U>
result;
63
result.
data
= (U*)ptr<U>();
64
result.
size
= sizeBytes_ /
sizeof
(U);
65
return
result;
66
}
67
68
//////////////////// Inline implementations of DeviceMemory2D ////////////////
69
template
<
class
T>
70
T*
71
DeviceMemory2D::ptr
(
int
y_arg)
72
{
73
return
(T*)((
char
*)data_ + y_arg * step_);
74
}
75
76
template
<
class
T>
77
const
T*
78
DeviceMemory2D::ptr
(
int
y_arg)
const
79
{
80
return
(
const
T*)((
const
char
*)data_ + y_arg * step_);
81
}
82
83
template
<
class
U>
84
DeviceMemory2D::operator
PtrStep<U>
()
const
85
{
86
PtrStep<U>
result;
87
result.
data
= (U*)ptr<U>();
88
result.
step
= step_;
89
return
result;
90
}
91
92
template
<
class
U>
93
DeviceMemory2D::operator
PtrStepSz<U>
()
const
94
{
95
PtrStepSz<U>
result;
96
result.
data
= (U*)ptr<U>();
97
result.
step
= step_;
98
result.
cols
= colsBytes_ /
sizeof
(U);
99
result.
rows
= rows_;
100
return
result;
101
}
102
103
}
// namespace gpu
104
}
// namespace pcl
105
106
#endif
/* PCL_GPU_CONTAINER_DEVICE_MEMORY_IMPL_HPP_ */
pcl::gpu::DeviceMemory2D::ptr
T * ptr(int y_arg=0)
Returns pointer to given row in internal buffer.
Definition
device_memory.hpp:71
pcl::gpu::DeviceMemory::ptr
T * ptr()
Returns pointer for internal buffer in GPU memory.
Definition
device_memory.hpp:47
pcl
Definition
convolution.h:46
pcl::gpu::DevPtr::data
T * data
Definition
kernel_containers.h:54
pcl::gpu::PtrStep
Definition
kernel_containers.h:85
pcl::gpu::PtrStep::step
std::size_t step
stride between two consecutive rows in bytes.
Definition
kernel_containers.h:94
pcl::gpu::PtrStepSz
Definition
kernel_containers.h:122
pcl::gpu::PtrStepSz::cols
int cols
Definition
kernel_containers.h:131
pcl::gpu::PtrStepSz::rows
int rows
Definition
kernel_containers.h:132
pcl::gpu::PtrSz
Definition
kernel_containers.h:74
pcl::gpu::PtrSz::size
std::size_t size
Definition
kernel_containers.h:81