Point Cloud Library (PCL)
1.9.1dev

Octree double buffer class More...
#include <pcl/octree/octree2buf_base.h>
Public Member Functions  
Iterator  begin (unsigned int max_depth_arg=0) 
const Iterator  end () 
LeafNodeIterator  leaf_begin (unsigned int max_depth_arg=0) 
const LeafNodeIterator  leaf_end () 
LeafNodeDepthFirstIterator  leaf_depth_begin (unsigned int max_depth_arg=0) 
const LeafNodeDepthFirstIterator  leaf_depth_end () 
DepthFirstIterator  depth_begin (unsigned int maxDepth_arg=0) 
const DepthFirstIterator  depth_end () 
BreadthFirstIterator  breadth_begin (unsigned int max_depth_arg=0) 
const BreadthFirstIterator  breadth_end () 
LeafNodeBreadthIterator  leaf_breadth_begin (unsigned int max_depth_arg=0u) 
const LeafNodeBreadthIterator  leaf_breadth_end () 
Octree2BufBase ()  
Empty constructor. More...  
virtual  ~Octree2BufBase () 
Empty deconstructor. More...  
Octree2BufBase (const Octree2BufBase &source)  
Copy constructor. More...  
Octree2BufBase &  operator= (const Octree2BufBase &source) 
Copy constructor. More...  
void  setMaxVoxelIndex (unsigned int max_voxel_index_arg) 
Set the maximum amount of voxels per dimension. More...  
void  setTreeDepth (unsigned int depth_arg) 
Set the maximum depth of the octree. More...  
unsigned int  getTreeDepth () const 
Get the maximum depth of the octree. More...  
LeafContainerT *  createLeaf (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...  
LeafContainerT *  findLeaf (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 
Check 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 branches in the octree. More...  
void  deleteTree () 
Delete the octree structure and its leaf nodes. More...  
void  deletePreviousBuffer () 
Delete octree structure of previous buffer. More...  
void  deleteCurrentBuffer () 
Delete the octree structure in the current buffer. More...  
void  switchBuffers () 
Switch buffers and reset current octree structure. More...  
void  serializeTree (std::vector< char > &binary_tree_out_arg, bool do_XOR_encoding_arg=false) 
Serialize octree into a binary output vector describing its branch node structure. More...  
void  serializeTree (std::vector< char > &binary_tree_out_arg, std::vector< LeafContainerT * > &leaf_container_vector_arg, bool do_XOR_encoding_arg=false) 
Serialize octree into a binary output vector describing its branch node structure and and push all DataT elements stored in the octree to a vector. More...  
void  serializeLeafs (std::vector< LeafContainerT * > &leaf_container_vector_arg) 
Outputs a vector of all DataT elements that are stored within the octree leaf nodes. More...  
void  serializeNewLeafs (std::vector< LeafContainerT * > &leaf_container_vector_arg) 
Outputs a vector of all DataT elements from leaf nodes, that do not exist in the previous octree buffer. More...  
void  deserializeTree (std::vector< char > &binary_tree_in_arg, bool do_XOR_decoding_arg=false) 
Deserialize a binary octree description vector and create a corresponding octree structure. More...  
void  deserializeTree (std::vector< char > &binary_tree_in_arg, std::vector< LeafContainerT * > &leaf_container_vector_arg, bool do_XOR_decoding_arg=false) 
Deserialize a binary octree description and create a corresponding octree structure. More...  
Protected Member Functions  
OctreeNode *  getRootNode () const 
Retrieve root node. More...  
LeafContainerT *  findLeaf (const OctreeKey &key_arg) const 
Find leaf node. More...  
LeafContainerT *  createLeaf (const OctreeKey &key_arg) 
Create a leaf node. More...  
bool  existLeaf (const OctreeKey &key_arg) const 
Check if leaf doesn't exist in the octree. More...  
void  removeLeaf (const OctreeKey &key_arg) 
Remove leaf node from octree. More...  
bool  branchHasChild (const BranchNode &branch_arg, unsigned char child_idx_arg) const 
Check if branch is pointing to a particular child node. More...  
OctreeNode *  getBranchChildPtr (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 for current buffer. More...  
char  getBranchBitPattern (const BranchNode &branch_arg, unsigned char bufferSelector_arg) const 
Generate bit pattern reflecting the existence of child node pointers in specific buffer. More...  
char  getBranchXORBitPattern (const BranchNode &branch_arg) const 
Generate XOR bit pattern reflecting differences between the two octree buffers. More...  
bool  hasBranchChanges (const BranchNode &branch_arg) const 
Test if branch changed between previous and current buffer. More...  
void  deleteBranchChild (BranchNode &branch_arg, unsigned char buffer_selector_arg, unsigned char child_idx_arg) 
Delete child node and all its subchilds from octree in specific buffer. More...  
void  deleteBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg) 
Delete child node and all its subchilds from octree in current buffer. More...  
void  deleteBranch (BranchNode &branch_arg) 
Delete branch and all its subchilds from octree (both buffers) More...  
BranchNode *  createBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg) 
Fetch and add a new branch child to a branch class in current buffer. More...  
LeafNode *  createLeafChild (BranchNode &branch_arg, unsigned char child_idx_arg) 
Fetch 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, bool branch_reset_arg=false) 
Create a leaf node at octree key. More...  
void  findLeafRecursive (const OctreeKey &key_arg, unsigned int depth_mask_arg, BranchNode *branch_arg, LeafContainerT *&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 (BranchNode *branch_arg, OctreeKey &key_arg, std::vector< char > *binary_tree_out_arg, typename std::vector< LeafContainerT * > *leaf_container_vector_arg, bool do_XOR_encoding_arg=false, bool new_leafs_filter_arg=false) 
Recursively explore the octree and output binary octree description together with a vector of leaf node DataT content. More...  
void  deserializeTreeRecursive (BranchNode *branch_arg, unsigned int depth_mask_arg, OctreeKey &key_arg, typename std::vector< char >::const_iterator &binary_tree_in_it_arg, typename std::vector< char >::const_iterator &binary_tree_in_it_end_arg, typename std::vector< LeafContainerT * >::const_iterator *leaf_container_vector_it_arg, typename std::vector< LeafContainerT * >::const_iterator *leaf_container_vector_it_end_arg, bool branch_reset_arg=false, bool do_XOR_decoding_arg=false) 
Rebuild an octree based on binary XOR octree description and DataT objects for leaf node initialization. More...  
virtual void  serializeTreeCallback (LeafContainerT &, const OctreeKey &) 
Callback executed for every leaf node data during serialization. More...  
virtual void  deserializeTreeCallback (LeafContainerT &, const OctreeKey &) 
Callback executed for every leaf node data during deserialization. More...  
void  treeCleanUpRecursive (BranchNode *branch_arg) 
Recursively explore the octree and remove unused branch and leaf nodes. 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...  
void  printBinary (char data_arg) 
Prints binary representation of a byte  used for debugging. More...  
Protected Attributes  
std::size_t  leaf_count_ 
Amount of leaf nodes. More...  
std::size_t  branch_count_ 
Amount of branch nodes. More...  
BranchNode *  root_node_ 
Pointer to root branch node of octree. More...  
unsigned int  depth_mask_ 
Depth mask based on octree depth. More...  
OctreeKey  max_key_ 
key range More...  
unsigned char  buffer_selector_ 
Currently active octree buffer. More...  
bool  tree_dirty_flag_ 
unsigned int  octree_depth_ 
Octree depth. More...  
bool  dynamic_depth_enabled_ 
Enable dynamic_depth. More...  
Octree double buffer class
Definition at line 221 of file octree2buf_base.h.
typedef BranchContainerT pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::BranchContainer 
Definition at line 238 of file octree2buf_base.h.
typedef BufferedBranchNode<BranchContainerT> pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::BranchNode 
Definition at line 235 of file octree2buf_base.h.
typedef OctreeBreadthFirstIterator<OctreeT> pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::BreadthFirstIterator 
Definition at line 283 of file octree2buf_base.h.
typedef const OctreeBreadthFirstIterator<OctreeT> pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstBreadthFirstIterator 
Definition at line 287 of file octree2buf_base.h.
typedef const OctreeDepthFirstIterator<OctreeT> pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstDepthFirstIterator 
Definition at line 281 of file octree2buf_base.h.
typedef const OctreeDepthFirstIterator<OctreeT> pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstIterator 
Definition at line 243 of file octree2buf_base.h.
typedef const OctreeLeafNodeBreadthFirstIterator<OctreeT> pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstLeafNodeBreadthIterator 
Definition at line 293 of file octree2buf_base.h.
typedef const OctreeLeafNodeDepthFirstIterator<OctreeT> pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstLeafNodeDepthFirstIterator 
Definition at line 268 of file octree2buf_base.h.
typedef const OctreeLeafNodeDepthFirstIterator<OctreeT> pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstLeafNodeIterator 
Definition at line 252 of file octree2buf_base.h.
typedef OctreeDepthFirstIterator<OctreeT> pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::DepthFirstIterator 
Definition at line 277 of file octree2buf_base.h.
typedef OctreeDepthFirstIterator<OctreeT> pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::Iterator 
Definition at line 242 of file octree2buf_base.h.
typedef LeafContainerT pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafContainer 
Definition at line 239 of file octree2buf_base.h.
typedef OctreeLeafNode<LeafContainerT> pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafNode 
Definition at line 236 of file octree2buf_base.h.
typedef OctreeLeafNodeBreadthFirstIterator<OctreeT> pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafNodeBreadthIterator 
Definition at line 289 of file octree2buf_base.h.
typedef OctreeLeafNodeDepthFirstIterator<OctreeT> pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafNodeDepthFirstIterator 
Definition at line 264 of file octree2buf_base.h.
typedef OctreeLeafNodeDepthFirstIterator<OctreeT> pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafNodeIterator 
Definition at line 245 of file octree2buf_base.h.
typedef Octree2BufBase<LeafContainerT, BranchContainerT> pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::OctreeT 
Definition at line 226 of file octree2buf_base.h.
pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::Octree2BufBase  (  ) 
Empty constructor.
Definition at line 48 of file octree2buf_base.hpp.

virtual 
Empty deconstructor.
Definition at line 63 of file octree2buf_base.hpp.
References pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteTree(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::root_node_.

inline 
Copy constructor.
Definition at line 313 of file octree2buf_base.h.

inline 
Definition at line 244 of file octree2buf_base.h.

inlineprotected 
Check if branch is pointing to a particular child node.
branch_arg  reference to octree branch class 
child_idx_arg  index to child node 
Definition at line 562 of file octree2buf_base.h.
References pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr().

inline 
Definition at line 288 of file octree2buf_base.h.

inline 
Definition at line 289 of file octree2buf_base.h.

inlineprotected 
Fetch and add a new branch child to a branch class in current buffer.
branch_arg  reference to octree branch class 
child_idx_arg  index to child node 
Definition at line 744 of file octree2buf_base.h.
References pcl::octree::BufferedBranchNode< ContainerT >::setChildPtr().
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeafRecursive(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTreeRecursive().
LeafContainerT * pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeaf  (  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).
idx_x_arg  index of leaf node in the X axis. 
idx_y_arg  index of leaf node in the Y axis. 
idx_z_arg  index of leaf node in the Z axis. 
Definition at line 116 of file octree2buf_base.hpp.

inlineprotected 
Create a leaf node.
key_arg  octree key addressing a leaf node. 
Definition at line 517 of file octree2buf_base.h.
References pcl::octree::OctreeLeafNode< ContainerT >::getContainerPtr().

inlineprotected 
Fetch and add a new leaf child to a branch class.
branch_arg  reference to octree branch class 
child_idx_arg  index to child node 
Definition at line 761 of file octree2buf_base.h.
References pcl::octree::BufferedBranchNode< ContainerT >::setChildPtr().
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeafRecursive(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTreeRecursive().

protected 
Create a leaf node at octree key.
If leaf node does already exist, it is returned.
key_arg  reference to an octree key 
depth_mask_arg  depth mask used for octree key analysis and for branch depth indicator 
branch_arg  current branch node 
return_leaf_arg  return pointer to leaf container 
parent_of_leaf_arg  return pointer to parent of leaf node 
branch_reset_arg  Reset pointer array of current branch 
Definition at line 322 of file octree2buf_base.hpp.
References pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::branch_count_, pcl::octree::BRANCH_NODE, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::buffer_selector_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createBranchChild(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeafChild(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteBranchChild(), pcl::octree::OctreeKey::getChildIdxWithDepthMask(), pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr(), pcl::octree::OctreeNode::getNodeType(), pcl::octree::BufferedBranchNode< ContainerT >::hasChild(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_count_, pcl::octree::LEAF_NODE, and pcl::octree::BufferedBranchNode< ContainerT >::setChildPtr().

inlineprotected 
Delete branch and all its subchilds from octree (both buffers)
branch_arg  reference to octree branch class 
Definition at line 716 of file octree2buf_base.h.
References pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr(), and pcl::octree::BufferedBranchNode< ContainerT >::setChildPtr().
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteTree().

inlineprotected 
Delete child node and all its subchilds from octree in specific buffer.
branch_arg  reference to octree branch class 
buffer_selector_arg  buffer selector 
child_idx_arg  index to child node 
Definition at line 669 of file octree2buf_base.h.
References pcl::octree::BRANCH_NODE, pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr(), pcl::octree::OctreeNode::getNodeType(), pcl::octree::BufferedBranchNode< ContainerT >::hasChild(), pcl::octree::LEAF_NODE, and pcl::octree::BufferedBranchNode< ContainerT >::setChildPtr().
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeafRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteLeafRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTreeRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTreeRecursive(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::treeCleanUpRecursive().

inlineprotected 
Delete child node and all its subchilds from octree in current buffer.
branch_arg  reference to octree branch class 
child_idx_arg  index to child node 
Definition at line 708 of file octree2buf_base.h.

inline 
Delete the octree structure in the current buffer.
Definition at line 427 of file octree2buf_base.h.

protected 
Recursively search and delete leaf node.
key_arg  reference to an octree key 
depth_mask_arg  depth mask used for octree key analysis and branch depth indicator 
branch_arg  current branch node 
Definition at line 470 of file octree2buf_base.hpp.
References pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::branch_count_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::buffer_selector_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteBranchChild(), pcl::octree::OctreeKey::getChildIdxWithDepthMask(), pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr(), pcl::octree::BufferedBranchNode< ContainerT >::hasChild(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_count_.

inline 
Delete octree structure of previous buffer.
Definition at line 421 of file octree2buf_base.h.
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteTree  (  ) 
Delete the octree structure and its leaf nodes.
Definition at line 149 of file octree2buf_base.hpp.
References pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::branch_count_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteBranch(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::depth_mask_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_count_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::octree_depth_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::root_node_, and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::tree_dirty_flag_.
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::~Octree2BufBase().

inline 
Definition at line 282 of file octree2buf_base.h.

inline 
Definition at line 283 of file octree2buf_base.h.
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTree  (  std::vector< char > &  binary_tree_in_arg, 
bool  do_XOR_decoding_arg = false 

) 
Deserialize a binary octree description vector and create a corresponding octree structure.
Leaf nodes are initialized with getDataTByKey(..).
binary_tree_in_arg  reference to input vector for reading binary tree structure. 
do_XOR_decoding_arg  select if binary tree structure is based on current octree (false) of based on a XOR comparison between current and previous octree 
Definition at line 246 of file octree2buf_base.hpp.
References pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::depth_mask_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTreeRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_count_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::root_node_, and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::tree_dirty_flag_.
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTree  (  std::vector< char > &  binary_tree_in_arg, 
std::vector< LeafContainerT * > &  leaf_container_vector_arg,  
bool  do_XOR_decoding_arg = false 

) 
Deserialize a binary octree description and create a corresponding octree structure.
Leaf nodes are initialized with DataT elements from the dataVector.
binary_tree_in_arg  reference to inpvectoream for reading binary tree structure. 
leaf_container_vector_arg  vector of pointers to all LeafContainerT objects in the octree 
do_XOR_decoding_arg  select if binary tree structure is based on current octree (false) of based on a XOR comparison between current and previous octree 
Definition at line 268 of file octree2buf_base.hpp.
References pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::depth_mask_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTreeRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_count_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::root_node_, and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::tree_dirty_flag_.

inlineprotectedvirtual 
Callback executed for every leaf node data during deserialization.
Definition at line 869 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTreeRecursive().

protected 
Rebuild an octree based on binary XOR octree description and DataT objects for leaf node initialization.
branch_arg  current branch node 
depth_mask_arg  depth mask used for octree key analysis and branch depth indicator 
key_arg  reference to an octree key 
binary_tree_in_it_arg  iterator of binary input data 
binary_tree_in_it_end_arg  
leaf_container_vector_it_arg  iterator pointing to leaf container pointers to be added to a leaf node 
leaf_container_vector_it_end_arg  iterator pointing to leaf container pointers pointing to last object in input container. 
branch_reset_arg  Reset pointer array of current branch 
do_XOR_decoding_arg  select if binary tree structure is based on current octree (false) of based on a XOR comparison between current and previous octree 
Definition at line 622 of file octree2buf_base.hpp.
References pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::branch_count_, pcl::octree::BRANCH_NODE, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::buffer_selector_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createBranchChild(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeafChild(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteBranchChild(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTreeCallback(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getBranchBitPattern(), pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr(), pcl::octree::OctreeNode::getNodeType(), pcl::octree::BufferedBranchNode< ContainerT >::hasChild(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_count_, pcl::octree::LEAF_NODE, pcl::octree::OctreeKey::popBranch(), pcl::octree::OctreeKey::pushBranch(), and pcl::octree::BufferedBranchNode< ContainerT >::setChildPtr().
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTree().

inline 
Definition at line 245 of file octree2buf_base.h.
bool pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::existLeaf  (  unsigned int  idx_x_arg, 
unsigned int  idx_y_arg,  
unsigned int  idx_z_arg  
)  const 
Check for the existence of leaf node at (idx_x_arg, idx_y_arg, idx_z_arg).
idx_x_arg  index of leaf node in the X axis. 
idx_y_arg  index of leaf node in the Y axis. 
idx_z_arg  index of leaf node in the Z axis. 
Definition at line 127 of file octree2buf_base.hpp.

inlineprotected 
Check if leaf doesn't exist in the octree.
key_arg  octree key addressing a leaf node. 
Definition at line 533 of file octree2buf_base.h.
LeafContainerT * pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::findLeaf  (  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).
idx_x_arg  index of leaf node in the X axis. 
idx_y_arg  index of leaf node in the Y axis. 
idx_z_arg  index of leaf node in the Z axis. 
Definition at line 105 of file octree2buf_base.hpp.

inlineprotected 
Find leaf node.
key_arg  octree key addressing a leaf node. 
Definition at line 504 of file octree2buf_base.h.

protected 
Recursively search for a given leaf node and return a pointer.
key_arg  reference to an octree key 
depth_mask_arg  depth mask used for octree key analysis and for branch depth indicator 
branch_arg  current branch node 
result_arg  pointer to leaf container class 
Definition at line 435 of file octree2buf_base.hpp.
References pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::buffer_selector_, pcl::octree::OctreeKey::getChildIdxWithDepthMask(), pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr(), pcl::octree::OctreeLeafNode< ContainerT >::getContainerPtr(), and pcl::octree::BufferedBranchNode< ContainerT >::hasChild().

inlineprotected 
Generate bit pattern reflecting the existence of child node pointers for current buffer.
branch_arg  reference to octree branch class 
Definition at line 595 of file octree2buf_base.h.
References pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr().
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTreeRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTreeRecursive(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::treeCleanUpRecursive().

inlineprotected 
Generate bit pattern reflecting the existence of child node pointers in specific buffer.
branch_arg  reference to octree branch class 
bufferSelector_arg  buffer selector 
Definition at line 615 of file octree2buf_base.h.
References pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr().

inlineprotected 
Retrieve a child node pointer for child node at child_idx.
branch_arg  reference to octree branch class 
child_idx_arg  index to child node 
Definition at line 574 of file octree2buf_base.h.
References pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr().

inline 
Return the amount of existing branches in the octree.
Definition at line 410 of file octree2buf_base.h.

inlineprotected 
Generate XOR bit pattern reflecting differences between the two octree buffers.
branch_arg  reference to octree branch class 
Definition at line 635 of file octree2buf_base.h.
References pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr().
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::treeCleanUpRecursive().

inline 
Return the amount of existing leafs in the octree.
Definition at line 402 of file octree2buf_base.h.

inlineprotected 
Retrieve root node.
Definition at line 494 of file octree2buf_base.h.

inline 
Get the maximum depth of the octree.
Definition at line 357 of file octree2buf_base.h.

inlineprotected 
Test if branch changed between previous and current buffer.
branch_arg  reference to octree branch class 
Definition at line 659 of file octree2buf_base.h.

inline 
Definition at line 255 of file octree2buf_base.h.

inline 
Definition at line 295 of file octree2buf_base.h.

inline 
Definition at line 300 of file octree2buf_base.h.

inline 
Definition at line 269 of file octree2buf_base.h.

inline 
Definition at line 274 of file octree2buf_base.h.

inline 
Definition at line 261 of file octree2buf_base.h.

inlineprotected 
Helper function to calculate the binary logarithm.
n_arg  some value 
Definition at line 888 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::setMaxVoxelIndex().

inlineprotected 
Test if octree is able to dynamically change its depth.
This is required for adaptive bounding box adjustment.
Definition at line 896 of file octree2buf_base.h.

inline 
Copy constructor.
Definition at line 328 of file octree2buf_base.h.
References pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::branch_count_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::buffer_selector_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::depth_mask_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::dynamic_depth_enabled_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_count_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::max_key_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::octree_depth_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::root_node_, and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::tree_dirty_flag_.

inlineprotected 
Prints binary representation of a byte  used for debugging.
data_arg   byte to be printed to stdout 
Definition at line 904 of file octree2buf_base.h.
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::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).
idx_x_arg  index of leaf node in the X axis. 
idx_y_arg  index of leaf node in the Y axis. 
idx_z_arg  index of leaf node in the Z axis. 
Definition at line 138 of file octree2buf_base.hpp.

inlineprotected 
Remove leaf node from octree.
key_arg  octree key addressing a leaf node. 
Definition at line 541 of file octree2buf_base.h.
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeLeafs  (  std::vector< LeafContainerT * > &  leaf_container_vector_arg  ) 
Outputs a vector of all DataT elements that are stored within the octree leaf nodes.
leaf_container_vector_arg  vector of pointers to all LeafContainerT objects in the octree 
Definition at line 229 of file octree2buf_base.hpp.
References pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_count_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::root_node_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTreeRecursive(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::tree_dirty_flag_.
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeNewLeafs  (  std::vector< LeafContainerT * > &  leaf_container_vector_arg  ) 
Outputs a vector of all DataT elements from leaf nodes, that do not exist in the previous octree buffer.
leaf_container_vector_arg  vector of pointers to all LeafContainerT objects in the octree 
Definition at line 305 of file octree2buf_base.hpp.
References pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_count_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::root_node_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTreeRecursive(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::tree_dirty_flag_.
Referenced by pcl::octree::OctreePointCloudChangeDetector< PointT, LeafContainerT, BranchContainerT >::getPointIndicesFromNewVoxels().
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTree  (  std::vector< char > &  binary_tree_out_arg, 
bool  do_XOR_encoding_arg = false 

) 
Serialize octree into a binary output vector describing its branch node structure.
binary_tree_out_arg  reference to output vector for writing binary tree structure. 
do_XOR_encoding_arg  select if binary tree structure should be generated based on current octree (false) of based on a XOR comparison between current and previous octree 
Definition at line 191 of file octree2buf_base.hpp.
References pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::branch_count_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::root_node_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTreeRecursive(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::tree_dirty_flag_.
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTree  (  std::vector< char > &  binary_tree_out_arg, 
std::vector< LeafContainerT * > &  leaf_container_vector_arg,  
bool  do_XOR_encoding_arg = false 

) 
Serialize octree into a binary output vector describing its branch node structure and and push all DataT elements stored in the octree to a vector.
binary_tree_out_arg  reference to output vector for writing binary tree structure. 
leaf_container_vector_arg  pointer to all LeafContainerT objects in the octree 
do_XOR_encoding_arg  select if binary tree structure should be generated based on current octree (false) of based on a XOR comparison between current and previous octree 
Definition at line 208 of file octree2buf_base.hpp.
References pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::branch_count_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_count_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::root_node_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTreeRecursive(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::tree_dirty_flag_.

inlineprotectedvirtual 
Callback executed for every leaf node data during serialization.
Definition at line 862 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTreeRecursive().

protected 
Recursively explore the octree and output binary octree description together with a vector of leaf node DataT content.
branch_arg  current branch node 
key_arg  reference to an octree key 
binary_tree_out_arg  binary output vector 
leaf_container_vector_arg  vector to return pointers to all leaf container in the tree. 
do_XOR_encoding_arg  select if binary tree structure should be generated based on current octree (false) of based on a XOR comparison between current and previous octree 
new_leafs_filter_arg  execute callback only for leaf nodes that did not exist in preceding buffer 
Definition at line 526 of file octree2buf_base.hpp.
References pcl::octree::BRANCH_NODE, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::buffer_selector_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteBranchChild(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getBranchBitPattern(), pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr(), pcl::octree::OctreeLeafNode< ContainerT >::getContainerPtr(), pcl::octree::OctreeNode::getNodeType(), pcl::octree::BufferedBranchNode< ContainerT >::hasChild(), pcl::octree::LEAF_NODE, pcl::octree::OctreeKey::popBranch(), pcl::octree::OctreeKey::pushBranch(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTreeCallback().
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeLeafs(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeNewLeafs(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTree().

inlineprotected 
Assign new child node to branch.
branch_arg  reference to octree branch class 
child_idx_arg  index to child node 
new_child_arg  pointer to new child node 
Definition at line 586 of file octree2buf_base.h.
References pcl::octree::BufferedBranchNode< ContainerT >::setChildPtr().
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::setMaxVoxelIndex  (  unsigned int  max_voxel_index_arg  ) 
Set the maximum amount of voxels per dimension.
max_voxel_index_arg  maximum amount of voxels per dimension 
Definition at line 72 of file octree2buf_base.hpp.
References pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::depth_mask_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::Log2(), and pcl::octree::OctreeKey::maxDepth.
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::setTreeDepth  (  unsigned int  depth_arg  ) 
Set the maximum depth of the octree.
depth_arg  maximum depth of octree 
Definition at line 89 of file octree2buf_base.hpp.
References pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::depth_mask_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::max_key_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::octree_depth_, pcl::octree::OctreeKey::x, pcl::octree::OctreeKey::y, and pcl::octree::OctreeKey::z.
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::switchBuffers  (  ) 
Switch buffers and reset current octree structure.
Definition at line 166 of file octree2buf_base.hpp.
References pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::branch_count_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::buffer_selector_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_count_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::root_node_, pcl::octree::BufferedBranchNode< ContainerT >::setChildPtr(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::tree_dirty_flag_, and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::treeCleanUpRecursive().

protected 
Recursively explore the octree and remove unused branch and leaf nodes.
branch_arg  current branch node 
Definition at line 780 of file octree2buf_base.hpp.
References pcl::octree::BRANCH_NODE, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::buffer_selector_, pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteBranchChild(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getBranchBitPattern(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getBranchXORBitPattern(), pcl::octree::BufferedBranchNode< ContainerT >::getChildPtr(), pcl::octree::OctreeNode::getNodeType(), pcl::octree::BufferedBranchNode< ContainerT >::hasChild(), and pcl::octree::LEAF_NODE.
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::switchBuffers().

friend 
Definition at line 231 of file octree2buf_base.h.

friend 
Definition at line 230 of file octree2buf_base.h.

friend 
Definition at line 229 of file octree2buf_base.h.

friend 
Definition at line 233 of file octree2buf_base.h.

friend 
Definition at line 232 of file octree2buf_base.h.

protected 
Amount of branch nodes.
Definition at line 925 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeafRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteLeafRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteTree(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTreeRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator=(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTree(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::switchBuffers().

protected 
Currently active octree buffer.
Definition at line 937 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeafRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteLeafRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTreeRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::findLeafRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator=(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTreeRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::switchBuffers(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::treeCleanUpRecursive().

protected 
Depth mask based on octree depth.
Definition at line 931 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteTree(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTree(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator=(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::setMaxVoxelIndex(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::setTreeDepth().

protected 
Enable dynamic_depth.
Definition at line 947 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator=().

protected 
Amount of leaf nodes.
Definition at line 922 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeafRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteLeafRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteTree(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTree(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTreeRecursive(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator=(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeLeafs(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeNewLeafs(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTree(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::switchBuffers().

protected 
key range
Definition at line 934 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator=(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::setTreeDepth().

protected 
Octree depth.
Definition at line 943 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteTree(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator=(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::setTreeDepth().

protected 
Pointer to root branch node of octree.
Definition at line 928 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteTree(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTree(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator=(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeLeafs(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeNewLeafs(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTree(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::switchBuffers(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::~Octree2BufBase().

protected 
Definition at line 940 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteTree(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTree(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator=(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeLeafs(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeNewLeafs(), pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTree(), and pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::switchBuffers().