Point Cloud Library (PCL)  1.3.1
Public Types | Public Member Functions
pcl::octree::OctreePointCloud Class Reference

Octree pointcloud class More...

#include <pcl/octree/octree_pointcloud.h>

List of all members.

Public Types

typedef boost::shared_ptr
< std::vector< int > > 
IndicesPtr
typedef boost::shared_ptr
< const std::vector< int > > 
IndicesConstPtr
typedef pcl::PointCloud< PointT > PointCloud
typedef boost::shared_ptr
< PointCloud
PointCloudPtr
typedef boost::shared_ptr
< const PointCloud
PointCloudConstPtr
typedef OctreePointCloud
< PointT, LeafT, OctreeBase
< int, LeafT > > 
SingleBuffer
typedef OctreePointCloud
< PointT, LeafT,
Octree2BufBase< int, LeafT > > 
DoubleBuffer
typedef OctreePointCloud
< PointT, LeafT,
OctreeLowMemBase< int, LeafT > > 
LowMem
typedef boost::shared_ptr
< OctreePointCloud< PointT,
LeafT, OctreeT > > 
Ptr
typedef boost::shared_ptr
< const OctreePointCloud
< PointT, LeafT, OctreeT > > 
ConstPtr
typedef std::vector< PointT,
Eigen::aligned_allocator
< PointT > > 
AlignedPointTVector
typedef OctreeT::OctreeLeaf OctreeLeaf

Public Member Functions

 OctreePointCloud (const double resolution_arg)
 Octree pointcloud constructor.
virtual ~OctreePointCloud ()
 Empty deconstructor.
void setInputCloud (const PointCloudConstPtr &cloud_arg, const IndicesConstPtr &indices_arg=IndicesConstPtr())
 Provide a pointer to the input data set.
IndicesConstPtr const getIndices ()
 Get a pointer to the vector of indices used.
PointCloudConstPtr getInputCloud ()
 Get a pointer to the input point cloud dataset.
void setEpsilon (double eps)
 Set the search epsilon precision (error bound) for nearest neighbors searches.
double getEpsilon ()
 Get the search epsilon precision (error bound) for nearest neighbors searches.
void setResolution (double resolution_arg)
 Set/change the octree voxel resolution.
double getResolution ()
 Get octree voxel resolution.
void addPointsFromInputCloud ()
 Add points from input point cloud to octree.
void addPointFromCloud (const int pointIdx_arg, IndicesPtr indices_arg)
 Add point at given index from input point cloud to octree.
void addPointToCloud (const PointT &point_arg, PointCloudPtr cloud_arg)
 Add point simultaneously to octree and input point cloud.
void addPointToCloud (const PointT &point_arg, PointCloudPtr cloud_arg, IndicesPtr indices_arg)
 Add point simultaneously to octree and input point cloud.
bool isVoxelOccupiedAtPoint (const PointT &point_arg) const
 Check if voxel at given point exist.
void deleteTree ()
 Delete the octree structure and its leaf nodes.
bool isVoxelOccupiedAtPoint (const double pointX_arg, const double pointY_arg, const double pointZ_arg) const
 Check if voxel at given point coordinates exist.
bool isVoxelOccupiedAtPoint (const int &pointIdx_arg) const
 Check if voxel at given point from input cloud exist.
int getOccupiedVoxelCenters (AlignedPointTVector &voxelCenterList_arg) const
 Get a PointT vector of centers of all occupied voxels.
void deleteVoxelAtPoint (const PointT &point_arg)
 Delete leaf node / voxel at given point.
void deleteVoxelAtPoint (const int &pointIdx_arg)
 Delete leaf node / voxel at given point from input cloud.
void defineBoundingBox ()
 Investigate dimensions of pointcloud data set and define corresponding bounding box for octree.
void defineBoundingBox (const double minX_arg, const double minY_arg, const double minZ_arg, const double maxX_arg, const double maxY_arg, const double maxZ_arg)
 Define bounding box for octree.
void defineBoundingBox (const double maxX_arg, const double maxY_arg, const double maxZ_arg)
 Define bounding box for octree.
void defineBoundingBox (const double cubeLen_arg)
 Define bounding box cube for octree.
void getBoundingBox (double &minX_arg, double &minY_arg, double &minZ_arg, double &maxX_arg, double &maxY_arg, double &maxZ_arg) const
 Get bounding box for octree.
double getVoxelSquaredDiameter (unsigned int treeDepth_arg) const
 Calculates the squared diameter of a voxel at given tree depth.
double getVoxelSquaredDiameter () const
 Calculates the squared diameter of a voxel at leaf depth.
double getVoxelSquaredSideLen (unsigned int treeDepth_arg) const
 Calculates the squared voxel cube side length at given tree depth.
double getVoxelSquaredSideLen () const
 Calculates the squared voxel cube side length at leaf level.

Detailed Description

Octree pointcloud class

Note:
Octree implementation for pointclouds. Only indices are stored by the octree leaf nodes (zero-copy).
The octree pointcloud class needs to be initialized with its voxel resolution. Its bounding box is automatically adjusted
according to the pointcloud dimension or it can be predefined.
Note: The tree depth equates to the resolution and the bounding box dimensions of the octree.
typename: PointT: type of point used in pointcloud
typename: LeafT: leaf node class (usuallz templated with integer indices values)
typename: OctreeT: octree implementation ()
Author:
Julius Kammerl (julius@kammerl.de)

Member Typedef Documentation

typedef std::vector<PointT, Eigen::aligned_allocator<PointT> > pcl::octree::OctreePointCloud::AlignedPointTVector

Reimplemented in pcl::octree::OctreePointCloudSearch.

Definition at line 108 of file octree_pointcloud.h.

typedef boost::shared_ptr<const OctreePointCloud<PointT, LeafT, OctreeT> > pcl::octree::OctreePointCloud::ConstPtr

Reimplemented in pcl::octree::OctreePointCloudSearch.

Definition at line 105 of file octree_pointcloud.h.

typedef boost::shared_ptr<const std::vector<int> > pcl::octree::OctreePointCloud::IndicesConstPtr

Reimplemented in pcl::octree::OctreePointCloudSearch.

Definition at line 92 of file octree_pointcloud.h.

typedef boost::shared_ptr<std::vector<int> > pcl::octree::OctreePointCloud::IndicesPtr

Reimplemented in pcl::octree::OctreePointCloudSearch.

Definition at line 91 of file octree_pointcloud.h.

Reimplemented in pcl::octree::OctreePointCloudSearch.

Definition at line 101 of file octree_pointcloud.h.

typedef OctreeT::OctreeLeaf pcl::octree::OctreePointCloud::OctreeLeaf
typedef boost::shared_ptr<OctreePointCloud<PointT, LeafT, OctreeT> > pcl::octree::OctreePointCloud::Ptr

Reimplemented in pcl::octree::OctreePointCloudSearch.

Definition at line 104 of file octree_pointcloud.h.


Constructor & Destructor Documentation

pcl::octree::OctreePointCloud::OctreePointCloud ( const double  resolution_arg)

Octree pointcloud constructor.

Parameters:
resolution_arg,:octree resolution at lowest octree level

Definition at line 56 of file octree_pointcloud.hpp.

pcl::octree::OctreePointCloud::~OctreePointCloud ( ) [virtual]

Empty deconstructor.

Definition at line 66 of file octree_pointcloud.hpp.


Member Function Documentation

void pcl::octree::OctreePointCloud::addPointFromCloud ( const int  pointIdx_arg,
IndicesPtr  indices_arg 
)

Add point at given index from input point cloud to octree.

Index will be also added to indices vector.

Parameters:
pointIdx_argindex of point to be added
indices_argpointer to indices vector of the dataset (given by setInputCloud)

Definition at line 114 of file octree_pointcloud.hpp.

void pcl::octree::OctreePointCloud::addPointsFromInputCloud ( )

Add points from input point cloud to octree.

Definition at line 74 of file octree_pointcloud.hpp.

void pcl::octree::OctreePointCloud::addPointToCloud ( const PointT &  point_arg,
PointCloudPtr  cloud_arg 
)

Add point simultaneously to octree and input point cloud.

Parameters:
point_argpoint to be added
cloud_argpointer to input point cloud dataset (given by setInputCloud)

Definition at line 129 of file octree_pointcloud.hpp.

void pcl::octree::OctreePointCloud::addPointToCloud ( const PointT &  point_arg,
PointCloudPtr  cloud_arg,
IndicesPtr  indices_arg 
)

Add point simultaneously to octree and input point cloud.

A corresponding index will be added to the indices vector.

Parameters:
point_argpoint to be added
cloud_argpointer to input point cloud dataset (given by setInputCloud)
indices_argpointer to indices vector of the dataset (given by setInputCloud)

Definition at line 141 of file octree_pointcloud.hpp.

void pcl::octree::OctreePointCloud::defineBoundingBox ( )

Investigate dimensions of pointcloud data set and define corresponding bounding box for octree.

Definition at line 244 of file octree_pointcloud.hpp.

void pcl::octree::OctreePointCloud::defineBoundingBox ( const double  minX_arg,
const double  minY_arg,
const double  minZ_arg,
const double  maxX_arg,
const double  maxY_arg,
const double  maxZ_arg 
)

Define bounding box for octree.

Note:
Bounding box cannot be changed once the octree contains elements.
Parameters:
minX_argX coordinate of lower bounding box corner
minY_argY coordinate of lower bounding box corner
minZ_argZ coordinate of lower bounding box corner
maxX_argX coordinate of upper bounding box corner
maxY_argY coordinate of upper bounding box corner
maxZ_argZ coordinate of upper bounding box corner

Definition at line 281 of file octree_pointcloud.hpp.

void pcl::octree::OctreePointCloud::defineBoundingBox ( const double  maxX_arg,
const double  maxY_arg,
const double  maxZ_arg 
)

Define bounding box for octree.

Note:
Lower bounding box point is set to (0, 0, 0)
Bounding box cannot be changed once the octree contains elements.
Parameters:
maxX_argX coordinate of upper bounding box corner
maxY_argY coordinate of upper bounding box corner
maxZ_argZ coordinate of upper bounding box corner

Definition at line 320 of file octree_pointcloud.hpp.

void pcl::octree::OctreePointCloud::defineBoundingBox ( const double  cubeLen_arg)

Define bounding box cube for octree.

Note:
Lower bounding box corner is set to (0, 0, 0)
Bounding box cannot be changed once the octree contains elements.
Parameters:
cubeLen_argside length of bounding box cube.

Definition at line 358 of file octree_pointcloud.hpp.

void pcl::octree::OctreePointCloud::deleteTree ( ) [inline]

Delete the octree structure and its leaf nodes.

Definition at line 215 of file octree_pointcloud.h.

void pcl::octree::OctreePointCloud::deleteVoxelAtPoint ( const PointT &  point_arg)

Delete leaf node / voxel at given point.

Parameters:
point_argpoint addressing the voxel to be deleted.

Definition at line 201 of file octree_pointcloud.hpp.

void pcl::octree::OctreePointCloud::deleteVoxelAtPoint ( const int &  pointIdx_arg)

Delete leaf node / voxel at given point from input cloud.

Parameters:
pointIdx_argindex of point addressing the voxel to be deleted.

Definition at line 214 of file octree_pointcloud.hpp.

void pcl::octree::OctreePointCloud::getBoundingBox ( double &  minX_arg,
double &  minY_arg,
double &  minZ_arg,
double &  maxX_arg,
double &  maxY_arg,
double &  maxZ_arg 
) const

Get bounding box for octree.

Note:
Bounding box cannot be changed once the octree contains elements.
Parameters:
minX_argX coordinate of lower bounding box corner
minY_argY coordinate of lower bounding box corner
minZ_argZ coordinate of lower bounding box corner
maxX_argX coordinate of upper bounding box corner
maxY_argY coordinate of upper bounding box corner
maxZ_argZ coordinate of upper bounding box corner

Definition at line 393 of file octree_pointcloud.hpp.

double pcl::octree::OctreePointCloud::getEpsilon ( ) [inline]

Get the search epsilon precision (error bound) for nearest neighbors searches.

Definition at line 155 of file octree_pointcloud.h.

IndicesConstPtr const pcl::octree::OctreePointCloud::getIndices ( ) [inline]

Get a pointer to the vector of indices used.

Returns:
pointer to vector of indices used.

Definition at line 130 of file octree_pointcloud.h.

PointCloudConstPtr pcl::octree::OctreePointCloud::getInputCloud ( ) [inline]

Get a pointer to the input point cloud dataset.

Returns:
pointer to pointcloud input class.

Definition at line 139 of file octree_pointcloud.h.

int pcl::octree::OctreePointCloud::getOccupiedVoxelCenters ( AlignedPointTVector voxelCenterList_arg) const

Get a PointT vector of centers of all occupied voxels.

Parameters:
voxelCenterList_argresults are written to this vector of PointT elements
Returns:
number of occupied voxels

Definition at line 227 of file octree_pointcloud.hpp.

double pcl::octree::OctreePointCloud::getResolution ( ) [inline]

Get octree voxel resolution.

Returns:
voxel resolution at lowest tree level

Definition at line 175 of file octree_pointcloud.h.

double pcl::octree::OctreePointCloud::getVoxelSquaredDiameter ( unsigned int  treeDepth_arg) const

Calculates the squared diameter of a voxel at given tree depth.

Parameters:
treeDepth_argdepth/level in octree
Returns:
squared diameter

Definition at line 743 of file octree_pointcloud.hpp.

double pcl::octree::OctreePointCloud::getVoxelSquaredDiameter ( ) const [inline]

Calculates the squared diameter of a voxel at leaf depth.

Returns:
squared diameter

Definition at line 325 of file octree_pointcloud.h.

double pcl::octree::OctreePointCloud::getVoxelSquaredSideLen ( unsigned int  treeDepth_arg) const

Calculates the squared voxel cube side length at given tree depth.

Parameters:
treeDepth_argdepth/level in octree
Returns:
squared voxel cube side length

Definition at line 727 of file octree_pointcloud.hpp.

double pcl::octree::OctreePointCloud::getVoxelSquaredSideLen ( ) const [inline]

Calculates the squared voxel cube side length at leaf level.

Returns:
squared voxel cube side length

Definition at line 341 of file octree_pointcloud.h.

bool pcl::octree::OctreePointCloud::isVoxelOccupiedAtPoint ( const PointT &  point_arg) const

Check if voxel at given point exist.

Parameters:
point_argpoint to be checked
Returns:
"true" if voxel exist; "false" otherwise

Definition at line 157 of file octree_pointcloud.hpp.

bool pcl::octree::OctreePointCloud::isVoxelOccupiedAtPoint ( const double  pointX_arg,
const double  pointY_arg,
const double  pointZ_arg 
) const

Check if voxel at given point coordinates exist.

Parameters:
pointX_argX coordinate of point to be checked
pointY_argY coordinate of point to be checked
pointZ_argZ coordinate of point to be checked
Returns:
"true" if voxel exist; "false" otherwise

Definition at line 186 of file octree_pointcloud.hpp.

bool pcl::octree::OctreePointCloud::isVoxelOccupiedAtPoint ( const int &  pointIdx_arg) const

Check if voxel at given point from input cloud exist.

Parameters:
pointIdx_argpoint to be checked
Returns:
"true" if voxel exist; "false" otherwise

Definition at line 172 of file octree_pointcloud.hpp.

void pcl::octree::OctreePointCloud::setEpsilon ( double  eps) [inline]

Set the search epsilon precision (error bound) for nearest neighbors searches.

Parameters:
epsprecision (error bound) for nearest neighbors searches

Definition at line 148 of file octree_pointcloud.h.

void pcl::octree::OctreePointCloud::setInputCloud ( const PointCloudConstPtr cloud_arg,
const IndicesConstPtr indices_arg = IndicesConstPtr () 
) [inline]

Provide a pointer to the input data set.

Parameters:
cloud_argthe const boost shared pointer to a PointCloud message
indices_argthe point indices subset that is to be used from cloud - if 0 the whole point cloud is used

Definition at line 115 of file octree_pointcloud.h.

void pcl::octree::OctreePointCloud::setResolution ( double  resolution_arg) [inline]

Set/change the octree voxel resolution.

Parameters:
resolution_argside length of voxels at lowest tree level

Definition at line 164 of file octree_pointcloud.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines