Spec-Zone.ru › PointCloudLibrary

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

#include <pcl/octree/octree2buf_base.h>

Inheritance graph
[legend]
Collaboration graph
[legend]

Открытые типы

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 >

Публичные члены-функции

Итератор begin (uindex_t max_depth_arg=0)
const Итератор 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)
Получение и добавление нового дочернего узла типа branch к узлу типа branch в текущем буфере. Подробнее...
LeafNode * createLeafChild (BranchNode &branch_arg, unsigned char child_idx_arg)
Получение и добавление нового дочернего узла типа leaf к узлу типа branch. Подробнее...
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)
Создание узла типа leaf по ключу octree. Подробнее...
void findLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg, LeafContainerT *&result_arg) const
Рекурсивный поиск узла типа leaf и возврат указателя на него. Подробнее...
bool deleteLeafRecursive (const OctreeKey &key_arg, uindex_t depth_mask_arg, BranchNode *branch_arg)
Рекурсивный поиск и удаление узла типа leaf. Подробнее...
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)
Рекурсивное обход дерева octree и вывод двоичного описания octree вместе с вектором содержимого узлов типа leaf. Подробнее...
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)
Восстановление дерева octree на основе двоичного описания octree с XOR и объектов DataT для инициализации узлов типа leaf. Подробнее...
virtual void serializeTreeCallback (LeafContainerT &, const OctreeKey &)
Обратный вызов, выполняемый для каждого узла типа leaf во время сериализации. Подробнее...
virtual void deserializeTreeCallback (LeafContainerT &, const OctreeKey &)
Обратный вызов, выполняемый для каждого узла типа leaf во время десериализации. Подробнее...
void treeCleanUpRecursive (BranchNode *branch_arg)
Рекурсивный обход дерева octree и удаление неиспользуемых узлов branch и leaf. Подробнее...
bool octreeCanResize ()
Проверка возможности динамического изменения глубины octree. Подробнее...
void printBinary (char data_arg)
Вывод двоичного представления байта — используется для отладки. Подробнее...

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

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

Друзья

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

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

шаблон<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
класс pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >

Класс двойного буфера octree

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

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

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

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

BranchContainer

шаблон<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
используя pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::BranchContainer = BranchContainerT

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

BranchNode

шаблон<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
используя 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

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

Определение в строке 59 файла 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 ссылка на класс ветви октодерева
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 ссылка на класс ветви октодерева
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.
Возвращает
указатель на новый контейнер листа узла.

Определение в строке 120 файла 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 ссылка на класс ветви octree
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

Создание узла листа в ключе octree.

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

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

Определение в строке 357 файла 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

Удаление ветви и всех ее дочерних элементов из octree (оба буфера)

Параметры
branch_arg ссылка на класс ветви octree

Определение в строке 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" в противном случае. Это указывает, можно ли удалить текущую ветвь.

Определение в строке 504 файла 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

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

Определение в строке 162 файла 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 выбрать, основана ли структура двоичного дерева на текущем октодереве (ложно) или на основе XOR-сравнения между текущим и предыдущим октодеревом

Определение в строке 270 файла 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 выбрать, основана ли структура двоичного дерева на текущем октодереве (ложно) или на основе XOR-сравнения между текущим и предыдущим октодеревом

Определение в строке 299 файла 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 между текущим и предыдущим октальным деревом

Определение в строке 641 файла 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".

Определение в строке 134 файла 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 ключ octree, определяющий узел листа.
Возвращает
указатель на контейнер листа. Если узел листа не найден, возвращается 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.
Возвращает
указатель на контейнер узла листа, если найден, иначе нулевой указатель.

Определение в строке 106 файла 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

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

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

Определение в строке 468 файла 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 ссылка на класс ветви octree
Возвращает
один байт с 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 ссылка на класс ветви ок-дерева
Возвращает
один байт с 8 битами информации о различиях XOR дочерних узлов

Определение в строке 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 — байт, который нужно вывести в стандартный вывод

Определение в строке 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.

Определение в строке 148 файла 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 в ок-дереве

Определение в строке 250 файла 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 в ок-дереве

Определение в строке 338 файла 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 между текущим и предыдущим ок-деревом.

Определение в строке 203 файла 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 между текущим и предыдущим ок-деревом.

Определение в строке 222 файла 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

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

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

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

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.

setMaxVoxelIndex()

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

Установите максимальное количество объёмов на каждую ось.

Параметры
max_voxel_index_arg максимальное количество объёмов на каждую ось

Определение в строке 69 файла 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 максимальная глубина октодерева

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

switchBuffers()

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

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

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

treeCleanUpRecursive()

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

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

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

Определение в строке 789 файла 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 class OctreeLeafNodeBreadthFirstIterator< OctreeT >
friend

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

OctreeLeafNodeDepthFirstIterator< OctreeT >

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

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

Данные члена документации

branch_count_

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
std::size_t pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::branch_count_
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_
protected

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

Определение в строке 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_
protected

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

Определение в строке 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_
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_
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_
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_
protected

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

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

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


The documentation for this class was generated from the following files:
  • 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