Spec-Zone.ru › PointCloudLibrary

Это очень специализированный и простой класс октодерева. Подробнее...

#include <pcl/recognition/ransac_based/orr_octree.h>

Collaboration graph
[условные обозначения]

Классы

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_

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

Это очень специализированный и простой класс октодерева.

Так и задумано, поэтому здесь нет шаблонов и тому подобного.

Автор
Chavdar Papazov

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

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

PointCloudIn

using pcl::recognition::ORROctree::PointCloudIn = pcl::PointCloud<pcl::PointXYZ>

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

PointCloudN

using pcl::recognition::ORROctree::PointCloudN = pcl::PointCloud<pcl::Normal>

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

PointCloudOut

using pcl::recognition::ORROctree::PointCloudOut = pcl::PointCloud<pcl::PointXYZ>

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

Документация конструкторов и деструкторов

ORROctree()

pcl::recognition::ORROctree::ORROctree ( )

~ORROctree()

virtual pcl::recognition::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()

ORROctree::Node* pcl::recognition::ORROctree::createLeaf ( float x,
float y,
float z
)
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
inline

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

getBounds() [перегрузка 2/2]

void pcl::recognition::ORROctree::getBounds ( float b[6] ) const
inline

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

getFullLeaves() [перегрузка 1/2]

std::vector<ORROctree::Node*>& pcl::recognition::ORROctree::getFullLeaves ( )
inline

Возвращает вектор со всеми листьями октодерева, содержащими хотя бы одну точку.

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

getFullLeaves() [перегрузка 2/2]

const std::vector<ORROctree::Node*>& pcl::recognition::ORROctree::getFullLeaves ( ) const
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]

ORROctree::Node* pcl::recognition::ORROctree::getLeaf ( float x,
float y,
float z
)
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]

ORROctree::Node* pcl::recognition::ORROctree::getLeaf ( int i,
int j,
int k
)
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()

ORROctree::Node* pcl::recognition::ORROctree::getRoot ( )
inline

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

getVoxelSize()

float pcl::recognition::ORROctree::getVoxelSize ( ) const
inline

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

insertNeighbors()

void pcl::recognition::ORROctree::insertNeighbors ( Node * node )
inline

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

Ссылки: pcl::recognition::ORROctree::Node::getCenter() и pcl::recognition::ORROctree::Node::makeNeighbors().

Описание данных-членов

bounds_

float pcl::recognition::ORROctree::bounds_[6]
protected

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

full_leaves_

std::vector<Node*> pcl::recognition::ORROctree::full_leaves_
protected

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

root_

Node* pcl::recognition::ORROctree::root_ {nullptr}
protected

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

tree_levels_

int pcl::recognition::ORROctree::tree_levels_ {-1}
protected

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

voxel_size_

float pcl::recognition::ORROctree::voxel_size_ {-1.0}
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

Spec-Zone.ru

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