Spec-Zone.ru › PointCloudLibrary
Это очень специализированный и простой класс octree. Подробнее...
#include <pcl/recognition/ransac_based/orr_octree.h >
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)
Это очень специализированный и простой класс octree.
Это именно так, как он задуман, поэтому нет шаблонов и подобных вещей.
Автор
Чавдар Папазов
Определение в строке 68 файла orr_octree.h .
PointCloudIn PointCloudN PointCloudOut ORROctree() pcl::recognition::ORROctree::ORROctree (
)
~ORROctree() virtual pcl::recognition::ORROctree::~ORROctree (
)
inline virtual
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
getBounds() [2/2]
void pcl::recognition::ORROctree::getBounds ( float
b [6]
) const
inline
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
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
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() getVoxelSize() float pcl::recognition::ORROctree::getVoxelSize (
) const
inline
insertNeighbors() void pcl::recognition::ORROctree::insertNeighbors (
Node * node
)
inline
bounds_ float pcl::recognition::ORROctree::bounds_[6]
protected
full_leaves_ std::vector<Node *> pcl::recognition::ORROctree::full_leaves_
protected
root_
Node * pcl::recognition::ORROctree::root_
protected
tree_levels_ int pcl::recognition::ORROctree::tree_levels_
protected
voxel_size_ float pcl::recognition::ORROctree::voxel_size_
protected
Документация для этого класса была сгенерирована из следующего файла: