Spec-Zone.ru › PointCloudLibrary
That's a very specialized and simple octree class. More...
#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)
Creates an octree which encloses 'points' and with leaf size equal to 'voxel_size'. More...
void
build (const float *bounds, float voxel_size)
Creates an empty octree with bounds at least as large as the ones provided as input and with leaf size equal to 'voxel_size'. More...
ORROctree::Node *
createLeaf (float x, float y, float z)
Creates the leaf containing p = (x, y, z) and returns a pointer to it, however, only if p lies within the octree bounds! A more general version which allows p to be out of bounds is not implemented yet. More...
void
getFullLeavesIntersectedBySphere (const float *p, float radius, std::list< ORROctree::Node * > &out) const
This method returns a super set of the full leavess which are intersected by the sphere with radius 'radius' and centered at 'p'. More...
ORROctree::Node *
getRandomFullLeafOnSphere (const float *p, float radius) const
Randomly chooses and returns a full leaf that is intersected by the sphere with center 'p' and 'radius'. More...
ORROctree::Node *
getLeaf (int i, int j, int k)
Since the leaves are aligned in a rectilinear grid, each leaf has a unique id. More...
ORROctree::Node *
getLeaf (float x, float y, float z)
Returns a pointer to the leaf containing p = (x, y, z) or NULL if no such leaf exists. More...
void
deleteBranch (Node *node)
Deletes the branch 'node' is part of. More...
std::vector< ORROctree::Node * > &
getFullLeaves ()
Returns a vector with all octree leaves which contain at least one point. More...
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)
That's a very specialized and simple octree class.
That's the way it is intended to be, that's why no templates and stuff like this.
Author
Chavdar Papazov
Definition at line 68 of file 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 )
Creates an empty octree with bounds at least as large as the ones provided as input and with leaf size equal to '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 )
Creates an octree which encloses 'points' and with leaf size equal to 'voxel_size'.
'enlarge_bounds' makes sure that no points from the input will lie on the octree boundary by enlarging the bounds by that factor. For example, enlarge_bounds = 1 means that the bounds will be enlarged by 100%. The default value is fine.
clear() void pcl::recognition::ORROctree::clear (
)
createLeaf()
ORROctree::Node * pcl::recognition::ORROctree::createLeaf ( float
x , float
y , float
z )
inline
deleteBranch() void pcl::recognition::ORROctree::deleteBranch (
Node * node
)
Deletes the branch 'node' is part of.
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
Returns a vector with all octree leaves which contain at least one point.
Definition at line 403 of file 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
This method returns a super set of the full leavess which are intersected by the sphere with radius 'radius' and centered at 'p'.
Pointers to the intersected full leaves are saved in 'out'. The method computes a super set in the sense that in general not all leaves saved in 'out' are really intersected by the sphere. The intersection test is based on the leaf radius (since its faster than checking all leaf corners and sides), so we report more leaves than we should, but still, this is a fair approximation.
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
Since the leaves are aligned in a rectilinear grid, each leaf has a unique id.
The method returns the leaf with id [i, j, k] or NULL is no such leaf exists.
Definition at line 352 of file 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
Randomly chooses and returns a full leaf that is intersected by the sphere with center 'p' and 'radius'.
Returns NULL if no leaf is intersected by that sphere.
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_ {nullptr}
protected
tree_levels_ int pcl::recognition::ORROctree::tree_levels_ {-1}
protected
voxel_size_ float pcl::recognition::ORROctree::voxel_size_ {-1.0}
protected
The documentation for this class was generated from the following file: