Spec-Zone.ru › PointCloudLibrary
Класс Octree. Подробнее...
#include <pcl/octree/octree_base.h >
Создать новый лист узла в (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) const
Найти узел листа в (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_x_arg, idx_y_arg, idx_z_arg). Подробнее...
void
serializeTree (std::vector< char > &binary_tree_out_arg) const
Сериализует ок-дерево в бинарный выходной вектор, описывающий его структуру узлов ветвления. Подробнее...
void
serializeTree (std::vector< char > &binary_tree_out_arg, std::vector< LeafContainerT * > &leaf_container_vector_arg) const
Сериализует ок-дерево в бинарный выходной вектор, описывающий его структуру узлов ветвления, и помещает все элементы LeafContainerT, хранящиеся в ок-дереве, в вектор. Подробнее...
void
serializeLeafs (std::vector< LeafContainerT * > &leaf_container_vector_arg)
Выводит вектор всех элементов LeafContainerT, хранящихся в узлах листа ок-дерева. Подробнее...
void
deserializeTree (std::vector< char > &binary_tree_input_arg)
Десериализует бинарный вектор описания ок-дерева и создает соответствующую структуру ок-дерева. Подробнее...
void
deserializeTree (std::vector< char > &binary_tree_input_arg, std::vector< LeafContainerT * > &leaf_container_vector_arg)
Десериализовать описание бинарного октодерева и создать соответствующую структуру октодерева. Подробнее...
Рекурсивно исследует октодерево и выводит двоичное описание октодерева вместе со списком узлов листьев LeafContainerTs. Подробнее...
void
deserializeTreeRecursive (BranchNode *branch_arg, uindex_t depth_mask_arg, OctreeKey &key_arg, typename std::vector< char >::const_iterator &binary_tree_input_it_arg, typename std::vector< char >::const_iterator &binary_tree_input_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)
Рекурсивный метод для десериализации структуры октодерева. Подробнее...
virtual void
serializeTreeCallback (LeafContainerT &, const OctreeKey &) const
Обратный вызов, выполняемый для каждого узла листа во время сериализации. Подробнее...
virtual void
deserializeTreeCallback (LeafContainerT &, const OctreeKey &)
Обратный вызов, выполняемый для каждого листового узла во время десериализации. Подробнее...
bool
octreeCanResize () const
Проверка возможности динамического изменения глубины ок-дерева. Подробнее...
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty> class pcl::octree::OctreeBase< LeafContainerT, BranchContainerT > Класс Octree.
Примечание
Глубина дерева определяет максимальное количество ячеек октодерева / узлов листа (должно быть определено изначально). Все узлы листа адресованы целочисленными индексами. Глубина дерева эквивалентна длине в битах индексов ячеек.
Автор
Julius Kammerl (juliu.nosp@m. s@ka.nosp@m. mmerl.nosp@m. .de )
Определение в строке 62 файла octree_base.h .
BranchContainer template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
BranchNode template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
ИтераторBreadthFirst template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
ПостоянныйИтераторBreadthFirst template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
ConstDepthFirstIterator template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
ConstFixedDepthIterator template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
ConstIterator template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
ConstLeafNodeBreadthFirstIterator template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
ConstLeafNodeDepthFirstIterator template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
ConstLeafNodeIterator template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
Итератор глубины template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
Итератор с фиксированной глубиной template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
Итератор template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
Контейнер листов template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
УзелЛиста template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
Итератор узлов листа в ширину template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
LeafNodeDepthFirstIterator template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
LeafNodeIterator template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
OctreeT template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
OctreeBase() [1/2]
template<typename LeafContainerT , typename BranchContainerT >
~OctreeBase() template<typename LeafContainerT , typename BranchContainerT >
OctreeBase() [2/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
begin() [1/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
begin() [2/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
branchHasChild() template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
breadth_begin() [1/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
breadth_begin() [2/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
breadth_end() [1/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
breadth_end() [2/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
cbegin() template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
cend() template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
createBranchChild() template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
Создать и добавить новый дочерний узел ветви к классу ветви.
Параметры
branch_arg
ссылка на класс ветви octree
child_idx_arg
индекс дочернего узла
Возвращает
указатель на новый дочерний узел ветви для этой ссылки
Определение в строке 640 файла octree_base.h .
createLeaf() [1/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
createLeaf() [2/2]
template<typename LeafContainerT , typename BranchContainerT >
createLeafChild() template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
Создать и добавить новый лист-дочерний элемент к ветви.
Параметры
branch_arg
ссылка на класс ветви octree
child_idx_arg
индекс дочернего узла
Возвращает
указатель на новый лист-дочерний элемент к этой ссылке
Определение в строке 654 файла octree_base.h .
createLeafRecursive() template<typename LeafContainerT , typename BranchContainerT >
deleteBranch() template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
deleteBranchChild() template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
deleteLeafRecursive() template<typename LeafContainerT , typename BranchContainerT >
Рекурсивный поиск и удаление листового узла.
Параметры
key_arg
ссылка на ключ октодерева
depth_mask_arg
маска глубины, используемая для анализа ключа октодерева и указателя глубины ветви
branch_arg
текущий узел ветви
Возвращает
"true", если текущая ветвь содержит дочерний узел(ы); "false", в противном случае. Если значение "true", текущая ветвь не может быть удалена.
Определение в строке 383 файла octree_base.hpp .
Используется в pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::removeLeaf() .
deleteTree() template<typename LeafContainerT , typename BranchContainerT >
Удалить структуру октодерева и его узлы листа.
Определение в строке 161 файла octree_base.hpp .
depth_begin() [1/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
depth_begin() [2/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
depth_end() [1/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
depth_end() [2/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
deserializeTree() [1/2]
template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::OctreeBase < LeafContainerT, BranchContainerT >::deserializeTree ( std::vector< char > & binary_tree_input_arg
)
Десериализация вектора описания двоичного октодерева и создание соответствующей структуры октодерева.
Узлы-листья инициализируются с помощью getDataTByKey(..).
Параметры
binary_tree_input_arg
ссылка на входной вектор для чтения структуры двоичного дерева.
Определение в строке 228 файла octree_base.hpp .
deserializeTree() [2/2]
template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::OctreeBase < LeafContainerT, BranchContainerT >::deserializeTree ( std::vector< char > &
binary_tree_input_arg , std::vector< LeafContainerT * > &
leaf_container_vector_arg )
Десериализовать описание бинарного октального дерева и создать соответствующую структуру октального дерева.
Листовые узлы инициализируются элементами LeafContainerT из данных dataVector.
Параметры
binary_tree_input_arg
ссылка на входной вектор для чтения структуры бинарного дерева.
leaf_container_vector_arg
указатель на вектор контейнера.
Определение в строке 252 файла octree_base.hpp .
deserializeTreeCallback() template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
Обработчик, выполняемый для каждого листового узла во время десериализации.
Определение в строке 762 файла octree_base.h .
deserializeTreeRecursive() template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::OctreeBase < LeafContainerT, BranchContainerT >::deserializeTreeRecursive (
BranchNode *
branch_arg ,
uindex_t
depth_mask_arg ,
OctreeKey &
key_arg , typename std::vector< char >::const_iterator &
binary_tree_input_it_arg , typename std::vector< char >::const_iterator &
binary_tree_input_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 )
protected
Рекурсивный метод для десериализации структуры октодерева.
Параметры
branch_arg
текущий узел ветви
depth_mask_arg
маска глубины, используемая для анализа ключа октодерева и индикатора глубины ветви
key_arg
ссылка на ключ октодерева
binary_tree_input_it_arg
итератор на вектор двоичного входного значения
binary_tree_input_it_end_arg
конечный итератор вектора двоичного входного значения
leaf_container_vector_it_arg
итератор, указывающий на текущий объект LeafContainerT, который нужно добавить в лист
leaf_container_vector_it_end_arg
итератор, указывающий на последний объект во входном векторе LeafContainerT.
Определение в строке 492 файла octree_base.hpp .
Ссылки на pcl::octree::OctreeKey::popBranch() и pcl::octree::OctreeKey::pushBranch() .
end() [1/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
end() [2/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
existLeaf() [1/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
existLeaf() [2/2]
template<typename LeafContainerT , typename BranchContainerT >
idx_x_arg для проверки существования узла листа по координатам (idx_x_arg, idx_y_arg, idx_z_arg).
Parameters
idx_x_arg
индекс узла листа по оси X.
idx_y_arg
индекс узла листа по оси Y.
idx_z_arg
индекс узла листа по оси Z.
Returns
"true", если узел листа найден, иначе возвращает "false".
Definition at line 133 of file octree_base.hpp .
findLeaf() [1/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
findLeaf() [2/2]
template<typename LeafContainerT , typename BranchContainerT >
Поиск узла листа по координатам (idx_x_arg, idx_y_arg, idx_z_arg).
Примечание
Если узел листа уже существует, этот метод возвращает существующий узел.
Параметры
idx_x_arg
индекс узла листа по оси X.
idx_y_arg
индекс узла листа по оси Y.
idx_z_arg
индекс узла листа по оси Z.
Возвращает
указатель на контейнер узла листа, если найден, в противном случае — нулевой указатель.
Определение в строке 105 файла octree_base.hpp .
Используется в pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::existLeaf() .
findLeafRecursive() template<typename LeafContainerT , typename BranchContainerT >
Рекурсивный поиск заданного листового узла и возврат указателя.
Примечание
Если листовой узел не существует, возвращается указатель 0.
Параметры
key_arg
ссылка на ключ октодерева
depth_mask_arg
маска глубины, используемая для анализа ключа октодерева и для индикации глубины ветви
branch_arg
текущий узел ветви
result_arg
указатель на класс листового узла
Определение в строке 345 файла octree_base.hpp .
Используется в pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::findLeaf() .
fixed_depth_begin() [1/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
fixed_depth_begin() [2/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
fixed_depth_end() [1/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
fixed_depth_end() [2/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
getBranchBitPattern() template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
getBranchChildPtr() template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
getBranchCount() template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
getLeafCount() template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
getRootNode() template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
getTreeDepth() template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
END_OF_DOCUMENT_MARKER leaf_breadth_begin() [1/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
leaf_breadth_begin() [2/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
leaf_breadth_end() [1/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
leaf_breadth_end() [2/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
leaf_depth_begin() [1/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
leaf_depth_begin() [2/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
leaf_depth_end() [1/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
leaf_depth_end() [2/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
octreeCanResize() template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
Проверка возможности динамического изменения глубины октального дерева.
Это необходимо для адаптивного изменения границ ограничивающего ящика.
Возвращает
"true"
Определение в строке 774 файла octree_base.h .
operator=() template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
Оператор копирования.
Определение в строке 329 файла octree_base.h .
Ссылки на pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::branch_count_ , pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::depth_mask_ , pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::dynamic_depth_enabled_ , pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::leaf_count_ , pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::max_key_ , pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::octree_depth_ , и pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::root_node_ .
removeLeaf() [1/2]
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
removeLeaf() [2/2]
template<typename LeafContainerT , typename BranchContainerT >
Удалить лист узла в позиции (idx_x_arg, idx_y_arg, idx_z_arg).
Параметры
idx_x_arg
Индекс узла листа по оси X.
idx_y_arg
Индекс узла листа по оси Y.
idx_z_arg
Индекс узла листа по оси Z.
Определение в строке 147 файла octree_base.hpp .
serializeLeafs() template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::OctreeBase < LeafContainerT, BranchContainerT >::serializeLeafs ( std::vector< LeafContainerT * > & leaf_container_vector_arg
)
Выводит вектор всех элементов LeafContainerT, хранящихся в узлах листьев ок-дерева.
Parameters
leaf_container_vector_arg
указатели на вектор LeafContainerT, который получает копию всех объектов LeafContainerT в ок-дереве.
Определение в строке 212 файла octree_base.hpp .
serializeTree() [1/2]
template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::OctreeBase < LeafContainerT, BranchContainerT >::serializeTree ( std::vector< char > & binary_tree_out_arg
) const
Сериализация ок-дерева в двоичный вектор вывода, описывающий его структуру узлов ветвления.
Parameters
binary_tree_out_arg
ссылка на выходной вектор для записи структуры двоичного дерева.
Определение в строке 175 файла octree_base.hpp .
serializeTree() [2/2]
template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::OctreeBase < LeafContainerT, BranchContainerT >::serializeTree ( std::vector< char > &
binary_tree_out_arg , std::vector< LeafContainerT * > &
leaf_container_vector_arg )
const
Сериализует дерево октального разбиения в вектор двоичных данных, описывающий структуру узлов ветвления, и помещает все элементы LeafContainerT, хранящиеся в дереве октального разбиения, в вектор.
Parameters
binary_tree_out_arg
ссылка на выходной вектор для записи структуры двоичного дерева.
leaf_container_vector_arg
указатель на все объекты LeafContainerT в дереве октального разбиения
Определение в строке 191 файла octree_base.hpp .
serializeTreeCallback() template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
Обратный вызов, выполняемый для каждого узла листа во время сериализации.
Определение в строке 756 файла octree_base.h .
serializeTreeRecursive() template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::OctreeBase < LeafContainerT, BranchContainerT >::serializeTreeRecursive ( const BranchNode *
branch_arg ,
OctreeKey &
key_arg , std::vector< char > *
binary_tree_out_arg , typename std::vector< LeafContainerT * > *
leaf_container_vector_arg )
const
protected
Рекурсивно исследует октальное дерево и выводит двоичное описание октального дерева вместе с вектором узлов листа LeafContainerTs.
Параметры
branch_arg
текущий узел ветви
key_arg
ссылка на ключ октального дерева
binary_tree_out_arg
вектор двоичного вывода
leaf_container_vector_arg
записывает указатели LeafContainerT в этот вектор LeafContainerT*.
Определение в строке 435 файла octree_base.hpp .
setBranchChildPtr() template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
Присвоить новый дочерний узел ветви.
Параметры
branch_arg
ссылка на класс ветви octree
child_idx_arg
индекс дочернего узла
new_child_arg
указатель на новый дочерний узел
Определение в строке 565 файла octree_base.h .
Установить максимальный индекс вокселя() template<typename LeafContainerT , typename BranchContainerT >
setTreeDepth() template<typename LeafContainerT , typename BranchContainerT >
OctreeBreadthFirstIterator< const OctreeT > template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
OctreeBreadthFirstIterator< OctreeT > template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
OctreeDepthFirstIterator< const OctreeT > template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
OctreeDepthFirstIterator< OctreeT > template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
OctreeFixedDepthIterator< const OctreeT > template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
OctreeFixedDepthIterator< OctreeT > template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
OctreeIteratorBase< const OctreeT > template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
OctreeIteratorBase< OctreeT > template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
OctreeLeafNodeBreadthFirstIterator< const OctreeT > template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
OctreeLeafNodeBreadthFirstIterator< OctreeT > template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
OctreeLeafNodeDepthFirstIterator< const OctreeT > template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
OctreeLeafNodeDepthFirstIterator< OctreeT > template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
branch_count_ template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
depth_mask_ template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
dynamic_depth_enabled_ template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
leaf_count_ template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
max_key_ template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
octree_depth_ template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
root_node_ template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
Документация для этого класса сгенерирована из следующих файлов: