Октодерево класс воксельных центроидов облака точек Подробнее...
#include <pcl/octree/octree_pointcloud_voxelcentroid.h>
| using | ConstBreadthFirstIterator = OctreeBreadthFirstIterator< const OctreeT > |
| using | FixedDepthIterator = OctreeFixedDepthIterator< OctreeT > |
| using | ConstFixedDepthIterator = OctreeFixedDepthIterator< const OctreeT > |
| using | LeafNodeBreadthFirstIterator = OctreeLeafNodeBreadthFirstIterator< OctreeT > |
| using | ConstLeafNodeBreadthFirstIterator = OctreeLeafNodeBreadthFirstIterator< const OctreeT > |
Общедоступные члены функций | |
| OctreePointCloudVoxelCentroid (const double resolution_arg) | |
| Конструктор класса OctreePointCloudVoxelCentroids. Подробнее... |
|
| ~OctreePointCloudVoxelCentroid () override=default | |
| Пустой деструктор класса. Подробнее... |
|
| void | addPointIdx (const uindex_t pointIdx_arg) override |
| Добавить объект DataT в узел листа в октодереве по ключу. Подробнее... |
|
| bool | getVoxelCentroidAtPoint (const PointT &point_arg, PointT &voxel_centroid_arg) const |
| Получить центр тяжести для одного вокселя, на который указывает PointT точка. Подробнее... |
|
| bool | getVoxelCentroidAtPoint (const index_t &point_idx_arg, PointT &voxel_centroid_arg) const |
| Получить центр тяжести для одного вокселя, на который указывает PointT точка из входного облака. Подробнее... |
|
| uindex_t | getVoxelCentroids (typename OctreePointCloud< PointT, LeafContainerT, BranchContainerT >::AlignedPointTVector &voxel_centroid_list_arg) const |
| Получить вектор PointT центроидов для всех занятых вокселей. Подробнее... |
|
| void | getVoxelCentroidsRecursive (const BranchNode *branch_arg, OctreeKey &key_arg, typename OctreePointCloud< PointT, LeafContainerT, BranchContainerT >::AlignedPointTVector &voxel_centroid_list_arg) const |
| Рекурсивно исследовать октодерево и вывести вектор PointT центроидов для всех занятых вокселей. Подробнее... |
|
|
| |
| OctreePointCloud (const double resolution_arg) | |
| Конструктор октодерева точек. Подробнее... |
|
| void | setInputCloud (const PointCloudConstPtr &cloud_arg, const IndicesConstPtr &indices_arg=IndicesConstPtr()) |
| Предоставление указателя на входной набор данных. Подробнее... |
|
| IndicesConstPtr const | getIndices () const |
| Получение указателя на вектор индексов, используемых. Подробнее... |
|
| PointCloudConstPtr | getInputCloud () const |
| Получение указателя на входное облако точек. Подробнее... |
|
| void | setEpsilon (double eps) |
| Установить точность поиска epsilon (предел погрешности) для поиска ближайших соседей. Подробнее... |
|
| double | getEpsilon () const |
| Получить точность поиска эпсилон (предел ошибки) для поиска ближайших соседей. Подробнее... |
|
| void | setResolution (double resolution_arg) |
| Установить/изменить разрешение октального разбиения. Подробнее... |
|
| double | getResolution () const |
| Получить разрешение октального разбиения. Подробнее... |
|
| uindex_t | getTreeDepth () const |
| Получить максимальную глубину октального разбиения. Подробнее... |
|
| void | addPointsFromInputCloud () |
| Добавить точки из входного облака точек в октальное разбиение. Подробнее... |
|
| void | addPointFromCloud (uindex_t point_idx_arg, IndicesPtr indices_arg) |
| Добавить точку по заданному индексу из входного облака точек в октальное разбиение. Подробнее... |
|
| void | addPointToCloud (const PointT &point_arg, PointCloudPtr cloud_arg) |
| Добавить точку одновременно в октальное разбиение и входное облако точек. Подробнее... |
|
| void | addPointToCloud (const PointT &point_arg, PointCloudPtr cloud_arg, IndicesPtr indices_arg) |
| Добавить точку одновременно в октальное разбиение и входное облако точек. Подробнее... |
|
| bool | isVoxelOccupiedAtPoint (const PointT &point_arg) const |
| Проверить, существует ли ячейка разбиения в данной точке. Подробнее... |
|
| bool | isVoxelOccupiedAtPoint (const double point_x_arg, const double point_y_arg, const double point_z_arg) const |
| Проверить, существует ли ячейка разбиения по координатам точки. Подробнее... |
|
| bool | isVoxelOccupiedAtPoint (const index_t &point_idx_arg) const |
| Проверить, существует ли ячейка разбиения по точке из входного облака. Подробнее... |
|
| void | deleteTree () |
| Удалить структуру октального разбиения и ее узлы-листья. Подробнее... |
|
| uindex_t | getOccupiedVoxelCenters (AlignedPointTVector &voxel_center_list_arg) const |
| Получить вектор PointT центров всех занятых объёмов. Подробнее... |
|
| uindex_t | getApproxIntersectedVoxelCentersBySegment (const Eigen::Vector3f &origin, const Eigen::Vector3f &end, AlignedPointTVector &voxel_center_list, float precision=0.2) |
| Получить вектор PointT центров объёмов, пересечённых отрезком прямой. Подробнее... |
|
| void | deleteVoxelAtPoint (const PointT &point_arg) |
| Удалить узел листа/объём в заданной точке. Подробнее... |
|
| void | deleteVoxelAtPoint (const index_t &point_idx_arg) |
| Удалить узел листа/объём в заданной точке из входного облака. Подробнее... |
|
| void | defineBoundingBox () |
| Проверить размеры набора данных точек и определить соответствующую ограничивающую рамку для octree. Подробнее... |
|
| void | defineBoundingBox (const double min_x_arg, const double min_y_arg, const double min_z_arg, const double max_x_arg, const double max_y_arg, const double max_z_arg) |
| Определить ограничивающую рамку для octree. Подробнее... |
|
| void | defineBoundingBox (const double max_x_arg, const double max_y_arg, const double max_z_arg) |
| Определить ограничивающую рамку для octree. Подробнее... |
|
| void | defineBoundingBox (const double cubeLen_arg) |
| Определить кубообразную ограничивающую рамку для octree. Подробнее... |
|
| void | getBoundingBox (double &min_x_arg, double &min_y_arg, double &min_z_arg, double &max_x_arg, double &max_y_arg, double &max_z_arg) const |
| Получить ограничивающую рамку для octree. Подробнее... |
|
| double | getVoxelSquaredDiameter (uindex_t tree_depth_arg) const |
| Вычисляет квадрат диаметра объёма на заданной глубине дерева. Подробнее... |
|
| double | getVoxelSquaredDiameter () const |
| Вычисляет квадрат диаметра объёма на глубине листа. Подробнее... |
|
| double | getVoxelSquaredSideLen (uindex_t tree_depth_arg) const |
| Вычисляет квадрат длины стороны куба объёма на заданной глубине дерева. Подробнее... |
|
| double | getVoxelSquaredSideLen () const |
| Вычисляет квадрат длины стороны куба объёма на уровне листа. Подробнее... |
|
| void | setTreeDepth (uindex_t max_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) 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_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 | 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) |
| Десериализовать двоичное описание октального дерева и создать соответствующую структуру октального дерева. Подробнее... |
|
Дополнительные унаследованные члены | |
|
| |
| void | expandLeafNode (LeafNode *leaf_node, BranchNode *parent_branch, unsigned char child_idx, uindex_t depth_mask) |
| Добавить точку с индексом из набора данных входного облака точек в октодерево. Подробнее... |
|
| const PointT & | getPointByIndex (uindex_t index_arg) const |
| Получить точку с индексом из набора данных входного облака точек. Подробнее... |
|
| OctreePointCloudVoxelCentroidContainer< PointT > * | findLeafAtPoint (const PointT &point_arg) const |
| Найти узел листа октодерева в заданной точке. Подробнее... |
|
| void | getKeyBitSize () |
| Определить настройку ключа октодерева и глубину октодерева на основе заданного ограничивающего прямоугольника. Подробнее... |
|
| void | adoptBoundingBoxToPoint (const PointT &point_idx_arg) |
| Увеличить ограничивающий прямоугольник/октодерево до тех пор, пока точка не подойдет. Подробнее... |
|
| bool | isPointWithinBoundingBox (const PointT &point_idx_arg) const |
| Проверяет, находится ли заданная точка внутри ограничивающего прямоугольника октодерева. Подробнее... |
|
| void | genOctreeKeyforPoint (const PointT &point_arg, OctreeKey &key_arg) const |
| Сгенерировать ключ октодерева для вокселя в заданной точке. Подробнее... |
|
| void | genOctreeKeyforPoint (const double point_x_arg, const double point_y_arg, const double point_z_arg, OctreeKey &key_arg) const |
| Сгенерировать ключ октодерева для вокселя в заданной точке. Подробнее... |
|
| virtual bool | genOctreeKeyForDataT (const index_t &data_arg, OctreeKey &key_arg) const |
| Виртуальный метод для генерации ключа октодерева для заданного индекса точки. Подробнее... |
|
| void | genLeafNodeCenterFromOctreeKey (const OctreeKey &key_arg, PointT &point_arg) const |
| Сгенерировать точку в центре вокселя узла листа. Подробнее... |
|
| void | genVoxelCenterFromOctreeKey (const OctreeKey &key_arg, uindex_t tree_depth_arg, PointT &point_arg) const |
| Сгенерировать точку в центре вокселя октодерева на заданном уровне дерева. Подробнее... |
|
| void | genVoxelBoundsFromOctreeKey (const OctreeKey &key_arg, uindex_t tree_depth_arg, Eigen::Vector3f &min_pt, Eigen::Vector3f &max_pt) const |
| Сгенерировать границы объёма ячейки octree, используя ключ octree и глубину дерева. Подробнее... |
|
| uindex_t | getOccupiedVoxelCentersRecursive (const BranchNode *node_arg, const OctreeKey &key_arg, AlignedPointTVector &voxel_center_list_arg) const |
| Рекурсивно искать все узлы листа в дереве и вернуть вектор центров ячеек. Подробнее... |
|
|
| |
| LeafContainerT * | createLeaf (const OctreeKey &key_arg) |
| Создать узел листа. Подробнее... |
|
| LeafContainerT * | findLeaf (const OctreeKey &key_arg) const |
| Найти узел листа. Подробнее... |
|
| bool | existLeaf (const OctreeKey &key_arg) const |
| Проверить существование узла листа в octree. Подробнее... |
|
| void | removeLeaf (const OctreeKey &key_arg) |
| Удалить узел листа из octree. Подробнее... |
|
| OctreeNode * | getRootNode () const |
| Получить корневой узел. Подробнее... |
|
| 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 |
| Сгенерировать битовую схему, отражающую существование указателей на узлы-потомки. Подробнее... |
|
| void | deleteBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg) |
| Удалить узел-потомок и все его подпотомки из octree. Подробнее... |
|
| 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) |
| Создать узел-лист в ключе октодерева. Подробнее... |
|
| 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 (const BranchNode *branch_arg, OctreeKey &key_arg, std::vector< char > *binary_tree_out_arg, typename std::vector< LeafContainerT * > *leaf_container_vector_arg) const |
| Рекурсивно обходят октодерево и выводят описание октодерева в бинарном формате вместе с вектором узлов-листов 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 |
| Проверить, может ли октодерево динамически изменять свою глубину. Подробнее... |
|
| |
| PointCloudConstPtr | input_ |
| Указатель на входной набор данных облака точек. Подробнее... |
|
| IndicesConstPtr | indices_ |
| Указатель на вектор индексов точек для использования. Подробнее... |
|
| double | epsilon_ |
| Точность эпсилон (предел ошибки) для поиска ближайших соседей. Подробнее... |
|
| double | resolution_ |
| Разрешение октодерева. Подробнее... |
|
| double | min_x_ |
| double | max_x_ |
| double | min_y_ |
| double | max_y_ |
| double | min_z_ |
| double | max_z_ |
| bool | bounding_box_defined_ |
| Флаг, указывающий, определена ли у октодерева граница ограничивающего прямоугольника. Подробнее... |
|
| std::size_t | max_objs_per_leaf_ |
| Количество объектов DataT на узел листа перед расширением ветви. Подробнее... |
|
|
| |
| std::size_t | leaf_count_ |
| Количество узлов листа Подробнее... |
|
| std::size_t | branch_count_ |
| Количество узлов ветви Подробнее... |
|
| BranchNode * | root_node_ |
| Указатель на корневой узел ветви октодерева Подробнее... |
|
| uindex_t | depth_mask_ |
| Маска глубины, основанная на глубине октодерева Подробнее... |
|
| uindex_t | octree_depth_ |
| Глубина ок-дерева. Подробнее... |
|
| bool | dynamic_depth_enabled_ |
| Включить dynamic_depth. Подробнее... |
|
| OctreeKey | max_key_ |
| Диапазон ключей Подробнее... |
|
Подробное описание
шаблон<typename PointT, typename LeafContainerT = OctreePointCloudVoxelCentroidContainer<PointT>, typename BranchContainerT = OctreeContainerEmpty>
класс pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >
Класс для вычисления центроидов объёмов ок-дерева облака точек.
- Примечание
- Этот класс создаёт ок-дерево из облака точек (без копирования). Он предоставляет вектор центроидов всех занятых объёмов.
- Ок-дерево облака точек инициализируется разрешением объёма. Его ограничивающая коробка автоматически подстраивается или может быть задана заранее.
- Шаблонные параметры
-
PointT тип точки, используемой в облаке точек
Определение в строке 133 файла octree_pointcloud_voxelcentroid.h.
Документация по определению типа члена
BranchNode
| используется pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::BranchNode = typename OctreeT::BranchNode |
Определение в строке 142 файла octree_pointcloud_voxelcentroid.h.
ConstPtr
| используется pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::ConstPtr = shared_ptr<const OctreePointCloudVoxelCentroid<PointT, LeafContainerT> > |
Определение в строке 137 файла octree_pointcloud_voxelcentroid.h.
LeafNode
| используется pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::LeafNode = typename OctreeT::LeafNode |
Определение в строке 141 файла octree_pointcloud_voxelcentroid.h.
OctreeT
| используется pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::OctreeT = OctreePointCloud<PointT, LeafContainerT, BranchContainerT> |
Определение в строке 140 файла octree_pointcloud_voxelcentroid.h.
Ptr
| используется pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::Ptr = shared_ptr<OctreePointCloudVoxelCentroid<PointT, LeafContainerT> > |
Определение в строке 136 файла octree_pointcloud_voxelcentroid.h.
Документация по конструктору и деструктору
OctreePointCloudVoxelCentroid()
| inline |
Конструктор класса OctreePointCloudVoxelCentroids.
- Параметры
-
[in] resolution_arg разрешение ок-дерева на нижнем уровне ок-дерева
Определение в строке 147 файла octree_pointcloud_voxelcentroid.h.
~OctreePointCloudVoxelCentroid()
| overridedefault |
Пустой деструктор класса.
Документация по членам-функциям
addPointIdx()
| inlineoverridevirtual |
Добавление объекта DataT в узел листа по ключу ок-дерева.
- Параметры
-
pointIdx_arg
Реализация из pcl::octree::OctreePointCloud< PointT, OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >.
Определение в строке 159 файла octree_pointcloud_voxelcentroid.h.
getVoxelCentroidAtPoint() [1/2]
| inline |
Получение центральной точки для отдельного вокселя, заданного точкой PointT из входного облака.
- Параметры
-
[in] point_idx_arg индекс точки из входного облака, указывающий на воксель в ок-дереве [out] voxel_centroid_arg центральная точка записывается в эту ссылку на PointT
- Возвращает
- "true", если воксель найден; "false" в противном случае
Определение в строке 193 файла octree_pointcloud_voxelcentroid.h.
getVoxelCentroidAtPoint() [2/2]
|
Получение центральной точки для отдельного вокселя, заданного точкой.
- Параметры
-
[in] point_arg точка, указывающая на воксель в ок-дереве [out] voxel_centroid_arg центральная точка записывается в эту ссылку на PointT
- Возвращает
- "true", если воксель найден; "false" в противном случае
Определение в строке 55 файла octree_pointcloud_voxelcentroid.hpp.
getVoxelCentroids()
| pcl::uindex_t pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::getVoxelCentroids | ( | typename OctreePointCloud< PointT, LeafContainerT, BranchContainerT >::AlignedPointTVector & | voxel_centroid_list_arg | ) | const |
Получение вектора PointT центральных точек для всех занятых вокселей.
- Параметры
-
[out] voxel_centroid_list_arg результаты записываются в этот вектор элементов PointT
- Возвращает
- количество занятых вокселей
Определение в строке 74 файла octree_pointcloud_voxelcentroid.hpp.
getVoxelCentroidsRecursive()
| void pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >::getVoxelCentroidsRecursive | ( | const BranchNode * | branch_arg, |
| OctreeKey & | key_arg, | ||
| typename OctreePointCloud< PointT, LeafContainerT, BranchContainerT >::AlignedPointTVector & | voxel_centroid_list_arg | ||
| ) | const |
Рекурсивно исследует октальное дерево и выводит вектор PointT центроидов для всех занятых объёмов.
- Параметры
-
[in] branch_arg текущий узел ветви [in] key_arg текущий ключ [out] voxel_centroid_list_arg результаты записываются в этот вектор элементов PointT
Определение в строке 94 файла octree_pointcloud_voxelcentroid.hpp.
Ссылки на pcl::octree::BRANCH_NODE, pcl::octree::OctreeBranchNode< ContainerT >::getChildPtr(), pcl::octree::OctreeLeafNode< ContainerT >::getContainer(), pcl::octree::OctreeNode::getNodeType(), pcl::octree::OctreeBranchNode< ContainerT >::hasChild(), pcl::octree::LEAF_NODE, pcl::octree::OctreeKey::popBranch(), и pcl::octree::OctreeKey::pushBranch().
Документация для этого класса была сгенерирована из следующих файлов:
- pcl/octree/octree_pointcloud_voxelcentroid.h
- pcl/octree/impl/octree_pointcloud_voxelcentroid.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1octree_1_1_octree_point_cloud_voxel_centroid.html