Spec-Zone.ru › PointCloudLibrary

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

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

Collaboration graph
[легенда]

Классы

class Узел

Публичные типы

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_
float bounds_ [6]
int tree_levels_
Node * root_
std::vector< Node * > full_leaves_

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

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

Это именно так, как он задуман, поэтому нет шаблонов и подобных вещей.

Автор
Чавдар Папазов

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

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

Документация по функции члена

build() [1/2]

void pcl::recognition::ORROctree::build ( const float * bounds,
float voxel_size
)

Создаёт пустой octree с границами, по крайней мере, не меньше, чем предоставленные в качестве входных данных, и с размером листа, равным '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
)

Создаёт octree, который охватывает 'points', и с размером листа, равным 'voxel_size'.

'enlarge_bounds' гарантирует, что ни одна точка из входящих данных не будет лежать на границе octree, увеличивая границы на этот коэффициент. Например, 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 находится внутри границ octree! Более общая версия, которая позволяет p находиться вне границ, пока не реализована.

Метод возвращает NULL, если p не находится внутри границ корня. Если лист, содержащий p, уже существует, ничего не происходит, и метод просто возвращает указатель на лист.

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

END_OF_DOCUMENT_MARKER ```

getBounds() [1/2]

const float* pcl::recognition::ORROctree::getBounds ( ) const
inline

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

getBounds() [2/2]

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

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

getFullLeaves() [1/2]

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

Возвращает вектор со всеми узлами октального дерева, которые содержат по крайней мере одну точку.

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

getFullLeaves() [2/2]

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

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

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

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

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

getVoxelSize()

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

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

insertNeighbors()

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

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

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

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

bounds_

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

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

full_leaves_

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

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

root_

Node* pcl::recognition::ORROctree::root_
protected

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

tree_levels_

int pcl::recognition::ORROctree::tree_levels_
protected

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

voxel_size_

float pcl::recognition::ORROctree::voxel_size_
protected

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