Point Cloud Library (PCL)
1.11.1-dev
|
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 () |
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... | |
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
This octree implementation keeps two separate octree structures in memory which allows for differentially comparison of the octree structures (change detection, differential encoding).
Definition at line 217 of file octree2buf_base.h.
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::BranchContainer = BranchContainerT |
Definition at line 232 of file octree2buf_base.h.
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::BranchNode = BufferedBranchNode<BranchContainerT> |
Definition at line 229 of file octree2buf_base.h.
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::BreadthFirstIterator = OctreeBreadthFirstIterator<OctreeT> |
Definition at line 287 of file octree2buf_base.h.
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstBreadthFirstIterator = const OctreeBreadthFirstIterator<OctreeT> |
Definition at line 288 of file octree2buf_base.h.
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstDepthFirstIterator = const OctreeDepthFirstIterator<OctreeT> |
Definition at line 274 of file octree2buf_base.h.
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstIterator = const OctreeDepthFirstIterator<OctreeT> |
Definition at line 237 of file octree2buf_base.h.
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstLeafNodeBreadthIterator = const OctreeLeafNodeBreadthFirstIterator<OctreeT> |
Definition at line 303 of file octree2buf_base.h.
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstLeafNodeDepthFirstIterator = const OctreeLeafNodeDepthFirstIterator<OctreeT> |
Definition at line 259 of file octree2buf_base.h.
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstLeafNodeIterator = const OctreeLeafNodeDepthFirstIterator<OctreeT> |
Definition at line 254 of file octree2buf_base.h.
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::DepthFirstIterator = OctreeDepthFirstIterator<OctreeT> |
Definition at line 273 of file octree2buf_base.h.
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::Iterator = OctreeDepthFirstIterator<OctreeT> |
Definition at line 236 of file octree2buf_base.h.
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafContainer = LeafContainerT |
Definition at line 233 of file octree2buf_base.h.
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafNode = OctreeLeafNode<LeafContainerT> |
Definition at line 230 of file octree2buf_base.h.
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafNodeBreadthIterator = OctreeLeafNodeBreadthFirstIterator<OctreeT> |
Definition at line 301 of file octree2buf_base.h.
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafNodeDepthFirstIterator = OctreeLeafNodeDepthFirstIterator<OctreeT> |
Definition at line 257 of file octree2buf_base.h.
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafNodeIterator = OctreeLeafNodeDepthFirstIterator<OctreeT> |
Definition at line 253 of file octree2buf_base.h.
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::OctreeT = Octree2BufBase<LeafContainerT, BranchContainerT> |
Definition at line 220 of file octree2buf_base.h.
pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::Octree2BufBase |
Empty constructor.
Definition at line 46 of file octree2buf_base.hpp.
|
virtual |
Empty deconstructor.
Definition at line 59 of file octree2buf_base.hpp.
|
inline |
Copy constructor.
Definition at line 325 of file octree2buf_base.h.
|
inline |
Definition at line 239 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 603 of file octree2buf_base.h.
|
inline |
Definition at line 290 of file octree2buf_base.h.
|
inline |
Definition at line 295 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 788 of file octree2buf_base.h.
|
inlineprotected |
Create a leaf node.
key_arg | octree key addressing a leaf node. |
Definition at line 556 of file octree2buf_base.h.
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 120 of file octree2buf_base.hpp.
|
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 804 of file octree2buf_base.h.
|
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 356 of file octree2buf_base.hpp.
Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::createLeaf().
|
inlineprotected |
Delete branch and all its subchilds from octree (both buffers)
branch_arg | reference to octree branch class |
Definition at line 762 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::deleteBranchChild().
|
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 716 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::deleteBranch(), and pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::deleteBranchChild().
|
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 753 of file octree2buf_base.h.
|
inline |
Delete the octree structure in the current buffer.
Definition at line 445 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 502 of file octree2buf_base.hpp.
Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::removeLeaf().
|
inline |
Delete octree structure of previous buffer.
Definition at line 438 of file octree2buf_base.h.
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteTree |
Delete the octree structure and its leaf nodes.
Definition at line 161 of file octree2buf_base.hpp.
|
inline |
Definition at line 276 of file octree2buf_base.h.
|
inline |
Definition at line 281 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 269 of file octree2buf_base.hpp.
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 298 of file octree2buf_base.hpp.
|
inlineprotectedvirtual |
Callback executed for every leaf node data during deserialization.
Definition at line 928 of file octree2buf_base.h.
|
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 643 of file octree2buf_base.hpp.
|
inline |
Definition at line 244 of file octree2buf_base.h.
|
inlineprotected |
Check if leaf doesn't exist in the octree.
key_arg | octree key addressing a leaf node. |
Definition at line 574 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 134 of file octree2buf_base.hpp.
|
inlineprotected |
Find leaf node.
key_arg | octree key addressing a leaf node. |
Definition at line 542 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 106 of file octree2buf_base.hpp.
Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::existLeaf().
|
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 466 of file octree2buf_base.hpp.
Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::findLeaf().
|
inlineprotected |
Generate bit pattern reflecting the existence of child node pointers for current buffer.
branch_arg | reference to octree branch class |
Definition at line 639 of file octree2buf_base.h.
|
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 660 of file octree2buf_base.h.
|
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 615 of file octree2buf_base.h.
|
inline |
Return the amount of existing branches in the octree.
Definition at line 426 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 681 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::hasBranchChanges().
|
inline |
Return the amount of existing leafs in the octree.
Definition at line 417 of file octree2buf_base.h.
|
inlineprotected |
Retrieve root node.
Definition at line 531 of file octree2buf_base.h.
|
inline |
Get the maximum depth of the octree.
Definition at line 369 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 705 of file octree2buf_base.h.
|
inline |
Definition at line 306 of file octree2buf_base.h.
|
inline |
Definition at line 313 of file octree2buf_base.h.
|
inline |
Definition at line 261 of file octree2buf_base.h.
|
inline |
Definition at line 267 of file octree2buf_base.h.
|
inlineprotected |
Test if octree is able to dynamically change its depth.
This is required for adaptive bounding box adjustment.
Definition at line 946 of file octree2buf_base.h.
|
inline |
Copy constructor.
Definition at line 339 of file octree2buf_base.h.
|
inlineprotected |
Prints binary representation of a byte - used for debugging.
data_arg | - byte to be printed to stdout |
Definition at line 955 of file octree2buf_base.h.
|
inlineprotected |
Remove leaf node from octree.
key_arg | octree key addressing a leaf node. |
Definition at line 583 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 147 of file octree2buf_base.hpp.
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 249 of file octree2buf_base.hpp.
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 337 of file octree2buf_base.hpp.
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 202 of file octree2buf_base.hpp.
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 221 of file octree2buf_base.hpp.
|
inlineprotectedvirtual |
Callback executed for every leaf node data during serialization.
Definition at line 922 of file octree2buf_base.h.
|
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 554 of file octree2buf_base.hpp.
|
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 626 of file octree2buf_base.h.
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 69 of file octree2buf_base.hpp.
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.
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::switchBuffers |
Switch buffers and reset current octree structure.
Definition at line 178 of file octree2buf_base.hpp.
|
protected |
Recursively explore the octree and remove unused branch and leaf nodes.
branch_arg | current branch node |
Definition at line 791 of file octree2buf_base.hpp.
Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::deleteCurrentBuffer(), and pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::deletePreviousBuffer().
|
friend |
Definition at line 225 of file octree2buf_base.h.
|
friend |
Definition at line 224 of file octree2buf_base.h.
|
friend |
Definition at line 223 of file octree2buf_base.h.
|
friend |
Definition at line 227 of file octree2buf_base.h.
|
friend |
Definition at line 226 of file octree2buf_base.h.
|
protected |
Amount of branch nodes
Definition at line 975 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::getBranchCount(), and pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::operator=().
|
protected |
Currently active octree buffer
Definition at line 987 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::branchHasChild(), pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::createBranchChild(), pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::createLeafChild(), pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::deleteBranchChild(), pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::deleteCurrentBuffer(), pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::getBranchBitPattern(), pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::getBranchChildPtr(), pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::operator=(), and pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::setBranchChildPtr().
|
protected |
Depth mask based on octree depth
Definition at line 981 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::createLeaf(), pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::findLeaf(), pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::operator=(), and pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::removeLeaf().
|
protected |
Enable dynamic_depth.
Definition at line 997 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::operator=().
|
protected |
Amount of leaf nodes
Definition at line 972 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::deleteCurrentBuffer(), pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::getLeafCount(), and pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::operator=().
|
protected |
key range
Definition at line 984 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::operator=(), and pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::removeLeaf().
|
protected |
Octree depth.
Definition at line 993 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::getTreeDepth(), pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::leaf_breadth_begin(), and pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::operator=().
|
protected |
Pointer to root branch node of octree
Definition at line 978 of file octree2buf_base.h.
Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::createLeaf(), pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::deleteCurrentBuffer(), pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::deletePreviousBuffer(), pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::findLeaf(), pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::getRootNode(), pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::operator=(), and pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::removeLeaf().
|
protected |