Spec-Zone.ru › PointCloudLibrary

DeviceArray класс Подробнее...

#include </__w/1/s/gpu/containers/include/pcl/gpu/containers/device_array.h>

Inheritance graph
[обозначения]
Collaboration graph
[обозначения]

Публичные типы

enum { elem_size = sizeof(T) }
Размер элемента. Подробнее...
using type = T
Тип элемента. Подробнее...

Общедоступные функции-члены

DeviceArray ()
Пустой конструктор. Подробнее...
DeviceArray (std::size_t size)
Выделяет внутренний буфер в памяти GPU. Подробнее...
DeviceArray (T *ptr, std::size_t size)
Инициализирует массив буфером, выделенным пользователем. Подробнее...
DeviceArray (const DeviceArray &other)
Конструктор копирования. Подробнее...
DeviceArray & operator= (const DeviceArray &other)
Оператор присваивания. Подробнее...
void create (std::size_t size)
Выделяет внутренний буфер в памяти GPU. Подробнее...
void release ()
Уменьшает счетчик ссылок и при необходимости освобождает внутренний буфер. Подробнее...
void copyTo (DeviceArray &other) const
Копирует данные. Подробнее...
void upload (const T *host_ptr, std::size_t size)
Загружает данные во внутренний буфер в памяти GPU. Подробнее...
bool upload (const T *host_ptr, std::size_t device_begin_offset, std::size_t num_elements)
Загружает данные из памяти CPU во внутренний буфер. Подробнее...
void download (T *host_ptr) const
Загружает данные из внутреннего буфера в память CPU. Подробнее...
bool download (T *host_ptr, std::size_t device_begin_offset, std::size_t num_elements) const
Загружает данные из внутреннего буфера в память CPU. Подробнее...
template<class A >
void upload (const std::vector< T, A > &data)
Загружает данные во внутренний буфер в памяти GPU. Подробнее...
template<typename A >
void download (std::vector< T, A > &data) const
Загружает данные из внутреннего буфера в память CPU. Подробнее...
void swap (DeviceArray &other_arg)
Меняет местами данные, на которые указывает другой массив устройства. Подробнее...
T * ptr ()
Возвращает указатель на внутренний буфер в памяти GPU. Подробнее...
const T * ptr () const
Возвращает константный указатель на внутренний буфер в памяти GPU. Подробнее...
operator T* ()
Возвращает указатель на внутренний буфер в памяти GPU. Подробнее...
operator const T * () const
Возвращает константный указатель на внутренний буфер в памяти GPU. Подробнее...
std::size_t size () const
Возвращает размер в элементах. Подробнее...
- Общедоступные функции-члены, унаследованные от pcl::gpu::DeviceMemory
DeviceMemory ()
Пустой конструктор. Подробнее...
~DeviceMemory ()
Деструктор. Подробнее...
DeviceMemory (std::size_t sizeBytes_arg)
Выделяет внутренний буфер в памяти GPU. Подробнее...
DeviceMemory (void *ptr_arg, std::size_t sizeBytes_arg)
Инициализирует объект буфером, выделенным пользователем. Подробнее...
DeviceMemory (const DeviceMemory &other_arg)
Конструктор копирования. Подробнее...
DeviceMemory & operator= (const DeviceMemory &other_arg)
Оператор присваивания. Подробнее...
void create (std::size_t sizeBytes_arg)
Выделяет внутренний буфер в памяти GPU. Подробнее...
void release ()
Уменьшает счетчик ссылок и при необходимости освобождает внутренний буфер. Подробнее...
void copyTo (DeviceMemory &other) const
Выполняет копирование данных. Подробнее...
void upload (const void *host_ptr_arg, std::size_t sizeBytes_arg)
Загружает данные во внутренний буфер в памяти GPU. Подробнее...
bool upload (const void *host_ptr_arg, std::size_t device_begin_byte_offset, std::size_t num_bytes)
Загружает данные из памяти CPU в массив устройства. Подробнее...
void download (void *host_ptr_arg) const
Загружает данные из внутреннего буфера в память CPU. Подробнее...
bool download (void *host_ptr_arg, std::size_t device_begin_byte_offset, std::size_t num_bytes) const
Загружает данные из внутреннего буфера в память CPU. Подробнее...
void swap (DeviceMemory &other_arg)
Меняет местами данные, на которые указывает другой объект памяти устройства. Подробнее...
template<class T >
T * ptr ()
Возвращает указатель на внутренний буфер в памяти GPU. Подробнее...
template<class T >
const T * ptr () const
Возвращает константный указатель на внутренний буфер в памяти GPU. Подробнее...
template<class U >
operator PtrSz< U > () const
Преобразование в PtrSz для передачи функциям ядра. Подробнее...
bool empty () const
Возвращает true, если память не выделена, и false в противном случае. Подробнее...
std::size_t sizeBytes () const

Подробное описание

template<class T>
class pcl::gpu::DeviceArray< T >

Класс DeviceArray

Примечание
Типизированный контейнер для памяти GPU со счетчиком ссылок.
Автор
Anatoly Baksheev

Определение в строке 54 файла device_array.h.

Документация определения псевдонима члена

type

template<class T >
using pcl::gpu::DeviceArray< T >::type = T

Тип элемента.

Определение в строке 57 файла device_array.h.

Документация перечисления-члена

анонимное перечисление

template<class T >
anonymous enum

Размер элемента.

Элементы перечисления
elem_size

Определение в строке 60 файла device_array.h.

Документация конструктора и деструктора

DeviceArray() [1/4]

template<class T >
pcl::gpu::DeviceArray< T >::DeviceArray
inline

Конструктор без параметров.

Определение в строке 47 файла device_array.hpp.

DeviceArray() [2/4]

template<class T >
pcl::gpu::DeviceArray< T >::DeviceArray ( std::size_t size )
inline

Выделяет внутренний буфер в памяти GPU.

Параметры
size количество выделяемых элементов

Определение в строке 51 файла device_array.hpp.

DeviceArray() [3/4]

template<class T >
pcl::gpu::DeviceArray< T >::DeviceArray ( T * ptr,
std::size_t size
)
inline

Инициализирует массив пользовательским буфером.

В этом случае подсчёт ссылок отключён.

Параметры
ptr указатель на буфер
size количество элементов

Определение в строке 55 файла device_array.hpp.

DeviceArray() [4/4]

template<class T >
pcl::gpu::DeviceArray< T >::DeviceArray ( const DeviceArray< T > & other )
inline

Конструктор копирования.

Лишь увеличивает счётчик ссылок.

Определение в строке 60 файла device_array.hpp.

Описание функций-членов

copyTo()

template<class T >
void pcl::gpu::DeviceArray< T >::copyTo ( DeviceArray< T > & other ) const
inline

Выполняет копирование данных.

Если размер назначения отличается, для него будет выделена новая память.

Параметры
other контейнер назначения

Определение в строке 87 файла device_array.hpp.

Ссылки: pcl::gpu::DeviceMemory::copyTo().

create()

template<class T >
void pcl::gpu::DeviceArray< T >::create ( std::size_t size )
inline

Выделяет внутренний буфер в памяти GPU.

Если внутренний буфер уже был создан, функция пересоздаёт его с новым размером. Если новый и старый размеры равны, функция ничего не делает.

Параметры
size количество элементов

Определение в строке 73 файла device_array.hpp.

Используется в: pcl::gpu::copyFieldsEx(), pcl::gpu::NeighborIndices::create() и pcl::gpu::extractEuclideanClusters().

download() [1/3]

template<class T >
template<class A >
void pcl::gpu::DeviceArray< T >::download ( std::vector< T, A > & data ) const
inline

Загружает данные из внутреннего буфера в память CPU.

Параметры
data вектор в памяти хоста, в который загружаются данные

Определение в строке 179 файла device_array.hpp.

download() [2/3]

template<class T >
void pcl::gpu::DeviceArray< T >::download ( T * host_ptr ) const
inline
inline

Загружает данные из внутреннего буфера в память CPU.

Параметры
host_ptr указатель на буфер, в который загружаются данные

Определение в строке 112 файла device_array.hpp.

Ссылки: pcl::gpu::DeviceMemory::download().

Используется в: pcl::gpu::kinfuLS::StandaloneMarchingCubes< PointT >::convertTrianglesToMesh(), pcl::gpu::extractEuclideanClusters() и pcl::gpu::extractLabeledEuclideanClusters().

download() [3/3]

template<class T >
bool pcl::gpu::DeviceArray< T >::download ( T * host_ptr,
std::size_t device_begin_offset,
std::size_t num_elements
) const
inline

Загружает данные из внутреннего буфера в память CPU.

Возвращает
true, если загрузка выполнена успешно
Параметры
host_ptr указатель на буфер, в который загружаются данные
device_begin_offset начальная позиция загрузки
num_elements количество элементов, начиная с device_begin_offset

Определение в строке 119 файла device_array.hpp.

operator const T *()

template<class T >
pcl::gpu::DeviceArray< T >::operator const T *
inline

Возвращает указатель на внутренний буфер в памяти GPU для чтения.

Определение в строке 142 файла device_array.hpp.

operator T*()

template<class T >
pcl::gpu::DeviceArray< T >::operator T*
inline

Возвращает указатель на внутренний буфер в памяти GPU.

Определение в строке 136 файла device_array.hpp.

operator=()

template<class T >
DeviceArray< T > & pcl::gpu::DeviceArray< T >::operator= ( const DeviceArray< T > & other )
inline

Оператор присваивания.

Лишь увеличивает счётчик ссылок.

Определён в строке 65 файла device_array.hpp.

Ссылки на pcl::gpu::DeviceMemory::operator=().

ptr() [перегрузка 1/2]

template<class T >
T * pcl::gpu::DeviceArray< T >::ptr
inline

Возвращает указатель на внутренний буфер в памяти GPU.

Определён в строке 156 файла device_array.hpp.

На него ссылаются pcl::gpu::copyFieldsEx(), pcl::gpu::AsyncCopy< T >::download(), pcl::gpu::extractEuclideanClusters(), pcl::gpu::NeighborIndices::operator PtrStep< int >(), pcl::gpu::TextureBinder::TextureBinder() и pcl::gpu::AsyncCopy< T >::upload().

ptr() [перегрузка 2/2]

template<class T >
const T * pcl::gpu::DeviceArray< T >::ptr
inline

Возвращает указатель на константный внутренний буфер в памяти GPU.

Определён в строке 163 файла device_array.hpp.

release()

template<class T >
void pcl::gpu::DeviceArray< T >::release
inline

Уменьшает счётчик ссылок и при необходимости освобождает внутренний буфер.

Определён в строке 80 файла device_array.hpp.

size()

template<class T >
std::size_t pcl::gpu::DeviceArray< T >::size
inline

Возвращает размер в элементах.

Определён в строке 149 файла device_array.hpp.

На него ссылаются pcl::gpu::kinfuLS::StandaloneMarchingCubes< PointT >::convertTrianglesToMesh(), pcl::gpu::copyFieldsEx(), pcl::gpu::NeighborIndices::neighboors_size(), pcl::gpu::AsyncCopy< T >::upload() и pcl::gpu::NeighborIndices::validate().

swap()

template<class T >
void pcl::gpu::DeviceArray< T >::swap ( DeviceArray< T > & other_arg )

Обменивает данные с другим массивом устройства.

Параметры
other_arg массив устройства для обмена данными

Определён в строке 130 файла device_array.hpp.

Ссылки на pcl::gpu::DeviceMemory::swap().

upload() [перегрузка 1/3]

template<class T >
template<class A >
void pcl::gpu::DeviceArray< T >::upload ( const std::vector< T, A > & data )
inline

Загружает данные во внутренний буфер в памяти GPU.

Внутри вызывает create(), чтобы убедиться, что размер внутреннего буфера достаточен.

Параметры
data вектор в памяти хоста, из которого выполняется загрузка

Определён в строке 171 файла device_array.hpp.

upload() [перегрузка 2/3]

template<class T >
bool pcl::gpu::DeviceArray< T >::upload ( const T * host_ptr,
std::size_t device_begin_offset,
std::size_t num_elements
)
inline

Загружает данные из памяти CPU во внутренний буфер.

Возвращает
true, если загрузка выполнена успешно
Примечание
В отличие от другой функции upload, эта функция никогда не выделяет память.
Параметры
host_ptr указатель на буфер для загрузки
device_begin_offset начало загрузки
num_elements количество элементов начиная с device_bein_offset

Определён в строке 101 файла device_array.hpp.

Ссылки на pcl::gpu::DeviceMemory::upload().

upload() [перегрузка 3/3]

template<class T >
void pcl::gpu::DeviceArray< T >::upload ( const T * host_ptr,
std::size_t size
)
inline

Загружает данные во внутренний буфер в памяти GPU.

Внутри вызывает create(), чтобы убедиться, что размер внутреннего буфера достаточен.

Параметры
host_ptr указатель на буфер для загрузки
size количество элементов

Определён в строке 94 файла device_array.hpp.

На него ссылаются pcl::gpu::extractEuclideanClusters() и pcl::gpu::extractLabeledEuclideanClusters().


Документация этого класса создана на основе следующих файлов:
  • /__w/1/s/gpu/containers/include/pcl/gpu/containers/device_array.h
  • /__w/1/s/gpu/containers/include/pcl/gpu/containers/impl/device_array.hpp

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1gpu_1_1_device_array.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API