Spec-Zone.ru › PointCloudLibrary

Octree класс двойной буферизации Подробнее...

#include <pcl/octree/octree2buf_base.h>

Inheritance graph
[легенда]
Collaboration graph
[легенда]

Общедоступные типы

using OctreeT = Octree2BufBase< LeafContainerT, BranchContainerT >
using BranchNode = BufferedBranchNode< BranchContainerT >
using LeafNode = OctreeLeafNode< LeafContainerT >
using BranchContainer = BranchContainerT
using LeafContainer = LeafContainerT
using Iterator = OctreeDepthFirstIterator< OctreeT >
using ConstIterator = const OctreeDepthFirstIterator< OctreeT >
using LeafNodeIterator = OctreeLeafNodeDepthFirstIterator< OctreeT >
using ConstLeafNodeIterator = const OctreeLeafNodeDepthFirstIterator< OctreeT >
using LeafNodeDepthFirstIterator = OctreeLeafNodeDepthFirstIterator< OctreeT >
using ConstLeafNodeDepthFirstIterator = const OctreeLeafNodeDepthFirstIterator< OctreeT >
using DepthFirstIterator = OctreeDepthFirstIterator< OctreeT >
using ConstDepthFirstIterator = const OctreeDepthFirstIterator< OctreeT >
using BreadthFirstIterator = OctreeBreadthFirstIterator< OctreeT >
using ConstBreadthFirstIterator = const OctreeBreadthFirstIterator< OctreeT >
using LeafNodeBreadthIterator = OctreeLeafNodeBreadthFirstIterator< OctreeT >
using ConstLeafNodeBreadthIterator = const OctreeLeafNodeBreadthFirstIterator< OctreeT >

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

Iterator begin (uindex_t max_depth_arg=0)
const Iterator end ()
LeafNodeDepthFirstIterator leaf_depth_begin (uindex_t max_depth_arg=0)
const LeafNodeDepthFirstIterator leaf_depth_end ()
DepthFirstIterator depth_begin (uindex_t maxDepth_arg=0)
const DepthFirstIterator depth_end ()
BreadthFirstIterator breadth_begin (uindex_t max_depth_arg=0)
const BreadthFirstIterator breadth_end ()
LeafNodeBreadthIterator leaf_breadth_begin (uindex_t max_depth_arg=0u)
const LeafNodeBreadthIterator leaf_breadth_end ()
Octree2BufBase ()
Пустой конструктор. Подробнее...
virtual ~Octree2BufBase ()
Пустой деструктор. Подробнее...
Octree2BufBase (const Octree2BufBase &source)
Конструктор копирования. Подробнее...
Octree2BufBase & operator= (const Octree2BufBase &source)
Конструктор копирования. Подробнее...
void setMaxVoxelIndex (uindex_t max_voxel_index_arg)
Задать максимальное количество вокселей на измерение. Подробнее...
void setTreeDepth (uindex_t depth_arg)
Задать максимальную глубину октодерева. Подробнее...
uindex_t getTreeDepth () const
Получить максимальную глубину октодерева. Подробнее...
LeafContainerT * createLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg)
Создать новый узел-лист в точке (idx_x_arg, idx_y_arg, idx_z_arg). Подробнее...
LeafContainerT * findLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg)
Найти узел-лист в точке (idx_x_arg, idx_y_arg, idx_z_arg). Подробнее...
bool existLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg) const
Проверить наличие узла-листа в точке (idx_x_arg, idx_y_arg, idx_z_arg). Подробнее...
void removeLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg)
Удалить узел-лист в точке (idx_x_arg, idx_y_arg, idx_z_arg). Подробнее...
std::size_t getLeafCount () const
Возвращает количество существующих узлов-листьев в октодереве. Подробнее...
std::size_t getBranchCount () const
Возвращает количество существующих ветвей в октодереве. Подробнее...
void deleteTree ()
Удалить структуру октодерева и его узлы-листья. Подробнее...
void deletePreviousBuffer ()
Удалить структуру октодерева из предыдущего буфера. Подробнее...
void deleteCurrentBuffer ()
Удалить структуру октодерева из текущего буфера. Подробнее...
void switchBuffers ()
Переключить буферы и сбросить текущую структуру октодерева. Подробнее...
void serializeTree (std::vector< char > &binary_tree_out_arg, bool do_XOR_encoding_arg=false)
Сериализовать октодерево в выходной двоичный вектор, описывающий структуру его узлов-ветвей. Подробнее...
void serializeTree (std::vector< char > &binary_tree_out_arg, std::vector< LeafContainerT * > &leaf_container_vector_arg, bool do_XOR_encoding_arg=false)
Сериализовать октодерево в выходной двоичный вектор, описывающий структуру его узлов-ветвей, и добавить все элементы DataT, хранящиеся в октодереве, в вектор. Подробнее...
void serializeLeafs (std::vector< LeafContainerT * > &leaf_container_vector_arg)
Формирует вектор всех элементов DataT, хранящихся в узлах-листьях октодерева. Подробнее...
void serializeNewLeafs (std::vector< LeafContainerT * > &leaf_container_vector_arg)
Формирует вектор всех элементов DataT из узлов-листьев, отсутствующих в предыдущем буфере октодерева. Подробнее...
void deserializeTree (std::vector< char > &binary_tree_in_arg, bool do_XOR_decoding_arg=false)
Десериализовать двоичный вектор с описанием октодерева и создать соответствующую структуру октодерева. Подробнее...
void deserializeTree (std::vector< char > &binary_tree_in_arg, std::vector< LeafContainerT * > &leaf_container_vector_arg, bool do_XOR_decoding_arg=false)
Десериализовать двоичное описание октодерева и создать соответствующую структуру октодерева. Подробнее...

Защищённые функции-члены

OctreeNode * getRootNode () const
Получить корневой узел. Подробнее...
LeafContainerT * findLeaf (const OctreeKey &key_arg) const
Найти узел-лист. Подробнее...
LeafContainerT * createLeaf (const OctreeKey &key_arg)
Создать узел-лист. Подробнее...
bool existLeaf (const OctreeKey &key_arg) const
Проверить, существует ли узел-лист в октодереве. Подробнее...
void removeLeaf (const OctreeKey &key_arg)
Удалить узел-лист из октодерева. Подробнее...
bool branchHasChild (const BranchNode &branch_arg, unsigned char child_idx_arg) const
Проверить, указывает ли узел-ветвь на определённый дочерний узел. Подробнее...
OctreeNode * getBranchChildPtr (const BranchNode &branch_arg, unsigned char child_idx_arg) const
Получить указатель на дочерний узел с индексом child_idx. Подробнее...
void setBranchChildPtr (BranchNode &branch_arg, unsigned char child_idx_arg, OctreeNode *new_child_arg)
Назначить узлу-ветви новый дочерний узел. Подробнее...
char getBranchBitPattern (const BranchNode &branch_arg) const
Сформировать битовую маску, отражающую наличие указателей на дочерние узлы в текущем буфере. Подробнее...
char getBranchBitPattern (const BranchNode &branch_arg, unsigned char bufferSelector_arg) const
Сформировать битовую маску, отражающую наличие указателей на дочерние узлы в указанном буфере. Подробнее...
char getBranchXORBitPattern (const BranchNode &branch_arg) const
Сформировать битовую маску XOR, отражающую различия между двумя буферами октодерева. Подробнее...
bool hasBranchChanges (const BranchNode &branch_arg) const
Проверить, изменился ли узел-ветвь между предыдущим и текущим буферами. Подробнее...
void deleteBranchChild (BranchNode &branch_arg, unsigned char buffer_selector_arg, unsigned char child_idx_arg)
Удалить дочерний узел и все его подчинённые узлы из октодерева в указанном буфере. Подробнее...
void deleteBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg)
Удалить дочерний узел и все его подчинённые узлы из октодерева в текущем буфере. Подробнее...
void deleteBranch (BranchNode &branch_arg)
Удалить узел-ветвь и все его подчинённые узлы из октодерева (из обоих буферов). Подробнее...
BranchNode * createBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg)
Получить и добавить новый дочерний узел-ветвь к узлу-ветви в текущем буфере. Подробнее...
LeafNode * createLeafChild (BranchNode &branch_arg, unsigned char child_idx_arg)
Получить и добавить новый дочерний узел-лист к узлу-ветви. Подробнее...
uindex_t createLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg, LeafNode *&return_leaf_arg, BranchNode *&parent_of_leaf_arg, bool branch_reset_arg=false)
Создать узел-лист по ключу октодерева. Подробнее...
void findLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg, LeafContainerT *&result_arg) const
Рекурсивно найти заданный узел-лист и вернуть указатель на него. Подробнее...
bool deleteLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg)
Рекурсивно найти и удалить узел-лист. Подробнее...
void serializeTreeRecursive (BranchNode *branch_arg, OctreeKey &key_arg, std::vector< char > *binary_tree_out_arg, typename std::vector< LeafContainerT * > *leaf_container_vector_arg, bool do_XOR_encoding_arg=false, bool new_leafs_filter_arg=false)
Рекурсивно обойти октодерево и вывести его двоичное описание вместе с вектором содержимого DataT узлов-листьев. Подробнее...
void deserializeTreeRecursive (BranchNode *branch_arg, uindex_t depth_mask_arg, OctreeKey &key_arg, typename std::vector< char >::const_iterator &binary_tree_in_it_arg, typename std::vector< char >::const_iterator &binary_tree_in_it_end_arg, typename std::vector< LeafContainerT * >::const_iterator *leaf_container_vector_it_arg, typename std::vector< LeafContainerT * >::const_iterator *leaf_container_vector_it_end_arg, bool branch_reset_arg=false, bool do_XOR_decoding_arg=false)
Восстановить октодерево на основе двоичного XOR-описания октодерева и объектов DataT для инициализации узлов-листьев. Подробнее...
virtual void serializeTreeCallback (LeafContainerT &, const OctreeKey &)
Функция обратного вызова, вызываемая для данных каждого узла-листа во время сериализации. Подробнее...
virtual void deserializeTreeCallback (LeafContainerT &, const OctreeKey &)
Функция обратного вызова, вызываемая для данных каждого узла-листа во время десериализации. Подробнее...
void treeCleanUpRecursive (BranchNode *branch_arg)
Рекурсивно обойти октодерево и удалить неиспользуемые узлы-ветви и узлы-листья. Подробнее...
bool octreeCanResize ()
Проверить, может ли октодерево динамически изменять свою глубину. Подробнее...
void printBinary (char data_arg)
Вывести двоичное представление байта — используется для отладки. Подробнее...

Защищённые атрибуты

std::size_t leaf_count_ {0}
Количество узлов-листьев
Подробнее...
std::size_t branch_count_ {1}
Количество узлов-ветвей
Подробнее...
BranchNode * root_node_
Указатель на корневой узел-ветвь октодерева
Подробнее...
uindex_t depth_mask_ {0}
Маска глубины, основанная на глубине октодерева
Подробнее...
OctreeKey max_key_
Диапазон ключей Подробнее...
unsigned char buffer_selector_ {0}
Текущий активный буфер октодерева
Подробнее...
bool tree_dirty_flag_ {false}
Флаг, указывающий, могут ли в предыдущем буфере существовать неиспользуемые узлы-ветви и узлы-листья
Подробнее...
uindex_t octree_depth_ {0}
Глубина октодерева. Подробнее...
bool dynamic_depth_enabled_ {false}
Включить динамическую глубину. Подробнее...

Дружественные классы

class OctreeIteratorBase< OctreeT >
class OctreeDepthFirstIterator< OctreeT >
class OctreeBreadthFirstIterator< OctreeT >
class OctreeLeafNodeDepthFirstIterator< OctreeT >
class OctreeLeafNodeBreadthFirstIterator< OctreeT >

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

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
class pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >

Класс двойной буферизации Octree

Эта реализация octree хранит в памяти две отдельные структуры octree, что позволяет сравнивать их на предмет различий (обнаружение изменений, дифференциальное кодирование).

Примечание
Глубина дерева определяет максимальное количество вокселей octree / листовых узлов (должна быть задана изначально).
Все листовые узлы адресуются целочисленными индексами.
Глубина дерева соответствует длине индексов вокселей в битах.
Автор
Julius Kammerl (juliu.nosp@m.s@ka.nosp@m.mmerl.nosp@m..de)

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

Описание псевдонимов типов-членов

BranchContainer

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::BranchContainer = BranchContainerT

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

BranchNode

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::BranchNode = BufferedBranchNode<BranchContainerT>

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

BreadthFirstIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::BreadthFirstIterator = OctreeBreadthFirstIterator<OctreeT>

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

ConstBreadthFirstIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstBreadthFirstIterator = const OctreeBreadthFirstIterator<OctreeT>

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

ConstDepthFirstIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstDepthFirstIterator = const OctreeDepthFirstIterator<OctreeT>

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

ConstIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstIterator = const OctreeDepthFirstIterator<OctreeT>

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

ConstLeafNodeBreadthIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstLeafNodeBreadthIterator = const OctreeLeafNodeBreadthFirstIterator<OctreeT>

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

ConstLeafNodeDepthFirstIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstLeafNodeDepthFirstIterator = const OctreeLeafNodeDepthFirstIterator<OctreeT>

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

ConstLeafNodeIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstLeafNodeIterator = const OctreeLeafNodeDepthFirstIterator<OctreeT>

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

DepthFirstIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::DepthFirstIterator = OctreeDepthFirstIterator<OctreeT>

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

Iterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::Iterator = OctreeDepthFirstIterator<OctreeT>

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

LeafContainer

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafContainer = LeafContainerT

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

LeafNode

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafNode = OctreeLeafNode<LeafContainerT>

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

LeafNodeBreadthIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafNodeBreadthIterator = OctreeLeafNodeBreadthFirstIterator<OctreeT>

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

LeafNodeDepthFirstIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafNodeDepthFirstIterator = OctreeLeafNodeDepthFirstIterator<OctreeT>

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

LeafNodeIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafNodeIterator = OctreeLeafNodeDepthFirstIterator<OctreeT>

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

OctreeT

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::OctreeT = Octree2BufBase<LeafContainerT, BranchContainerT>

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

Описание конструкторов и деструкторов

Octree2BufBase() [1/2]

template<typename LeafContainerT , typename BranchContainerT >
pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::Octree2BufBase

Пустой конструктор.

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

~Octree2BufBase()

template<typename LeafContainerT , typename BranchContainerT >
pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::~Octree2BufBase
virtual

Пустой деструктор.

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

Octree2BufBase() [2/2]

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::Octree2BufBase ( const Octree2BufBase< LeafContainerT, BranchContainerT > & source )
inline

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

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

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

begin()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
Iterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::begin ( uindex_t max_depth_arg = 0 )
inline

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

branchHasChild()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
bool pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::branchHasChild ( const BranchNode & branch_arg,
unsigned char child_idx_arg
) const
inlineprotected

Проверяет, указывает ли ветвь на определённый дочерний узел.

Параметры
branch_arg ссылка на класс ветви octree
child_idx_arg индекс дочернего узла
Возвращает
«true», если указатель на дочерний узел существует; в противном случае — «false»

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

Ссылки: pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::buffer_selector_ и pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr().

breadth_begin()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
BreadthFirstIterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::breadth_begin ( uindex_t max_depth_arg = 0 )
inline

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

breadth_end()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
const BreadthFirstIterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::breadth_end ( )
inline

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

createBranchChild()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
BranchNode* pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createBranchChild ( BranchNode & branch_arg,
unsigned char child_idx_arg
)
inlineprotected

Получает и добавляет новую дочернюю ветвь к классу ветви в текущем буфере.

Параметры
branch_arg ссылка на класс ветви octree
child_idx_arg индекс дочернего узла
Возвращает
указатель на новую дочернюю ветвь для этой ссылки

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

Ссылки: pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::buffer_selector_ и pcl::octree::BufferedBranchNode< ContainerT >::setChildPtr().

createLeaf() [1/2]

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
LeafContainerT* pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeaf ( const OctreeKey & key_arg )
inlineprotected

Создает узел-лист.

Примечание
Если узел-лист в указанном узле октодерева не существует, он будет создан и добавлен в дерево.
Параметры
key_arg ключ октодерева, указывающий на узел-лист.
Возвращает
указатель на существующий или созданный контейнер узла-листа.

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

Ссылки на pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeafRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::depth_mask_, pcl::octree::OctreeLeafNode< ContainerT >::getContainerPtr() и pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::root_node_.

createLeaf() [2/2]

template<typename LeafContainerT , typename BranchContainerT >
LeafContainerT * pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeaf ( uindex_t idx_x_arg,
uindex_t idx_y_arg,
uindex_t idx_z_arg
)

Создает новый узел-лист в точке (idx_x_arg, idx_y_arg, idx_z_arg).

Примечание
Если узел-лист уже существует, этот метод возвращает существующий узел.
Параметры
idx_x_arg индекс узла-листа по оси X.
idx_y_arg индекс узла-листа по оси Y.
idx_z_arg индекс узла-листа по оси Z.
Возвращает
указатель на контейнер нового узла-листа.

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

createLeafChild()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
LeafNode* pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeafChild ( BranchNode & branch_arg,
unsigned char child_idx_arg
)
inlineprotected

Получает и добавляет новый дочерний узел-лист в класс узла-ветви.

Параметры
branch_arg ссылка на класс узла-ветви октодерева
child_idx_arg индекс дочернего узла
Возвращает
указатель на новый дочерний узел-лист для этой ссылки

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

Ссылки на pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::buffer_selector_ и pcl::octree::BufferedBranchNode< ContainerT >::setChildPtr().

createLeafRecursive()

template<typename LeafContainerT , typename BranchContainerT >
uindex_t pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeafRecursive ( const OctreeKey & key_arg,
uindex_t depth_mask_arg,
BranchNode * branch_arg,
LeafNode *& return_leaf_arg,
BranchNode *& parent_of_leaf_arg,
bool branch_reset_arg = false
)
protected

Создает узел-лист по ключу октодерева.

Если узел-лист уже существует, он возвращается.

Параметры
key_arg ссылка на ключ октодерева
depth_mask_arg маска глубины, используемая для анализа ключа октодерева и указания глубины узла-ветви
branch_arg текущий узел-ветвь
return_leaf_arg возвращаемый указатель на контейнер узла-листа
parent_of_leaf_arg возвращаемый указатель на родительский узел узла-листа
branch_reset_arg Сбросить массив указателей текущего узла-ветви
Возвращает
маску глубины, на которой узел-лист был создан или найден

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

Ссылки на pcl::octree::BRANCH_NODE, pcl::octree::OctreeKey::getChildIdxWithDepthMask(), pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr(), pcl::octree::OctreeLeafNode< ContainerT >::getContainer(), pcl::octree::OctreeNode::getNodeType(), pcl::octree::BufferedBranchNode< ContainerT >::hasChild(), pcl::octree::LEAF_NODE и pcl::octree::BufferedBranchNode< ContainerT >::setChildPtr().

На эту функцию ссылается pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeaf().

deleteBranch()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteBranch ( BranchNode & branch_arg )
inlineprotected

Удаляет узел-ветвь и все его дочерние узлы из октодерева (в обоих буферах).

Параметры
branch_arg ссылка на класс узла-ветви октодерева

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

Ссылки на pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteBranchChild(), pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr() и pcl::octree::BufferedBranchNode< ContainerT >::setChildPtr().

На эту функцию ссылается pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteBranchChild().

deleteBranchChild() [1/2]

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteBranchChild ( BranchNode & branch_arg,
unsigned char buffer_selector_arg,
unsigned char child_idx_arg
)
inlineprotected

Удаляет дочерний узел и все его дочерние узлы из октодерева в указанном буфере.

Параметры
branch_arg ссылка на класс узла-ветви октодерева
buffer_selector_arg селектор буфера
child_idx_arg индекс дочернего узла

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

Ссылки на pcl::octree::BRANCH_NODE, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteBranch(), pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr(), pcl::octree::OctreeNode::getNodeType(), pcl::octree::BufferedBranchNode< ContainerT >::hasChild(), pcl::octree::LEAF_NODE и pcl::octree::BufferedBranchNode< ContainerT >::setChildPtr().

На эту функцию ссылаются pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteBranch() и pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteBranchChild().

deleteBranchChild() [2/2]

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteBranchChild ( BranchNode & branch_arg,
unsigned char child_idx_arg
)
inlineprotected

Удаляет дочерний узел и все его дочерние узлы из октодерева в текущем буфере.

Параметры
branch_arg ссылка на класс узла-ветви октодерева
child_idx_arg индекс дочернего узла

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

Ссылки на pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::buffer_selector_ и pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteBranchChild().

deleteCurrentBuffer()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteCurrentBuffer ( )
inline

Удаляет структуру октодерева в текущем буфере.

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

Ссылки на pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::buffer_selector_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_count_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::root_node_ и pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::treeCleanUpRecursive().

deleteLeafRecursive()

template<typename LeafContainerT , typename BranchContainerT >
bool pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteLeafRecursive ( const OctreeKey & key_arg,
uindex_t depth_mask_arg,
BranchNode * branch_arg
)
protected

Рекурсивно выполняет поиск и удаление узла-листа.

Параметры
key_arg ссылка на ключ октодерева
depth_mask_arg маска глубины, используемая для анализа ключа октодерева и указания глубины узла-ветви
branch_arg текущий узел-ветвь
Возвращает
"true", если узел-ветвь не содержит дочерних элементов; в противном случае — "false". Это показывает, можно ли удалить текущий узел-ветвь.

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

Ссылки на pcl::octree::OctreeKey::getChildIdxWithDepthMask(), pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr() и pcl::octree::BufferedBranchNode< ContainerT >::hasChild().

На эту функцию ссылается pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::removeLeaf().

deletePreviousBuffer()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deletePreviousBuffer ( )
inline

Удаляет структуру октодерева предыдущего буфера.

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

Ссылки на pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::root_node_ и pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::treeCleanUpRecursive().

deleteTree()

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteTree

Удаляет структуру октодерева и его узлы-листья.

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

depth_begin()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
DepthFirstIterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::depth_begin ( uindex_t maxDepth_arg = 0 )
inline

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

depth_end()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
const DepthFirstIterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::depth_end ( )
inline

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

deserializeTree() [1/2]

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTree ( std::vector< char > & binary_tree_in_arg,
bool do_XOR_decoding_arg = false
)

Десериализует вектор с двоичным описанием октодерева и создает соответствующую структуру октодерева.

Узлы-листья инициализируются с помощью getDataTByKey(..).

Параметры
binary_tree_in_arg ссылка на входной вектор для чтения структуры двоичного дерева.
do_XOR_decoding_arg определяет, основана ли структура двоичного дерева на текущем октодереве (false) или на сравнении по XOR текущего и предыдущего октодеревьев

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

deserializeTree() [2/2]

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTree ( std::vector< char > & binary_tree_in_arg,
std::vector< LeafContainerT * > & leaf_container_vector_arg,
bool do_XOR_decoding_arg = false
)

Десериализует двоичное описание октодерева и создает соответствующую структуру октодерева.

Листовые узлы инициализируются элементами DataT из dataVector.

Параметры
binary_tree_in_arg ссылка на поток входных данных для чтения структуры двоичного дерева.
leaf_container_vector_arg вектор указателей на все объекты LeafContainerT в октодереве
do_XOR_decoding_arg указывает, основана ли структура двоичного дерева на текущем октодереве (false) или на сравнении XOR текущего и предыдущего октодеревьев

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

deserializeTreeCallback()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
virtual void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTreeCallback ( LeafContainerT & ,
const OctreeKey &
)
inlineprotectedvirtual

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

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

deserializeTreeRecursive()

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTreeRecursive ( BranchNode * branch_arg,
uindex_t depth_mask_arg,
OctreeKey & key_arg,
typename std::vector< char >::const_iterator & binary_tree_in_it_arg,
typename std::vector< char >::const_iterator & binary_tree_in_it_end_arg,
typename std::vector< LeafContainerT * >::const_iterator * leaf_container_vector_it_arg,
typename std::vector< LeafContainerT * >::const_iterator * leaf_container_vector_it_end_arg,
bool branch_reset_arg = false,
bool do_XOR_decoding_arg = false
)
protected

Восстанавливает октодерево на основе двоичного XOR-описания октодерева и объектов DataT для инициализации листовых узлов.

Параметры
branch_arg текущий узел ветвления
depth_mask_arg маска глубины, используемая для анализа ключа октодерева и указания глубины ветви
key_arg ссылка на ключ октодерева
binary_tree_in_it_arg итератор входных двоичных данных
binary_tree_in_it_end_arg
leaf_container_vector_it_arg итератор, указывающий на указатели контейнеров листьев, которые нужно добавить в листовой узел
leaf_container_vector_it_end_arg итератор, указывающий на указатели контейнеров листьев, указывающие на последний объект во входном контейнере.
branch_reset_arg Сбросить массив указателей текущей ветви
do_XOR_decoding_arg указывает, основана ли структура двоичного дерева на текущем октодереве (false) или на сравнении XOR текущего и предыдущего октодеревьев

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

Ссылки: pcl::octree::BRANCH_NODE, pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr(), pcl::octree::OctreeNode::getNodeType(), pcl::octree::BufferedBranchNode< ContainerT >::hasChild(), pcl::octree::LEAF_NODE, pcl::octree::OctreeKey::popBranch(), pcl::octree::OctreeKey::pushBranch() и pcl::octree::BufferedBranchNode< ContainerT >::setChildPtr().

end()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
const Iterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::end ( )
inline

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

existLeaf() [1/2]

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
bool pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::existLeaf ( const OctreeKey & key_arg ) const
inlineprotected

Проверяет, что листовой узел не существует в октодереве.

Параметры
key_arg ключ октодерева, задающий адрес листового узла.
Возвращает
"true", если листовой узел найден; в противном случае — "false"

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

Ссылки: pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::findLeaf().

existLeaf() [2/2]

template<typename LeafContainerT , typename BranchContainerT >
bool pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::existLeaf ( uindex_t idx_x_arg,
uindex_t idx_y_arg,
uindex_t idx_z_arg
) const

Проверяет наличие листового узла в точке (idx_x_arg, idx_y_arg, idx_z_arg).

Параметры
idx_x_arg индекс листового узла по оси X.
idx_y_arg индекс листового узла по оси Y.
idx_z_arg индекс листового узла по оси Z.
Возвращает
"true", если поиск листового узла завершился успешно; в противном случае возвращает "false".

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

findLeaf() [1/2]

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
LeafContainerT* pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::findLeaf ( const OctreeKey & key_arg ) const
inlineprotected

Находит листовой узел.

Параметры
key_arg ключ октодерева, задающий адрес листового узла.
Возвращает
указатель на контейнер листа. Если листовой узел не найден, этот указатель равен 0.

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

Ссылки: pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::depth_mask_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::findLeafRecursive() и pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::root_node_.

findLeaf() [2/2]

template<typename LeafContainerT , typename BranchContainerT >
LeafContainerT * pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::findLeaf ( uindex_t idx_x_arg,
uindex_t idx_y_arg,
uindex_t idx_z_arg
)

Находит листовой узел в точке (idx_x_arg, idx_y_arg, idx_z_arg).

Примечание
Если листовой узел уже существует, этот метод возвращает существующий узел
Параметры
idx_x_arg индекс листового узла по оси X.
idx_y_arg индекс листового узла по оси Y.
idx_z_arg индекс листового узла по оси Z.
Возвращает
указатель на контейнер листового узла, если он найден; в противном случае — нулевой указатель.

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

Используется в: pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::existLeaf().

findLeafRecursive()

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::findLeafRecursive ( const OctreeKey & key_arg,
uindex_t depth_mask_arg,
BranchNode * branch_arg,
LeafContainerT *& result_arg
) const
protected

Рекурсивно ищет заданный листовой узел и возвращает указатель на него.

Примечание
Если листовой узел не существует, возвращается нулевой указатель.
Параметры
key_arg ссылка на ключ октодерева
depth_mask_arg маска глубины, используемая для анализа ключа октодерева и указания глубины ветви
branch_arg текущий узел ветвления
result_arg указатель на класс контейнера листа

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

Ссылки: pcl::octree::OctreeKey::getChildIdxWithDepthMask(), pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr(), pcl::octree::OctreeLeafNode< ContainerT >::getContainerPtr() и pcl::octree::BufferedBranchNode< ContainerT >::hasChild().

Используется в: pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::findLeaf().

getBranchBitPattern() [1/2]

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
char pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getBranchBitPattern ( const BranchNode & branch_arg ) const
inlineprotected

Формирует битовую маску, отражающую наличие указателей на дочерние узлы в текущем буфере.

Параметры
branch_arg ссылка на класс ветви октодерева
Возвращает
один байт с информацией о дочерних узлах, представленной 8 битами

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

Ссылки: pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::buffer_selector_ и pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr().

getBranchBitPattern() [2/2]

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
char pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getBranchBitPattern ( const BranchNode & branch_arg,
unsigned char bufferSelector_arg
) const
inlineprotected

Формирует битовую маску, отражающую наличие указателей на дочерние узлы в указанном буфере.

Параметры
branch_arg ссылка на класс ветви октодерева
bufferSelector_arg селектор буфера
Возвращает
один байт с информацией о дочерних узлах, представленной 8 битами

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

Ссылки: pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr().

getBranchChildPtr()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
OctreeNode* pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getBranchChildPtr ( const BranchNode & branch_arg,
unsigned char child_idx_arg
) const
inlineprotected

Получает указатель на дочерний узел с индексом child_idx.

Параметры
branch_arg ссылка на класс ветви октодерева
child_idx_arg индекс дочернего узла
Возвращает
указатель на класс дочернего узла октодерева

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

Ссылки: pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::buffer_selector_ и pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr().

getBranchCount()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
std::size_t pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getBranchCount ( ) const
inline

Возвращает количество существующих ветвей в октодереве.

Возвращает
количество узлов ветвления.

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

Ссылки: pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::branch_count_.

getBranchXORBitPattern()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
char pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getBranchXORBitPattern ( const BranchNode & branch_arg ) const
inlineprotected

Создает битовый шаблон XOR, отражающий различия между двумя буферами октодерева.

Параметры
branch_arg ссылка на класс ветви октодерева
Возвращает
один байт с информацией о различиях XOR для 8 дочерних узлов

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

Ссылки на pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr().

Используется в pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::hasBranchChanges().

getLeafCount()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
std::size_t pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getLeafCount ( ) const
inline

Возвращает количество существующих листьев в октодереве.

Возвращает
количество зарегистрированных листовых узлов.

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

Ссылки на pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_count_.

getRootNode()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
OctreeNode* pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getRootNode ( ) const
inlineprotected

Получает корневой узел.

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

Ссылки на pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::root_node_.

getTreeDepth()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
uindex_t pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getTreeDepth ( ) const
inline

Возвращает максимальную глубину октодерева.

Возвращает
depth_arg: максимальная глубина октодерева

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

Ссылки на pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::octree_depth_.

hasBranchChanges()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
bool pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::hasBranchChanges ( const BranchNode & branch_arg ) const
inlineprotected

Проверяет, изменилась ли ветвь между предыдущим и текущим буферами.

Параметры
branch_arg ссылка на класс ветви октодерева
Возвращает
"true", если информация о дочерних узлах различается в текущем и предыдущем буферах октодерева

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

Ссылки на pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getBranchXORBitPattern().

leaf_breadth_begin()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
LeafNodeBreadthIterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_breadth_begin ( uindex_t max_depth_arg = 0u )
inline

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

Ссылки на pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::octree_depth_.

leaf_breadth_end()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
const LeafNodeBreadthIterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_breadth_end ( )
inline

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

leaf_depth_begin()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
LeafNodeDepthFirstIterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_depth_begin ( uindex_t max_depth_arg = 0 )
inline

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

leaf_depth_end()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
const LeafNodeDepthFirstIterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_depth_end ( )
inline

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

octreeCanResize()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
bool pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::octreeCanResize ( )
inlineprotected

Проверяет, может ли глубина октодерева изменяться динамически.

Это необходимо для адаптивной настройки ограничивающего параллелепипеда.

Возвращает
"false" — изменение размера невозможно из-за XOR-сериализации

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

operator=()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
Octree2BufBase& pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator= ( const Octree2BufBase< LeafContainerT, BranchContainerT > & source )
inline

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

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

Ссылки на pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::branch_count_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::buffer_selector_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::depth_mask_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::dynamic_depth_enabled_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_count_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::max_key_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::octree_depth_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::root_node_ и pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::tree_dirty_flag_.

printBinary()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::printBinary ( char data_arg )
inlineprotected

Выводит двоичное представление байта; используется для отладки.

Параметры
data_arg — байт для вывода в stdout

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

removeLeaf() [1/2]

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::removeLeaf ( const OctreeKey & key_arg )
inlineprotected

Удаляет листовой узел из октодерева.

Параметры
key_arg ключ октодерева, указывающий на листовой узел.

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

Ссылки на pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteLeafRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::depth_mask_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::max_key_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::root_node_ и pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::tree_dirty_flag_.

removeLeaf() [2/2]

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::removeLeaf ( uindex_t idx_x_arg,
uindex_t idx_y_arg,
uindex_t idx_z_arg
)

Удаляет листовой узел в точке (idx_x_arg, idx_y_arg, idx_z_arg).

Параметры
idx_x_arg индекс листового узла по оси X.
idx_y_arg индекс листового узла по оси Y.
idx_z_arg индекс листового узла по оси Z.

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

serializeLeafs()

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeLeafs ( std::vector< LeafContainerT * > & leaf_container_vector_arg )

Возвращает вектор всех элементов DataT, хранящихся в листовых узлах октодерева.

Параметры
leaf_container_vector_arg вектор указателей на все объекты LeafContainerT в октодереве

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

serializeNewLeafs()

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeNewLeafs ( std::vector< LeafContainerT * > & leaf_container_vector_arg )

Возвращает вектор всех элементов DataT из листовых узлов, отсутствующих в предыдущем буфере октодерева.

Параметры
leaf_container_vector_arg вектор указателей на все объекты LeafContainerT в октодереве

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

Используется в pcl::octree::OctreePointCloudChangeDetector< PointT, LeafContainerT, BranchContainerT >::getPointIndicesFromNewVoxels().

serializeTree() [1/2]

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTree ( std::vector< char > & binary_tree_out_arg,
bool do_XOR_encoding_arg = false
)

Сериализует октодерево в выходной двоичный вектор, описывающий структуру его ветвевых узлов.

Параметры
binary_tree_out_arg ссылка на выходной вектор для записи двоичной структуры дерева.
do_XOR_encoding_arg указывает, следует ли формировать двоичную структуру дерева на основе текущего октодерева (false) или на основе сравнения XOR текущего и предыдущего октодеревьев

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

serializeTree() [2/2]

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTree ( std::vector< char > & binary_tree_out_arg,
std::vector< LeafContainerT * > & leaf_container_vector_arg,
bool do_XOR_encoding_arg = false
)

Сериализует октодерево в выходной двоичный вектор, описывающий структуру его ветвевых узлов, и помещает все хранящиеся в октодереве элементы DataT в вектор.

Параметры
binary_tree_out_arg ссылка на выходной вектор для записи двоичной структуры дерева.
leaf_container_vector_arg указатель на все объекты LeafContainerT в октодереве
do_XOR_encoding_arg указывает, следует ли формировать двоичную структуру дерева на основе текущего октодерева (false) или на основе сравнения XOR текущего и предыдущего октодеревьев

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

serializeTreeCallback()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
virtual void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTreeCallback ( LeafContainerT & ,
const OctreeKey &
)
inlineprotectedvirtual

Функция обратного вызова, вызываемая для данных каждого листового узла во время сериализации.

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

serializeTreeRecursive()

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTreeRecursive ( BranchNode * branch_arg,
OctreeKey & key_arg,
std::vector< char > * binary_tree_out_arg,
typename std::vector< LeafContainerT * > * leaf_container_vector_arg,
bool do_XOR_encoding_arg = false,
bool new_leafs_filter_arg = false
)
protected

Рекурсивно обходит октодерево и выводит его двоичное описание вместе с вектором содержимого DataT узлов-листьев.

Параметры
branch_arg текущий узел-ветвь
key_arg ссылка на ключ октодерева
binary_tree_out_arg выходной двоичный вектор
leaf_container_vector_arg вектор для возврата указателей на все контейнеры листьев в дереве.
do_XOR_encoding_arg выбирает, следует ли создавать структуру двоичного дерева на основе текущего октодерева (false) или на основе сравнения XOR текущего и предыдущего октодеревьев
new_leafs_filter_arg выполнять callback только для узлов-листьев, отсутствовавших в предыдущем буфере

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

Ссылки: pcl::octree::BRANCH_NODE, pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr(), pcl::octree::OctreeNode::getNodeType(), pcl::octree::BufferedBranchNode< ContainerT >::hasChild(), pcl::octree::LEAF_NODE, pcl::octree::OctreeKey::popBranch() и pcl::octree::OctreeKey::pushBranch().

setBranchChildPtr()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::setBranchChildPtr ( BranchNode & branch_arg,
unsigned char child_idx_arg,
OctreeNode * new_child_arg
)
inlineprotected

Назначает ветви новый дочерний узел.

Параметры
branch_arg ссылка на класс ветви октодерева
child_idx_arg индекс дочернего узла
new_child_arg указатель на новый дочерний узел

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

Ссылки: pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::buffer_selector_ и pcl::octree::BufferedBranchNode< ContainerT >::setChildPtr().

setMaxVoxelIndex()

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::setMaxVoxelIndex ( uindex_t max_voxel_index_arg )

Задает максимальное количество вокселей на измерение.

Параметры
max_voxel_index_arg максимальное количество вокселей на измерение

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

Ссылки: pcl::octree::OctreeKey::maxDepth.

setTreeDepth()

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::setTreeDepth ( uindex_t depth_arg )

Задает максимальную глубину октодерева.

Параметры
depth_arg максимальная глубина октодерева

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

switchBuffers()

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::switchBuffers

Переключает буферы и сбрасывает текущую структуру октодерева.

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

treeCleanUpRecursive()

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::treeCleanUpRecursive ( BranchNode * branch_arg )
protected

Рекурсивно обходит октодерево и удаляет неиспользуемые узлы-ветви и узлы-листья.

Параметры
branch_arg текущий узел-ветвь

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

Ссылки: pcl::octree::BRANCH_NODE, pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr(), pcl::octree::OctreeNode::getNodeType(), pcl::octree::BufferedBranchNode< ContainerT >::hasChild() и pcl::octree::LEAF_NODE.

Используется в pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteCurrentBuffer() и pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deletePreviousBuffer().

Документация дружественных функций и связанных элементов

OctreeBreadthFirstIterator< OctreeT >

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
friend class OctreeBreadthFirstIterator< OctreeT >
friend

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

OctreeDepthFirstIterator< OctreeT >

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
friend class OctreeDepthFirstIterator< OctreeT >
friend

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

OctreeIteratorBase< OctreeT >

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
friend class OctreeIteratorBase< OctreeT >
friend

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

OctreeLeafNodeBreadthFirstIterator< OctreeT >

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
friend
friend class OctreeLeafNodeBreadthFirstIterator< OctreeT >

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

OctreeLeafNodeDepthFirstIterator< OctreeT >

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
friend
friend class OctreeLeafNodeDepthFirstIterator< OctreeT >

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

Документация данных-членов

branch_count_

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
std::size_t pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::branch_count_ {1}
protected

Количество узлов-ветвей

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

Используется в pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getBranchCount() и pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator=().

buffer_selector_

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
unsigned char pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::buffer_selector_ {0}
protected

Текущий активный буфер октодерева

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

Используется в pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::branchHasChild(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createBranchChild(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeafChild(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteBranchChild(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteCurrentBuffer(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getBranchBitPattern(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getBranchChildPtr(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator=() и pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::setBranchChildPtr().

depth_mask_

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
uindex_t pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::depth_mask_ {0}
protected

Маска глубины, основанная на глубине октодерева

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

Используется в pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeaf(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::findLeaf(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator=() и pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::removeLeaf().

dynamic_depth_enabled_

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
bool pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::dynamic_depth_enabled_ {false}
protected

Включает dynamic_depth.

Примечание
Обратите внимание, что этот параметр игнорируется в octree2buf!

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

Используется в pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator=().

leaf_count_

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
std::size_t pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_count_ {0}
protected

Количество узлов-листьев

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

Используется в pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteCurrentBuffer(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getLeafCount() и pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator=().

max_key_

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
OctreeKey pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::max_key_
protected

диапазон ключей

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

Используется в pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator=() и pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::removeLeaf().

octree_depth_

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
uindex_t pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::octree_depth_ {0}
protected

Глубина октодерева.

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

Используется в pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getTreeDepth(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_breadth_begin() и pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator=().

root_node_

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
BranchNode* pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::root_node_
protected

Указатель на корневой узел ветвления октодерева

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

Используется в: pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeaf(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteCurrentBuffer(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deletePreviousBuffer(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::findLeaf(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getRootNode(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator=() и pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::removeLeaf().

tree_dirty_flag_

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
bool pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::tree_dirty_flag_ {false}
protected

Флаг, указывающий, могут ли в предыдущем буфере существовать неиспользуемые ветви и листья

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

Используется в: pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator=() и pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::removeLeaf().


Документация для этого класса создана на основе следующих файлов:
  • pcl/octree/octree2buf_base.h
  • pcl/octree/impl/octree2buf_base.hpp

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

Spec-Zone.ru

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