Это очень специализированный и простой класс октодерева. Подробнее...
#include <pcl/recognition/ransac_based/orr_octree.h>
Классы | |
| class | Node |
Общедоступные типы | |
| using | PointCloudIn = pcl::PointCloud< pcl::PointXYZ > |
| using | PointCloudOut = pcl::PointCloud< pcl::PointXYZ > |
| using | PointCloudN = pcl::PointCloud< pcl::Normal > |
Общедоступные функции-члены | |
| ORROctree () | |
| virtual | ~ORROctree () |
| void | clear () |
| void | build (const PointCloudIn &points, float voxel_size, const PointCloudN *normals=nullptr, float enlarge_bounds=0.00001f) |
| Создает октодерево, которое охватывает точки «points» и имеет размер листа, равный «voxel_size». Подробнее... |
|
| void | build (const float *bounds, float voxel_size) |
| Создает пустое октодерево с границами не меньше переданных на вход и размером листа, равным «voxel_size». Подробнее... |
|
| ORROctree::Node * | createLeaf (float x, float y, float z) |
| Создает лист, содержащий p = (x, y, z), и возвращает указатель на него, но только если p находится внутри границ октодерева! Более общий вариант, допускающий выход p за границы, пока не реализован. Подробнее... |
|
| void | getFullLeavesIntersectedBySphere (const float *p, float radius, std::list< ORROctree::Node * > &out) const |
| Этот метод возвращает надмножество заполненных листьев, пересекаемых сферой радиуса «radius» с центром в точке «p». Подробнее... |
|
| ORROctree::Node * | getRandomFullLeafOnSphere (const float *p, float radius) const |
| Случайным образом выбирает и возвращает заполненный лист, пересекаемый сферой с центром «p» и радиусом «radius». Подробнее... |
|
| ORROctree::Node * | getLeaf (int i, int j, int k) |
| Поскольку листья выровнены по прямоугольной сетке, каждый лист имеет уникальный идентификатор. Подробнее... |
|
| ORROctree::Node * | getLeaf (float x, float y, float z) |
| Возвращает указатель на лист, содержащий p = (x, y, z), или NULL, если такого листа нет. Подробнее... |
|
| void | deleteBranch (Node *node) |
| Удаляет ветвь, частью которой является «node». Подробнее... |
|
| std::vector< ORROctree::Node * > & | getFullLeaves () |
| Возвращает вектор со всеми листьями октодерева, содержащими хотя бы одну точку. Подробнее... |
|
| const std::vector< ORROctree::Node * > & | getFullLeaves () const |
| void | getFullLeavesPoints (PointCloudOut &out) const |
| void | getNormalsOfFullLeaves (PointCloudN &out) const |
| ORROctree::Node * | getRoot () |
| const float * | getBounds () const |
| void | getBounds (float b[6]) const |
| float | getVoxelSize () const |
| void | insertNeighbors (Node *node) |
Защищенные атрибуты | |
| float | voxel_size_ {-1.0} |
| float | bounds_ [6] |
| int | tree_levels_ {-1} |
| Node * | root_ {nullptr} |
| std::vector< Node * > | full_leaves_ |
Подробное описание
Это очень специализированный и простой класс октодерева.
Так и задумано, поэтому здесь нет шаблонов и тому подобного.
Определение в строке 68 файла orr_octree.h.
Документация псевдонимов типов-членов
PointCloudIn
Определение в строке 71 файла orr_octree.h.
PointCloudN
Определение в строке 73 файла orr_octree.h.
PointCloudOut
Определение в строке 72 файла orr_octree.h.
Документация конструкторов и деструкторов
ORROctree()
| pcl::recognition::ORROctree::ORROctree | ( | ) |
~ORROctree()
| inlinevirtual |
Определение в строке 269 файла orr_octree.h.
Документация функций-членов
build() [перегрузка 1/2]
| void pcl::recognition::ORROctree::build | ( | const float * | bounds, |
| float | voxel_size | ||
| ) |
Создает пустое октодерево с границами не меньше переданных на вход и размером листа, равным «voxel_size».
build() [перегрузка 2/2]
| void pcl::recognition::ORROctree::build | ( | const PointCloudIn & | points, |
| float | voxel_size, | ||
| const PointCloudN * |
normals = nullptr, | ||
| float |
enlarge_bounds = 0.00001f | ||
| ) |
Создает октодерево, которое охватывает точки «points» и имеет размер листа, равный «voxel_size».
Параметр «enlarge_bounds» гарантирует, что точки входных данных не будут лежать на границе октодерева: границы расширяются на указанную величину. Например, enlarge_bounds = 1 означает, что границы будут увеличены на 100%. Значение по умолчанию подходит для большинства случаев.
clear()
| void pcl::recognition::ORROctree::clear | ( | ) |
createLeaf()
| inline |
Создает лист, содержащий p = (x, y, z), и возвращает указатель на него, но только если p находится внутри границ октодерева! Более общий вариант, допускающий выход p за границы, пока не реализован.
Метод возвращает NULL, если p не находится внутри границ корневого узла. Если лист, содержащий p, уже существует, ничего не происходит: метод просто возвращает указатель на этот лист.
Определение в строке 291 файла orr_octree.h.
Ссылки: pcl::recognition::ORROctree::Node::createChildren(), pcl::recognition::ORROctree::Node::getCenter(), pcl::recognition::ORROctree::Node::getChild(), pcl::recognition::ORROctree::Node::getData() и pcl::recognition::ORROctree::Node::setData().
deleteBranch()
| void pcl::recognition::ORROctree::deleteBranch | ( | Node * | node | ) |
Удаляет ветвь, частью которой является «node».
getBounds() [перегрузка 1/2]
| const float* pcl::recognition::ORROctree::getBounds | ( | ) | const |
Определение в строке 418 файла orr_octree.h.
getBounds() [перегрузка 2/2]
| void pcl::recognition::ORROctree::getBounds | ( | float | b[6] | ) | const |
Определение в строке 424 файла orr_octree.h.
getFullLeaves() [перегрузка 1/2]
| inline |
Возвращает вектор со всеми листьями октодерева, содержащими хотя бы одну точку.
Определение в строке 403 файла orr_octree.h.
getFullLeaves() [перегрузка 2/2]
| inline |
Определение в строке 406 файла orr_octree.h.
getFullLeavesIntersectedBySphere()
| void pcl::recognition::ORROctree::getFullLeavesIntersectedBySphere | ( | const float * | p, |
| float | radius, | ||
| std::list< ORROctree::Node * > & | out | ||
| ) | const |
Этот метод возвращает надмножество заполненных листьев, пересекаемых сферой радиуса «radius» с центром в точке «p».
Указатели на пересекаемые заполненные листья сохраняются в «out». Метод вычисляет надмножество в том смысле, что в общем случае не все сохраненные в «out» листья действительно пересекаются сферой. Проверка пересечения основана на радиусе листа (это быстрее, чем проверять все углы и стороны листа), поэтому метод возвращает больше листьев, чем нужно, но такая аппроксимация достаточно точна.
getFullLeavesPoints()
| void pcl::recognition::ORROctree::getFullLeavesPoints | ( | PointCloudOut & | out | ) | const |
getLeaf() [1/2]
| inline |
Возвращает указатель на лист, содержащий p = (x, y, z), или NULL, если такого листа не существует.
Определение в строке 364 файла orr_octree.h.
Ссылки: pcl::recognition::ORROctree::Node::getCenter(), pcl::recognition::ORROctree::Node::getChild() и pcl::recognition::ORROctree::Node::hasChildren().
getLeaf() [2/2]
| inline |
Поскольку листья выровнены по прямоугольной сетке, каждый лист имеет уникальный идентификатор.
Метод возвращает лист с идентификатором [i, j, k] или NULL, если такого листа не существует.
Определение в строке 352 файла orr_octree.h.
getNormalsOfFullLeaves()
| void pcl::recognition::ORROctree::getNormalsOfFullLeaves | ( | PointCloudN & | out | ) | const |
getRandomFullLeafOnSphere()
| ORROctree::Node* pcl::recognition::ORROctree::getRandomFullLeafOnSphere | ( | const float * | p, |
| float | radius | ||
| ) | const |
Случайным образом выбирает и возвращает заполненный лист, пересекаемый сферой с центром в точке 'p' и радиусом 'radius'.
Возвращает NULL, если сфера не пересекает ни один лист.
getRoot()
| inline |
Определение в строке 415 файла orr_octree.h.
getVoxelSize()
| inline |
Определение в строке 430 файла orr_octree.h.
insertNeighbors()
| inline |
Определение в строке 433 файла orr_octree.h.
Ссылки: pcl::recognition::ORROctree::Node::getCenter() и pcl::recognition::ORROctree::Node::makeNeighbors().
Описание данных-членов
bounds_
| protected |
Определение в строке 471 файла orr_octree.h.
full_leaves_
| protected |
Определение в строке 474 файла orr_octree.h.
root_
| protected |
Определение в строке 473 файла orr_octree.h.
tree_levels_
| protected |
Определение в строке 472 файла orr_octree.h.
voxel_size_
| protected |
Определение в строке 471 файла orr_octree.h.
Документация для этого класса создана на основе следующего файла:
- pcl/recognition/ransac_based/orr_octree.h
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1recognition_1_1_o_r_r_octree.html