Point Cloud Library (PCL)  1.11.1-dev
List of all members | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT > Class Template Reference

Octree pointcloud class More...

#include <pcl/octree/octree_pointcloud.h>

+ Inheritance diagram for pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >:

Public Types

using Base = OctreeT
 
using LeafNode = typename OctreeT::LeafNode
 
using BranchNode = typename OctreeT::BranchNode
 
using IndicesPtr = shared_ptr< std::vector< int > >
 
using IndicesConstPtr = shared_ptr< const std::vector< int > >
 
using PointCloud = pcl::PointCloud< PointT >
 
using PointCloudPtr = typename PointCloud::Ptr
 
using PointCloudConstPtr = typename PointCloud::ConstPtr
 
using SingleBuffer = OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeBase< LeafContainerT > >
 
using Ptr = shared_ptr< OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT > >
 
using ConstPtr = shared_ptr< const OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT > >
 
using AlignedPointTVector = std::vector< PointT, Eigen::aligned_allocator< PointT > >
 
using AlignedPointXYZVector = std::vector< PointXYZ, Eigen::aligned_allocator< PointXYZ > >
 
- Public Types inherited from pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >
using OctreeT = OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >
 
using BranchNode = OctreeBranchNode< OctreeContainerEmpty >
 
using LeafNode = OctreeLeafNode< OctreeContainerPointIndices >
 
using BranchContainer = OctreeContainerEmpty
 
using LeafContainer = OctreeContainerPointIndices
 
using Iterator = OctreeDepthFirstIterator< OctreeT >
 
using ConstIterator = const OctreeDepthFirstIterator< OctreeT >
 
using LeafNodeIterator = OctreeLeafNodeDepthFirstIterator< OctreeT >
 
using ConstLeafNodeIterator = const OctreeLeafNodeDepthFirstIterator< OctreeT >
 
using LeafNodeDepthFirstIterator = OctreeLeafNodeDepthFirstIterator< OctreeT >
 
using ConstLeafNodeDepthFirstIterator = const OctreeLeafNodeDepthFirstIterator< OctreeT >
 
using DepthFirstIterator = OctreeDepthFirstIterator< OctreeT >
 
using ConstDepthFirstIterator = const OctreeDepthFirstIterator< OctreeT >
 
using BreadthFirstIterator = OctreeBreadthFirstIterator< OctreeT >
 
using ConstBreadthFirstIterator = const OctreeBreadthFirstIterator< OctreeT >
 
using FixedDepthIterator = OctreeFixedDepthIterator< OctreeT >
 
using ConstFixedDepthIterator = const OctreeFixedDepthIterator< OctreeT >
 
using LeafNodeBreadthFirstIterator = OctreeLeafNodeBreadthFirstIterator< OctreeT >
 
using ConstLeafNodeBreadthFirstIterator = const OctreeLeafNodeBreadthFirstIterator< OctreeT >
 

Public Member Functions

 OctreePointCloud (const double resolution_arg)
 Octree pointcloud constructor. More...
 
void setInputCloud (const PointCloudConstPtr &cloud_arg, const IndicesConstPtr &indices_arg=IndicesConstPtr())
 Provide a pointer to the input data set. More...
 
const IndicesConstPtr getIndices () const
 Get a pointer to the vector of indices used. More...
 
PointCloudConstPtr getInputCloud () const
 Get a pointer to the input point cloud dataset. More...
 
void setEpsilon (double eps)
 Set the search epsilon precision (error bound) for nearest neighbors searches. More...
 
double getEpsilon () const
 Get the search epsilon precision (error bound) for nearest neighbors searches. More...
 
void setResolution (double resolution_arg)
 Set/change the octree voxel resolution. More...
 
double getResolution () const
 Get octree voxel resolution. More...
 
unsigned int getTreeDepth () const
 Get the maximum depth of the octree. More...
 
void addPointsFromInputCloud ()
 Add points from input point cloud to octree. More...
 
void addPointFromCloud (const int point_idx_arg, IndicesPtr indices_arg)
 Add point at given index from input point cloud to octree. More...
 
void addPointToCloud (const PointT &point_arg, PointCloudPtr cloud_arg)
 Add point simultaneously to octree and input point cloud. More...
 
void addPointToCloud (const PointT &point_arg, PointCloudPtr cloud_arg, IndicesPtr indices_arg)
 Add point simultaneously to octree and input point cloud. More...
 
bool isVoxelOccupiedAtPoint (const PointT &point_arg) const
 Check if voxel at given point exist. More...
 
void deleteTree ()
 Delete the octree structure and its leaf nodes. More...
 
bool isVoxelOccupiedAtPoint (const double point_x_arg, const double point_y_arg, const double point_z_arg) const
 Check if voxel at given point coordinates exist. More...
 
bool isVoxelOccupiedAtPoint (const int &point_idx_arg) const
 Check if voxel at given point from input cloud exist. More...
 
int getOccupiedVoxelCenters (AlignedPointTVector &voxel_center_list_arg) const
 Get a PointT vector of centers of all occupied voxels. More...
 
int getApproxIntersectedVoxelCentersBySegment (const Eigen::Vector3f &origin, const Eigen::Vector3f &end, AlignedPointTVector &voxel_center_list, float precision=0.2)
 Get a PointT vector of centers of voxels intersected by a line segment. More...
 
void deleteVoxelAtPoint (const PointT &point_arg)
 Delete leaf node / voxel at given point. More...
 
void deleteVoxelAtPoint (const int &point_idx_arg)
 Delete leaf node / voxel at given point from input cloud. More...
 
void defineBoundingBox ()
 Investigate dimensions of pointcloud data set and define corresponding bounding box for octree. More...
 
void defineBoundingBox (const double min_x_arg, const double min_y_arg, const double min_z_arg, const double max_x_arg, const double max_y_arg, const double max_z_arg)
 Define bounding box for octree. More...
 
void defineBoundingBox (const double max_x_arg, const double max_y_arg, const double max_z_arg)
 Define bounding box for octree. More...
 
void defineBoundingBox (const double cubeLen_arg)
 Define bounding box cube for octree. More...
 
void getBoundingBox (double &min_x_arg, double &min_y_arg, double &min_z_arg, double &max_x_arg, double &max_y_arg, double &max_z_arg) const
 Get bounding box for octree. More...
 
double getVoxelSquaredDiameter (unsigned int tree_depth_arg) const
 Calculates the squared diameter of a voxel at given tree depth. More...
 
double getVoxelSquaredDiameter () const
 Calculates the squared diameter of a voxel at leaf depth. More...
 
double getVoxelSquaredSideLen (unsigned int tree_depth_arg) const
 Calculates the squared voxel cube side length at given tree depth. More...
 
double getVoxelSquaredSideLen () const
 Calculates the squared voxel cube side length at leaf level. More...
 
void getVoxelBounds (const OctreeIteratorBase< OctreeT > &iterator, Eigen::Vector3f &min_pt, Eigen::Vector3f &max_pt) const
 Generate bounds of the current voxel of an octree iterator. More...
 
void enableDynamicDepth (std::size_t maxObjsPerLeaf)
 Enable dynamic octree structure. More...
 
- Public Member Functions inherited from pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >
Iterator begin (unsigned int max_depth_arg=0u)
 
const Iterator end ()
 
LeafNodeIterator leaf_begin (unsigned int max_depth_arg=0u)
 
const LeafNodeIterator leaf_end ()
 
LeafNodeDepthFirstIterator leaf_depth_begin (unsigned int max_depth_arg=0u)
 
const LeafNodeDepthFirstIterator leaf_depth_end ()
 
DepthFirstIterator depth_begin (unsigned int max_depth_arg=0u)
 
const DepthFirstIterator depth_end ()
 
BreadthFirstIterator breadth_begin (unsigned int max_depth_arg=0u)
 
const BreadthFirstIterator breadth_end ()
 
FixedDepthIterator fixed_depth_begin (unsigned int fixed_depth_arg=0u)
 
const FixedDepthIterator fixed_depth_end ()
 
LeafNodeBreadthFirstIterator leaf_breadth_begin (unsigned int max_depth_arg=0u)
 
const LeafNodeBreadthFirstIterator leaf_breadth_end ()
 
 OctreeBase ()
 Empty constructor. More...
 
 OctreeBase (const OctreeBase &source)
 Copy constructor. More...
 
virtual ~OctreeBase ()
 Empty deconstructor. More...
 
OctreeBaseoperator= (const OctreeBase &source)
 Copy operator. More...
 
void setMaxVoxelIndex (unsigned int max_voxel_index_arg)
 Set the maximum amount of voxels per dimension. More...
 
void setTreeDepth (unsigned int max_depth_arg)
 Set the maximum depth of the octree. More...
 
unsigned int getTreeDepth () const
 Get the maximum depth of the octree. More...
 
OctreeContainerPointIndicescreateLeaf (unsigned int idx_x_arg, unsigned int idx_y_arg, unsigned int idx_z_arg)
 Create new leaf node at (idx_x_arg, idx_y_arg, idx_z_arg). More...
 
OctreeContainerPointIndicesfindLeaf (unsigned int idx_x_arg, unsigned int idx_y_arg, unsigned int idx_z_arg)
 Find leaf node at (idx_x_arg, idx_y_arg, idx_z_arg). More...
 
bool existLeaf (unsigned int idx_x_arg, unsigned int idx_y_arg, unsigned int idx_z_arg) const
 idx_x_arg for the existence of leaf node at (idx_x_arg, idx_y_arg, idx_z_arg). More...
 
void removeLeaf (unsigned int idx_x_arg, unsigned int idx_y_arg, unsigned int idx_z_arg)
 Remove leaf node at (idx_x_arg, idx_y_arg, idx_z_arg). More...
 
std::size_t getLeafCount () const
 Return the amount of existing leafs in the octree. More...
 
std::size_t getBranchCount () const
 Return the amount of existing branch nodes in the octree. More...
 
void deleteTree ()
 Delete the octree structure and its leaf nodes. More...
 
void serializeTree (std::vector< char > &binary_tree_out_arg)
 Serialize octree into a binary output vector describing its branch node structure. More...
 
void serializeTree (std::vector< char > &binary_tree_out_arg, std::vector< OctreeContainerPointIndices * > &leaf_container_vector_arg)
 Serialize octree into a binary output vector describing its branch node structure and push all LeafContainerT elements stored in the octree to a vector. More...
 
void serializeLeafs (std::vector< OctreeContainerPointIndices * > &leaf_container_vector_arg)
 Outputs a vector of all LeafContainerT elements that are stored within the octree leaf nodes. More...
 
void deserializeTree (std::vector< char > &binary_tree_input_arg)
 Deserialize a binary octree description vector and create a corresponding octree structure. More...
 
void deserializeTree (std::vector< char > &binary_tree_input_arg, std::vector< OctreeContainerPointIndices * > &leaf_container_vector_arg)
 Deserialize a binary octree description and create a corresponding octree structure. More...
 

Protected Member Functions

virtual void addPointIdx (const int point_idx_arg)
 Add point at index from input pointcloud dataset to octree. More...
 
void expandLeafNode (LeafNode *leaf_node, BranchNode *parent_branch, unsigned char child_idx, unsigned int depth_mask)
 Add point at index from input pointcloud dataset to octree. More...
 
const PointTgetPointByIndex (const unsigned int index_arg) const
 Get point at index from input pointcloud dataset. More...
 
LeafContainerT * findLeafAtPoint (const PointT &point_arg) const
 Find octree leaf node at a given point. More...
 
void getKeyBitSize ()
 Define octree key setting and octree depth based on defined bounding box. More...
 
void adoptBoundingBoxToPoint (const PointT &point_idx_arg)
 Grow the bounding box/octree until point fits. More...
 
bool isPointWithinBoundingBox (const PointT &point_idx_arg) const
 Checks if given point is within the bounding box of the octree. More...
 
void genOctreeKeyforPoint (const PointT &point_arg, OctreeKey &key_arg) const
 Generate octree key for voxel at a given point. More...
 
void genOctreeKeyforPoint (const double point_x_arg, const double point_y_arg, const double point_z_arg, OctreeKey &key_arg) const
 Generate octree key for voxel at a given point. More...
 
virtual bool genOctreeKeyForDataT (const int &data_arg, OctreeKey &key_arg) const
 Virtual method for generating octree key for a given point index. More...
 
void genLeafNodeCenterFromOctreeKey (const OctreeKey &key_arg, PointT &point_arg) const
 Generate a point at center of leaf node voxel. More...
 
void genVoxelCenterFromOctreeKey (const OctreeKey &key_arg, unsigned int tree_depth_arg, PointT &point_arg) const
 Generate a point at center of octree voxel at given tree level. More...
 
void genVoxelBoundsFromOctreeKey (const OctreeKey &key_arg, unsigned int tree_depth_arg, Eigen::Vector3f &min_pt, Eigen::Vector3f &max_pt) const
 Generate bounds of an octree voxel using octree key and tree depth arguments. More...
 
int getOccupiedVoxelCentersRecursive (const BranchNode *node_arg, const OctreeKey &key_arg, AlignedPointTVector &voxel_center_list_arg) const
 Recursively search the tree for all leaf nodes and return a vector of voxel centers. More...
 
- Protected Member Functions inherited from pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >
OctreeContainerPointIndicescreateLeaf (const OctreeKey &key_arg)
 Create a leaf node. More...
 
OctreeContainerPointIndicesfindLeaf (const OctreeKey &key_arg) const
 Find leaf node. More...
 
bool existLeaf (const OctreeKey &key_arg) const
 Check for existence of a leaf node in the octree. More...
 
void removeLeaf (const OctreeKey &key_arg)
 Remove leaf node from octree. More...
 
OctreeNodegetRootNode () const
 Retrieve root node. More...
 
bool branchHasChild (const BranchNode &branch_arg, unsigned char child_idx_arg) const
 Check if branch is pointing to a particular child node. More...
 
OctreeNodegetBranchChildPtr (const BranchNode &branch_arg, unsigned char child_idx_arg) const
 Retrieve a child node pointer for child node at child_idx. More...
 
void setBranchChildPtr (BranchNode &branch_arg, unsigned char child_idx_arg, OctreeNode *new_child_arg)
 Assign new child node to branch. More...
 
char getBranchBitPattern (const BranchNode &branch_arg) const
 Generate bit pattern reflecting the existence of child node pointers. More...
 
void deleteBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg)
 Delete child node and all its subchilds from octree. More...
 
void deleteBranch (BranchNode &branch_arg)
 Delete branch and all its subchilds from octree. More...
 
BranchNodecreateBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg)
 Create and add a new branch child to a branch class. More...
 
LeafNodecreateLeafChild (BranchNode &branch_arg, unsigned char child_idx_arg)
 Create and add a new leaf child to a branch class. More...
 
unsigned int createLeafRecursive (const OctreeKey &key_arg, unsigned int depth_mask_arg, BranchNode *branch_arg, LeafNode *&return_leaf_arg, BranchNode *&parent_of_leaf_arg)
 Create a leaf node at octree key. More...
 
void findLeafRecursive (const OctreeKey &key_arg, unsigned int depth_mask_arg, BranchNode *branch_arg, OctreeContainerPointIndices *&result_arg) const
 Recursively search for a given leaf node and return a pointer. More...
 
bool deleteLeafRecursive (const OctreeKey &key_arg, unsigned int depth_mask_arg, BranchNode *branch_arg)
 Recursively search and delete leaf node. More...
 
void serializeTreeRecursive (const BranchNode *branch_arg, OctreeKey &key_arg, std::vector< char > *binary_tree_out_arg, typename std::vector< OctreeContainerPointIndices * > *leaf_container_vector_arg) const
 Recursively explore the octree and output binary octree description together with a vector of leaf node LeafContainerTs. More...
 
void deserializeTreeRecursive (BranchNode *branch_arg, unsigned int depth_mask_arg, OctreeKey &key_arg, typename std::vector< char >::const_iterator &binary_tree_input_it_arg, typename std::vector< char >::const_iterator &binary_tree_input_it_end_arg, typename std::vector< OctreeContainerPointIndices * >::const_iterator *leaf_container_vector_it_arg, typename std::vector< OctreeContainerPointIndices * >::const_iterator *leaf_container_vector_it_end_arg)
 Recursive method for deserializing octree structure. More...
 
virtual void serializeTreeCallback (OctreeContainerPointIndices &, const OctreeKey &) const
 Callback executed for every leaf node during serialization. More...
 
virtual void deserializeTreeCallback (OctreeContainerPointIndices &, const OctreeKey &)
 Callback executed for every leaf node during deserialization. More...
 
double Log2 (double n_arg)
 Helper function to calculate the binary logarithm. More...
 
bool octreeCanResize ()
 Test if octree is able to dynamically change its depth. More...
 

Protected Attributes

PointCloudConstPtr input_
 Pointer to input point cloud dataset. More...
 
IndicesConstPtr indices_
 A pointer to the vector of point indices to use. More...
 
double epsilon_
 Epsilon precision (error bound) for nearest neighbors searches. More...
 
double resolution_
 Octree resolution. More...
 
double min_x_
 
double max_x_
 
double min_y_
 
double max_y_
 
double min_z_
 
double max_z_
 
bool bounding_box_defined_
 Flag indicating if octree has defined bounding box. More...
 
std::size_t max_objs_per_leaf_
 Amount of DataT objects per leafNode before expanding branch. More...
 
- Protected Attributes inherited from pcl::octree::OctreeBase< OctreeContainerPointIndices, OctreeContainerEmpty >
std::size_t leaf_count_
 Amount of leaf nodes
More...
 
std::size_t branch_count_
 Amount of branch nodes
More...
 
BranchNoderoot_node_
 Pointer to root branch node of octree
More...
 
unsigned int depth_mask_
 Depth mask based on octree depth
More...
 
unsigned int octree_depth_
 Octree depth. More...
 
bool dynamic_depth_enabled_
 Enable dynamic_depth. More...
 
OctreeKey max_key_
 key range More...
 

Detailed Description

template<typename PointT, typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
class pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >

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.
Template Parameters
PointTtype of point used in pointcloud
LeafContainerTleaf node container
BranchContainerTbranch node container
OctreeToctree implementation
Author
Julius Kammerl * (juliu.nosp@m.s@ka.nosp@m.mmerl.nosp@m..de)

Definition at line 72 of file octree_pointcloud.h.

Member Typedef Documentation

◆ AlignedPointTVector

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::AlignedPointTVector = std::vector<PointT, Eigen::aligned_allocator<PointT> >

Definition at line 107 of file octree_pointcloud.h.

◆ AlignedPointXYZVector

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::AlignedPointXYZVector = std::vector<PointXYZ, Eigen::aligned_allocator<PointXYZ> >

Definition at line 109 of file octree_pointcloud.h.

◆ Base

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::Base = OctreeT

Definition at line 74 of file octree_pointcloud.h.

◆ BranchNode

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::BranchNode = typename OctreeT::BranchNode

Definition at line 77 of file octree_pointcloud.h.

◆ ConstPtr

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::ConstPtr = shared_ptr< const OctreePointCloud<PointT, LeafContainerT, BranchContainerT, OctreeT> >

Definition at line 104 of file octree_pointcloud.h.

◆ IndicesConstPtr

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::IndicesConstPtr = shared_ptr<const std::vector<int> >

Definition at line 86 of file octree_pointcloud.h.

◆ IndicesPtr

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::IndicesPtr = shared_ptr<std::vector<int> >

Definition at line 85 of file octree_pointcloud.h.

◆ LeafNode

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::LeafNode = typename OctreeT::LeafNode

Definition at line 76 of file octree_pointcloud.h.

◆ PointCloud

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::PointCloud = pcl::PointCloud<PointT>

Definition at line 88 of file octree_pointcloud.h.

◆ PointCloudConstPtr

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::PointCloudConstPtr = typename PointCloud::ConstPtr

Definition at line 90 of file octree_pointcloud.h.

◆ PointCloudPtr

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::PointCloudPtr = typename PointCloud::Ptr

Definition at line 89 of file octree_pointcloud.h.

◆ Ptr

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::Ptr = shared_ptr<OctreePointCloud<PointT, LeafContainerT, BranchContainerT, OctreeT> >

Definition at line 102 of file octree_pointcloud.h.

◆ SingleBuffer

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
using pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::SingleBuffer = OctreePointCloud<PointT, LeafContainerT, BranchContainerT, OctreeBase<LeafContainerT> >

Definition at line 96 of file octree_pointcloud.h.

Constructor & Destructor Documentation

◆ OctreePointCloud()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::OctreePointCloud ( const double  resolution_arg)

Octree pointcloud constructor.

Parameters
[in]resolution_argoctree resolution at lowest octree level

Definition at line 53 of file octree_pointcloud.hpp.

Member Function Documentation

◆ addPointFromCloud()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::addPointFromCloud ( const int  point_idx_arg,
IndicesPtr  indices_arg 
)

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

Index will be also added to indices vector.

Parameters
[in]point_idx_argindex of point to be added
[in]indices_argpointer to indices vector of the dataset (given by setInputCloud)

Definition at line 107 of file octree_pointcloud.hpp.

◆ addPointIdx()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::addPointIdx ( const int  point_idx_arg)
protectedvirtual

Add point at index from input pointcloud dataset to octree.

Parameters
[in]point_idx_argthe index representing the point in the dataset given by setInputCloud to be added

Reimplemented in pcl::io::OctreePointCloudCompression< PointT, LeafT, BranchT, OctreeT >, pcl::octree::OctreePointCloudVoxelCentroid< PointT, LeafContainerT, BranchContainerT >, and pcl::octree::OctreePointCloudAdjacency< PointT, LeafContainerT, BranchContainerT >.

Definition at line 654 of file octree_pointcloud.hpp.

Referenced by pcl::io::OctreePointCloudCompression< PointT, LeafT, BranchT, OctreeT >::addPointIdx().

◆ addPointsFromInputCloud()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::addPointsFromInputCloud

◆ addPointToCloud() [1/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::addPointToCloud ( const PointT point_arg,
PointCloudPtr  cloud_arg 
)

Add point simultaneously to octree and input point cloud.

Parameters
[in]point_argpoint to be added
[in]cloud_argpointer to input point cloud dataset (given by setInputCloud)

Definition at line 121 of file octree_pointcloud.hpp.

◆ addPointToCloud() [2/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::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
[in]point_argpoint to be added
[in]cloud_argpointer to input point cloud dataset (given by setInputCloud)
[in]indices_argpointer to indices vector of the dataset (given by setInputCloud)

Definition at line 137 of file octree_pointcloud.hpp.

◆ adoptBoundingBoxToPoint()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::adoptBoundingBoxToPoint ( const PointT point_idx_arg)
protected

Grow the bounding box/octree until point fits.

Parameters
[in]point_idx_argpoint that should be within bounding box;

Definition at line 511 of file octree_pointcloud.hpp.

◆ defineBoundingBox() [1/4]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::defineBoundingBox

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

Definition at line 332 of file octree_pointcloud.hpp.

Referenced by pcl::TextureMapping< PointInT >::removeOccludedPoints(), and pcl::TextureMapping< PointInT >::showOcclusions().

◆ defineBoundingBox() [2/4]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::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
[in]cubeLen_argside length of bounding box cube.

Definition at line 451 of file octree_pointcloud.hpp.

◆ defineBoundingBox() [3/4]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::defineBoundingBox ( const double  max_x_arg,
const double  max_y_arg,
const double  max_z_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
[in]max_x_argX coordinate of upper bounding box corner
[in]max_y_argY coordinate of upper bounding box corner
[in]max_z_argZ coordinate of upper bounding box corner

Definition at line 410 of file octree_pointcloud.hpp.

◆ defineBoundingBox() [4/4]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::defineBoundingBox ( const double  min_x_arg,
const double  min_y_arg,
const double  min_z_arg,
const double  max_x_arg,
const double  max_y_arg,
const double  max_z_arg 
)

Define bounding box for octree.

Note
Bounding box cannot be changed once the octree contains elements.
Parameters
[in]min_x_argX coordinate of lower bounding box corner
[in]min_y_argY coordinate of lower bounding box corner
[in]min_z_argZ coordinate of lower bounding box corner
[in]max_x_argX coordinate of upper bounding box corner
[in]max_y_argY coordinate of upper bounding box corner
[in]max_z_argZ coordinate of upper bounding box corner

Definition at line 366 of file octree_pointcloud.hpp.

◆ deleteTree()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::deleteTree ( )
inline

Delete the octree structure and its leaf nodes.

Definition at line 236 of file octree_pointcloud.h.

◆ deleteVoxelAtPoint() [1/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::deleteVoxelAtPoint ( const int &  point_idx_arg)

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

Parameters
[in]point_idx_argindex of point addressing the voxel to be deleted.

Definition at line 236 of file octree_pointcloud.hpp.

◆ deleteVoxelAtPoint() [2/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::deleteVoxelAtPoint ( const PointT point_arg)

Delete leaf node / voxel at given point.

Parameters
[in]point_argpoint addressing the voxel to be deleted.

Definition at line 215 of file octree_pointcloud.hpp.

◆ enableDynamicDepth()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::enableDynamicDepth ( std::size_t  maxObjsPerLeaf)
inline

Enable dynamic octree structure.

Note
Leaf nodes are kept as close to the root as possible and are only expanded if the number of DataT objects within a leaf node exceeds a fixed limit.
Parameters
maxObjsPerLeafmaximum number of DataT objects per leaf

Definition at line 417 of file octree_pointcloud.h.

◆ expandLeafNode()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::expandLeafNode ( LeafNode leaf_node,
BranchNode parent_branch,
unsigned char  child_idx,
unsigned int  depth_mask 
)
protected

Add point at index from input pointcloud dataset to octree.

Parameters
[in]leaf_nodeto be expanded
[in]parent_branchparent of leaf node to be expanded
[in]child_idxchild index of leaf node (in parent branch)
[in]depth_maskof leaf node to be expanded

Definition at line 604 of file octree_pointcloud.hpp.

◆ findLeafAtPoint()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
LeafContainerT* pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::findLeafAtPoint ( const PointT point_arg) const
inlineprotected

Find octree leaf node at a given point.

Parameters
[in]point_argquery point
Returns
pointer to leaf node. If leaf node does not exist, pointer is 0.

Definition at line 458 of file octree_pointcloud.h.

◆ genLeafNodeCenterFromOctreeKey()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genLeafNodeCenterFromOctreeKey ( const OctreeKey key_arg,
PointT point_arg 
) const
protected

Generate a point at center of leaf node voxel.

Parameters
[in]key_argoctree key addressing a leaf node.
[out]point_argwrite leaf node voxel center to this point reference

Definition at line 853 of file octree_pointcloud.hpp.

◆ genOctreeKeyForDataT()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
bool pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genOctreeKeyForDataT ( const int &  data_arg,
OctreeKey key_arg 
) const
protectedvirtual

Virtual method for generating octree key for a given point index.

Note
This method enables to assign indices to leaf nodes during octree deserialization.
Parameters
[in]data_argindex value representing a point in the dataset given by setInputCloud
[out]key_argwrite octree key to this reference
Returns
"true" - octree keys are assignable

Definition at line 836 of file octree_pointcloud.hpp.

◆ genOctreeKeyforPoint() [1/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genOctreeKeyforPoint ( const double  point_x_arg,
const double  point_y_arg,
const double  point_z_arg,
OctreeKey key_arg 
) const
protected

Generate octree key for voxel at a given point.

Parameters
[in]point_x_argX coordinate of point addressing a voxel
[in]point_y_argY coordinate of point addressing a voxel
[in]point_z_argZ coordinate of point addressing a voxel
[out]key_argwrite octree key to this reference

Definition at line 814 of file octree_pointcloud.hpp.

◆ genOctreeKeyforPoint() [2/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genOctreeKeyforPoint ( const PointT point_arg,
OctreeKey key_arg 
) const
protected

Generate octree key for voxel at a given point.

Parameters
[in]point_argthe point addressing a voxel
[out]key_argwrite octree key to this reference

Definition at line 792 of file octree_pointcloud.hpp.

Referenced by pcl::octree::OctreePointCloud< PointT, OctreeContainerPointIndex, OctreeContainerEmpty, OctreeBase< OctreeContainerPointIndex, OctreeContainerEmpty > >::findLeafAtPoint().

◆ genVoxelBoundsFromOctreeKey()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genVoxelBoundsFromOctreeKey ( const OctreeKey key_arg,
unsigned int  tree_depth_arg,
Eigen::Vector3f &  min_pt,
Eigen::Vector3f &  max_pt 
) const
protected

Generate bounds of an octree voxel using octree key and tree depth arguments.

Parameters
[in]key_argoctree key addressing an octree node.
[in]tree_depth_argoctree depth of query voxel
[out]min_ptlower bound of voxel
[out]max_ptupper bound of voxel

Definition at line 900 of file octree_pointcloud.hpp.

Referenced by pcl::octree::OctreePointCloud< PointT, OctreeContainerPointIndex, OctreeContainerEmpty, OctreeBase< OctreeContainerPointIndex, OctreeContainerEmpty > >::getVoxelBounds().

◆ genVoxelCenterFromOctreeKey()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::genVoxelCenterFromOctreeKey ( const OctreeKey key_arg,
unsigned int  tree_depth_arg,
PointT point_arg 
) const
protected

Generate a point at center of octree voxel at given tree level.

Parameters
[in]key_argoctree key addressing an octree node.
[in]tree_depth_argoctree depth of query voxel
[out]point_argwrite leaf node center point to this reference

Definition at line 871 of file octree_pointcloud.hpp.

◆ getApproxIntersectedVoxelCentersBySegment()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
int pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getApproxIntersectedVoxelCentersBySegment ( const Eigen::Vector3f &  origin,
const Eigen::Vector3f &  end,
AlignedPointTVector voxel_center_list,
float  precision = 0.2 
)

Get a PointT vector of centers of voxels intersected by a line segment.

This returns a approximation of the actual intersected voxels by walking along the line with small steps. Voxels are ordered, from closest to furthest w.r.t. the origin.

Parameters
[in]originorigin of the line segment
[in]endend of the line segment
[out]voxel_center_listresults are written to this vector of PointT elements
[in]precisiondetermines the size of the steps: step_size = octree_resolution x precision
Returns
number of intersected voxels

Definition at line 269 of file octree_pointcloud.hpp.

◆ getBoundingBox()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getBoundingBox ( double &  min_x_arg,
double &  min_y_arg,
double &  min_z_arg,
double &  max_x_arg,
double &  max_y_arg,
double &  max_z_arg 
) const

Get bounding box for octree.

Note
Bounding box cannot be changed once the octree contains elements.
Parameters
[in]min_x_argX coordinate of lower bounding box corner
[in]min_y_argY coordinate of lower bounding box corner
[in]min_z_argZ coordinate of lower bounding box corner
[in]max_x_argX coordinate of upper bounding box corner
[in]max_y_argY coordinate of upper bounding box corner
[in]max_z_argZ coordinate of upper bounding box corner

Definition at line 488 of file octree_pointcloud.hpp.

◆ getEpsilon()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getEpsilon ( ) const
inline

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

Definition at line 155 of file octree_pointcloud.h.

◆ getIndices()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
const IndicesConstPtr pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getIndices ( ) const
inline

Get a pointer to the vector of indices used.

Returns
pointer to vector of indices used.

Definition at line 128 of file octree_pointcloud.h.

◆ getInputCloud()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
PointCloudConstPtr pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getInputCloud ( ) const
inline

Get a pointer to the input point cloud dataset.

Returns
pointer to pointcloud input class.

Definition at line 137 of file octree_pointcloud.h.

◆ getKeyBitSize()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getKeyBitSize
protected

◆ getOccupiedVoxelCenters()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
int pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getOccupiedVoxelCenters ( AlignedPointTVector voxel_center_list_arg) const

Get a PointT vector of centers of all occupied voxels.

Parameters
[out]voxel_center_list_argresults are written to this vector of PointT elements
Returns
number of occupied voxels

Definition at line 252 of file octree_pointcloud.hpp.

◆ getOccupiedVoxelCentersRecursive()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
int pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getOccupiedVoxelCentersRecursive ( const BranchNode node_arg,
const OctreeKey key_arg,
AlignedPointTVector voxel_center_list_arg 
) const
protected

Recursively search the tree for all leaf nodes and return a vector of voxel centers.

Parameters
[in]node_argcurrent octree node to be explored
[in]key_argoctree key addressing a leaf node.
[out]voxel_center_list_argresults are written to this vector of PointT elements
Returns
number of voxels found

Definition at line 967 of file octree_pointcloud.hpp.

◆ getPointByIndex()

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
const PointT & pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getPointByIndex ( const unsigned int  index_arg) const
protected

Get point at index from input pointcloud dataset.

Parameters
[in]index_argindex representing the point in the dataset given by setInputCloud
Returns
PointT from input pointcloud dataset

Definition at line 702 of file octree_pointcloud.hpp.

◆ getResolution()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getResolution ( ) const
inline

Get octree voxel resolution.

Returns
voxel resolution at lowest tree level

Definition at line 178 of file octree_pointcloud.h.

◆ getTreeDepth()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
unsigned int pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getTreeDepth ( ) const
inline

Get the maximum depth of the octree.

Returns
depth_arg: maximum depth of octree

Definition at line 187 of file octree_pointcloud.h.

◆ getVoxelBounds()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getVoxelBounds ( const OctreeIteratorBase< OctreeT > &  iterator,
Eigen::Vector3f &  min_pt,
Eigen::Vector3f &  max_pt 
) const
inline

Generate bounds of the current voxel of an octree iterator.

Parameters
[in]iteratoroctree iterator
[out]min_ptlower bound of voxel
[out]max_ptupper bound of voxel

Definition at line 401 of file octree_pointcloud.h.

◆ getVoxelSquaredDiameter() [1/2]

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getVoxelSquaredDiameter ( ) const
inline

◆ getVoxelSquaredDiameter() [2/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getVoxelSquaredDiameter ( unsigned int  tree_depth_arg) const

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

Parameters
[in]tree_depth_argdepth/level in octree
Returns
squared diameter

Definition at line 954 of file octree_pointcloud.hpp.

◆ getVoxelSquaredSideLen() [1/2]

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getVoxelSquaredSideLen ( ) const
inline

Calculates the squared voxel cube side length at leaf level.

Returns
squared voxel cube side length

Definition at line 390 of file octree_pointcloud.h.

Referenced by pcl::octree::OctreePointCloud< PointT, OctreeContainerPointIndex, OctreeContainerEmpty, OctreeBase< OctreeContainerPointIndex, OctreeContainerEmpty > >::getVoxelSquaredSideLen().

◆ getVoxelSquaredSideLen() [2/2]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::getVoxelSquaredSideLen ( unsigned int  tree_depth_arg) const

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

Parameters
[in]tree_depth_argdepth/level in octree
Returns
squared voxel cube side length

Definition at line 933 of file octree_pointcloud.hpp.

◆ isPointWithinBoundingBox()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
bool pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::isPointWithinBoundingBox ( const PointT point_idx_arg) const
inlineprotected

Checks if given point is within the bounding box of the octree.

Parameters
[in]point_idx_argpoint to be checked for bounding box violations
Returns
"true" - no bound violation

Definition at line 488 of file octree_pointcloud.h.

◆ isVoxelOccupiedAtPoint() [1/3]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
bool pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::isVoxelOccupiedAtPoint ( const double  point_x_arg,
const double  point_y_arg,
const double  point_z_arg 
) const

Check if voxel at given point coordinates exist.

Parameters
[in]point_x_argX coordinate of point to be checked
[in]point_y_argY coordinate of point to be checked
[in]point_z_argZ coordinate of point to be checked
Returns
"true" if voxel exist; "false" otherwise

Definition at line 194 of file octree_pointcloud.hpp.

◆ isVoxelOccupiedAtPoint() [2/3]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
bool pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::isVoxelOccupiedAtPoint ( const int &  point_idx_arg) const

Check if voxel at given point from input cloud exist.

Parameters
[in]point_idx_argpoint to be checked
Returns
"true" if voxel exist; "false" otherwise

Definition at line 178 of file octree_pointcloud.hpp.

◆ isVoxelOccupiedAtPoint() [3/3]

template<typename PointT , typename LeafContainerT , typename BranchContainerT , typename OctreeT >
bool pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::isVoxelOccupiedAtPoint ( const PointT point_arg) const

Check if voxel at given point exist.

Parameters
[in]point_argpoint to be checked
Returns
"true" if voxel exist; "false" otherwise

Definition at line 156 of file octree_pointcloud.hpp.

◆ setEpsilon()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::setEpsilon ( double  eps)
inline

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

Parameters
[in]epsprecision (error bound) for nearest neighbors searches

Definition at line 147 of file octree_pointcloud.h.

◆ setInputCloud()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::setInputCloud ( const PointCloudConstPtr cloud_arg,
const IndicesConstPtr indices_arg = IndicesConstPtr() 
)
inline

Provide a pointer to the input data set.

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

Definition at line 117 of file octree_pointcloud.h.

Referenced by pcl::TextureMapping< PointInT >::removeOccludedPoints(), and pcl::TextureMapping< PointInT >::showOcclusions().

◆ setResolution()

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
void pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::setResolution ( double  resolution_arg)
inline

Set/change the octree voxel resolution.

Parameters
[in]resolution_argside length of voxels at lowest tree level

Definition at line 164 of file octree_pointcloud.h.

Member Data Documentation

◆ bounding_box_defined_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
bool pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::bounding_box_defined_
protected

◆ epsilon_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::epsilon_
protected

◆ indices_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
IndicesConstPtr pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::indices_
protected

◆ input_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
PointCloudConstPtr pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::input_
protected

◆ max_objs_per_leaf_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
std::size_t pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_objs_per_leaf_
protected

Amount of DataT objects per leafNode before expanding branch.

Note
zero indicates a fixed/maximum depth octree structure

Definition at line 599 of file octree_pointcloud.h.

Referenced by pcl::octree::OctreePointCloud< PointT, OctreeContainerPointIndex, OctreeContainerEmpty, OctreeBase< OctreeContainerPointIndex, OctreeContainerEmpty > >::enableDynamicDepth().

◆ max_x_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_x_
protected

◆ max_y_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_y_
protected

◆ max_z_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::max_z_
protected

◆ min_x_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::min_x_
protected

◆ min_y_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::min_y_
protected

◆ min_z_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::min_z_
protected

◆ resolution_

template<typename PointT , typename LeafContainerT = OctreeContainerPointIndices, typename BranchContainerT = OctreeContainerEmpty, typename OctreeT = OctreeBase<LeafContainerT, BranchContainerT>>
double pcl::octree::OctreePointCloud< PointT, LeafContainerT, BranchContainerT, OctreeT >::resolution_
protected

The documentation for this class was generated from the following files: