point_cloud_library / 1.12.1 / classpcl_1_1octree_1_1_octree2_buf_base.html /

Octree double buffer class More...

#include <pcl/octree/octree2buf_base.h>

Public Types

using OctreeT = Octree2BufBase< LeafContainerT, BranchContainerT >
using BranchNode = BufferedBranchNode< BranchContainerT >
using LeafNode = OctreeLeafNode< LeafContainerT >
using BranchContainer = BranchContainerT
using LeafContainer = LeafContainerT
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 LeafNodeBreadthIterator = OctreeLeafNodeBreadthFirstIterator< OctreeT >
using ConstLeafNodeBreadthIterator = const OctreeLeafNodeBreadthFirstIterator< OctreeT >

Public Member Functions

Iterator begin (uindex_t max_depth_arg=0)
const Iterator end ()
LeafNodeDepthFirstIterator leaf_depth_begin (uindex_t max_depth_arg=0)
const LeafNodeDepthFirstIterator leaf_depth_end ()
DepthFirstIterator depth_begin (uindex_t maxDepth_arg=0)
const DepthFirstIterator depth_end ()
BreadthFirstIterator breadth_begin (uindex_t max_depth_arg=0)
const BreadthFirstIterator breadth_end ()
LeafNodeBreadthIterator leaf_breadth_begin (uindex_t 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 (uindex_t max_voxel_index_arg)
Set the maximum amount of voxels per dimension. More...
void setTreeDepth (uindex_t depth_arg)
Set the maximum depth of the octree. More...
uindex_t getTreeDepth () const
Get the maximum depth of the octree. More...
LeafContainerT * createLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg)
Create new leaf node at (idx_x_arg, idx_y_arg, idx_z_arg). More...
LeafContainerT * findLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg)
Find leaf node at (idx_x_arg, idx_y_arg, idx_z_arg). More...
bool existLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t idx_z_arg) const
Check for the existence of leaf node at (idx_x_arg, idx_y_arg, idx_z_arg). More...
void removeLeaf (uindex_t idx_x_arg, uindex_t idx_y_arg, uindex_t 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...
uindex_t createLeafRecursive (const OctreeKey &key_arg, uindex_t 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, uindex_t 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, uindex_t 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, uindex_t 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...
uindex_t 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_
flags indicating if unused branches and leafs might exist in previous buffer
More...
uindex_t octree_depth_
Octree depth. More...
bool dynamic_depth_enabled_
Enable dynamic_depth. More...

Friends

class OctreeIteratorBase< OctreeT >
class OctreeDepthFirstIterator< OctreeT >
class OctreeBreadthFirstIterator< OctreeT >
class OctreeLeafNodeDepthFirstIterator< OctreeT >
class OctreeLeafNodeBreadthFirstIterator< OctreeT >

Detailed Description

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
class pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >

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).

Note
The tree depth defines the maximum amount of octree voxels / leaf nodes (should be initially defined).
All leaf nodes are addressed by integer indices.
The tree depth equates to the bit length of the voxel indices.
Author
Julius Kammerl ( juliu.nosp@m.s@ka.nosp@m.mmerl.nosp@m..de)

Definition at line 217 of file octree2buf_base.h.

Member Typedef Documentation

BranchContainer

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::BranchContainer = BranchContainerT

Definition at line 232 of file octree2buf_base.h.

BranchNode

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::BranchNode = BufferedBranchNode<BranchContainerT>

Definition at line 229 of file octree2buf_base.h.

BreadthFirstIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::BreadthFirstIterator = OctreeBreadthFirstIterator<OctreeT>

Definition at line 287 of file octree2buf_base.h.

ConstBreadthFirstIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstBreadthFirstIterator = const OctreeBreadthFirstIterator<OctreeT>

Definition at line 288 of file octree2buf_base.h.

ConstDepthFirstIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstDepthFirstIterator = const OctreeDepthFirstIterator<OctreeT>

Definition at line 274 of file octree2buf_base.h.

ConstIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstIterator = const OctreeDepthFirstIterator<OctreeT>

Definition at line 237 of file octree2buf_base.h.

ConstLeafNodeBreadthIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstLeafNodeBreadthIterator = const OctreeLeafNodeBreadthFirstIterator<OctreeT>

Definition at line 303 of file octree2buf_base.h.

ConstLeafNodeDepthFirstIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstLeafNodeDepthFirstIterator = const OctreeLeafNodeDepthFirstIterator<OctreeT>

Definition at line 259 of file octree2buf_base.h.

ConstLeafNodeIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::ConstLeafNodeIterator = const OctreeLeafNodeDepthFirstIterator<OctreeT>

Definition at line 254 of file octree2buf_base.h.

DepthFirstIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::DepthFirstIterator = OctreeDepthFirstIterator<OctreeT>

Definition at line 273 of file octree2buf_base.h.

Iterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::Iterator = OctreeDepthFirstIterator<OctreeT>

Definition at line 236 of file octree2buf_base.h.

LeafContainer

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafContainer = LeafContainerT

Definition at line 233 of file octree2buf_base.h.

LeafNode

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafNode = OctreeLeafNode<LeafContainerT>

Definition at line 230 of file octree2buf_base.h.

LeafNodeBreadthIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafNodeBreadthIterator = OctreeLeafNodeBreadthFirstIterator<OctreeT>

Definition at line 301 of file octree2buf_base.h.

LeafNodeDepthFirstIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafNodeDepthFirstIterator = OctreeLeafNodeDepthFirstIterator<OctreeT>

Definition at line 257 of file octree2buf_base.h.

LeafNodeIterator

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::LeafNodeIterator = OctreeLeafNodeDepthFirstIterator<OctreeT>

Definition at line 253 of file octree2buf_base.h.

OctreeT

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
using pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::OctreeT = Octree2BufBase<LeafContainerT, BranchContainerT>

Definition at line 220 of file octree2buf_base.h.

Constructor & Destructor Documentation

Octree2BufBase() [1/2]

template<typename LeafContainerT , typename BranchContainerT >
pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::Octree2BufBase

Empty constructor.

Definition at line 46 of file octree2buf_base.hpp.

~Octree2BufBase()

template<typename LeafContainerT , typename BranchContainerT >
pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::~Octree2BufBase
virtual

Empty deconstructor.

Definition at line 59 of file octree2buf_base.hpp.

Octree2BufBase() [2/2]

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::Octree2BufBase ( const Octree2BufBase< LeafContainerT, BranchContainerT > & source )
inline

Copy constructor.

Definition at line 325 of file octree2buf_base.h.

Member Function Documentation

begin()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
Iterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::begin ( uindex_t max_depth_arg = 0 )
inline

Definition at line 239 of file octree2buf_base.h.

branchHasChild()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
bool pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::branchHasChild ( const BranchNode & branch_arg,
unsigned char child_idx_arg
) const
inlineprotected

Check if branch is pointing to a particular child node.

Parameters
branch_arg reference to octree branch class
child_idx_arg index to child node
Returns
"true" if pointer to child node exists; "false" otherwise

Definition at line 601 of file octree2buf_base.h.

breadth_begin()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
BreadthFirstIterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::breadth_begin ( uindex_t max_depth_arg = 0 )
inline

Definition at line 290 of file octree2buf_base.h.

breadth_end()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
const BreadthFirstIterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::breadth_end ( )
inline

Definition at line 295 of file octree2buf_base.h.

createBranchChild()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
BranchNode* pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createBranchChild ( BranchNode & branch_arg,
unsigned char child_idx_arg
)
inlineprotected

Fetch and add a new branch child to a branch class in current buffer.

Parameters
branch_arg reference to octree branch class
child_idx_arg index to child node
Returns
pointer of new branch child to this reference

Definition at line 786 of file octree2buf_base.h.

createLeaf() [1/2]

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
LeafContainerT* pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeaf ( const OctreeKey & key_arg )
inlineprotected

Create a leaf node.

Note
If the leaf node at the given octree node does not exist, it will be created and added to the tree.
Parameters
key_arg octree key addressing a leaf node.
Returns
pointer to an existing or created leaf container.

Definition at line 554 of file octree2buf_base.h.

createLeaf() [2/2]

template<typename LeafContainerT , typename BranchContainerT >
LeafContainerT * pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeaf ( uindex_t idx_x_arg,
uindex_t idx_y_arg,
uindex_t idx_z_arg
)

Create new leaf node at (idx_x_arg, idx_y_arg, idx_z_arg).

Note
If leaf node already exist, this method returns the existing node
Parameters
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.
Returns
pointer to new leaf node container.

Definition at line 120 of file octree2buf_base.hpp.

createLeafChild()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
LeafNode* pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeafChild ( BranchNode & branch_arg,
unsigned char child_idx_arg
)
inlineprotected

Fetch and add a new leaf child to a branch class.

Parameters
branch_arg reference to octree branch class
child_idx_arg index to child node
Returns
pointer of new leaf child to this reference

Definition at line 802 of file octree2buf_base.h.

createLeafRecursive()

template<typename LeafContainerT , typename BranchContainerT >
uindex_t pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::createLeafRecursive ( const OctreeKey & key_arg,
uindex_t depth_mask_arg,
BranchNode * branch_arg,
LeafNode *& return_leaf_arg,
BranchNode *& parent_of_leaf_arg,
bool branch_reset_arg = false
)
protected

Create a leaf node at octree key.

If leaf node does already exist, it is returned.

Parameters
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
Returns
depth mask at which leaf node was created/found

Definition at line 357 of file octree2buf_base.hpp.

Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::createLeaf().

deleteBranch()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteBranch ( BranchNode & branch_arg )
inlineprotected

Delete branch and all its subchilds from octree (both buffers)

Parameters
branch_arg reference to octree branch class

Definition at line 760 of file octree2buf_base.h.

Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::deleteBranchChild().

deleteBranchChild() [1/2]

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteBranchChild ( BranchNode & branch_arg,
unsigned char buffer_selector_arg,
unsigned char child_idx_arg
)
inlineprotected

Delete child node and all its subchilds from octree in specific buffer.

Parameters
branch_arg reference to octree branch class
buffer_selector_arg buffer selector
child_idx_arg index to child node

Definition at line 714 of file octree2buf_base.h.

Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::deleteBranch(), and pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::deleteBranchChild().

deleteBranchChild() [2/2]

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteBranchChild ( BranchNode & branch_arg,
unsigned char child_idx_arg
)
inlineprotected

Delete child node and all its subchilds from octree in current buffer.

Parameters
branch_arg reference to octree branch class
child_idx_arg index to child node

Definition at line 751 of file octree2buf_base.h.

deleteCurrentBuffer()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteCurrentBuffer ( )
inline

Delete the octree structure in the current buffer.

Definition at line 443 of file octree2buf_base.h.

deleteLeafRecursive()

template<typename LeafContainerT , typename BranchContainerT >
bool pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteLeafRecursive ( const OctreeKey & key_arg,
uindex_t depth_mask_arg,
BranchNode * branch_arg
)
protected

Recursively search and delete leaf node.

Parameters
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
Returns
"true" if branch does not contain any childs; "false" otherwise. This indicates if current branch can be deleted.

Definition at line 504 of file octree2buf_base.hpp.

Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::removeLeaf().

deletePreviousBuffer()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deletePreviousBuffer ( )
inline

Delete octree structure of previous buffer.

Definition at line 436 of file octree2buf_base.h.

deleteTree()

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deleteTree

Delete the octree structure and its leaf nodes.

Definition at line 162 of file octree2buf_base.hpp.

depth_begin()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
DepthFirstIterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::depth_begin ( uindex_t maxDepth_arg = 0 )
inline

Definition at line 276 of file octree2buf_base.h.

depth_end()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
const DepthFirstIterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::depth_end ( )
inline

Definition at line 281 of file octree2buf_base.h.

deserializeTree() [1/2]

template<typename LeafContainerT , typename BranchContainerT >
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(..).

Parameters
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 270 of file octree2buf_base.hpp.

deserializeTree() [2/2]

template<typename LeafContainerT , typename BranchContainerT >
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.

Parameters
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 299 of file octree2buf_base.hpp.

deserializeTreeCallback()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
virtual void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTreeCallback ( LeafContainerT & ,
const OctreeKey &
)
inlineprotectedvirtual

Callback executed for every leaf node data during deserialization.

Definition at line 926 of file octree2buf_base.h.

deserializeTreeRecursive()

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::deserializeTreeRecursive ( BranchNode * branch_arg,
uindex_t 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
)
protected

Rebuild an octree based on binary XOR octree description and DataT objects for leaf node initialization.

Parameters
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 641 of file octree2buf_base.hpp.

end()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
const Iterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::end ( )
inline

Definition at line 244 of file octree2buf_base.h.

existLeaf() [1/2]

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
bool pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::existLeaf ( const OctreeKey & key_arg ) const
inlineprotected

Check if leaf doesn't exist in the octree.

Parameters
key_arg octree key addressing a leaf node.
Returns
"true" if leaf node is found; "false" otherwise

Definition at line 572 of file octree2buf_base.h.

existLeaf() [2/2]

template<typename LeafContainerT , typename BranchContainerT >
bool pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::existLeaf ( uindex_t idx_x_arg,
uindex_t idx_y_arg,
uindex_t idx_z_arg
) const

Check for the existence of leaf node at (idx_x_arg, idx_y_arg, idx_z_arg).

Parameters
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.
Returns
"true" if leaf node search is successful, otherwise it returns "false".

Definition at line 134 of file octree2buf_base.hpp.

findLeaf() [1/2]

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
LeafContainerT* pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::findLeaf ( const OctreeKey & key_arg ) const
inlineprotected

Find leaf node.

Parameters
key_arg octree key addressing a leaf node.
Returns
pointer to leaf container. If leaf node is not found, this pointer returns 0.

Definition at line 540 of file octree2buf_base.h.

findLeaf() [2/2]

template<typename LeafContainerT , typename BranchContainerT >
LeafContainerT * pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::findLeaf ( uindex_t idx_x_arg,
uindex_t idx_y_arg,
uindex_t idx_z_arg
)

Find leaf node at (idx_x_arg, idx_y_arg, idx_z_arg).

Note
If leaf node already exist, this method returns the existing node
Parameters
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.
Returns
pointer to leaf node container if found, null pointer otherwise.

Definition at line 106 of file octree2buf_base.hpp.

Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::existLeaf().

findLeafRecursive()

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::findLeafRecursive ( const OctreeKey & key_arg,
uindex_t depth_mask_arg,
BranchNode * branch_arg,
LeafContainerT *& result_arg
) const
protected

Recursively search for a given leaf node and return a pointer.

Note
If leaf node does not exist, a 0 pointer is returned.
Parameters
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 468 of file octree2buf_base.hpp.

Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::findLeaf().

getBranchBitPattern() [1/2]

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
char pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getBranchBitPattern ( const BranchNode & branch_arg ) const
inlineprotected

Generate bit pattern reflecting the existence of child node pointers for current buffer.

Parameters
branch_arg reference to octree branch class
Returns
a single byte with 8 bits of child node information

Definition at line 637 of file octree2buf_base.h.

getBranchBitPattern() [2/2]

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
char pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getBranchBitPattern ( const BranchNode & branch_arg,
unsigned char bufferSelector_arg
) const
inlineprotected

Generate bit pattern reflecting the existence of child node pointers in specific buffer.

Parameters
branch_arg reference to octree branch class
bufferSelector_arg buffer selector
Returns
a single byte with 8 bits of child node information

Definition at line 658 of file octree2buf_base.h.

getBranchChildPtr()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
OctreeNode* pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getBranchChildPtr ( const BranchNode & branch_arg,
unsigned char child_idx_arg
) const
inlineprotected

Retrieve a child node pointer for child node at child_idx.

Parameters
branch_arg reference to octree branch class
child_idx_arg index to child node
Returns
pointer to octree child node class

Definition at line 613 of file octree2buf_base.h.

getBranchCount()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
std::size_t pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getBranchCount ( ) const
inline

Return the amount of existing branches in the octree.

Returns
amount of branch nodes.

Definition at line 424 of file octree2buf_base.h.

getBranchXORBitPattern()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
char pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getBranchXORBitPattern ( const BranchNode & branch_arg ) const
inlineprotected

Generate XOR bit pattern reflecting differences between the two octree buffers.

Parameters
branch_arg reference to octree branch class
Returns
a single byte with 8 bits of child node XOR difference information

Definition at line 679 of file octree2buf_base.h.

Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::hasBranchChanges().

getLeafCount()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
std::size_t pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getLeafCount ( ) const
inline

Return the amount of existing leafs in the octree.

Returns
amount of registered leaf nodes.

Definition at line 415 of file octree2buf_base.h.

getRootNode()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
OctreeNode* pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getRootNode ( ) const
inlineprotected

Retrieve root node.

Definition at line 529 of file octree2buf_base.h.

getTreeDepth()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
uindex_t pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::getTreeDepth ( ) const
inline

Get the maximum depth of the octree.

Returns
depth_arg: maximum depth of octree

Definition at line 369 of file octree2buf_base.h.

hasBranchChanges()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
bool pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::hasBranchChanges ( const BranchNode & branch_arg ) const
inlineprotected

Test if branch changed between previous and current buffer.

Parameters
branch_arg reference to octree branch class
Returns
"true", if child node information differs between current and previous octree buffer

Definition at line 703 of file octree2buf_base.h.

leaf_breadth_begin()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
LeafNodeBreadthIterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_breadth_begin ( uindex_t max_depth_arg = 0u )
inline

Definition at line 306 of file octree2buf_base.h.

leaf_breadth_end()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
const LeafNodeBreadthIterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_breadth_end ( )
inline

Definition at line 313 of file octree2buf_base.h.

leaf_depth_begin()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
LeafNodeDepthFirstIterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_depth_begin ( uindex_t max_depth_arg = 0 )
inline

Definition at line 261 of file octree2buf_base.h.

leaf_depth_end()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
const LeafNodeDepthFirstIterator pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_depth_end ( )
inline

Definition at line 267 of file octree2buf_base.h.

octreeCanResize()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
bool pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::octreeCanResize ( )
inlineprotected

Test if octree is able to dynamically change its depth.

This is required for adaptive bounding box adjustment.

Returns
"false" - not resizeable due to XOR serialization

Definition at line 944 of file octree2buf_base.h.

operator=()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
Octree2BufBase& pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::operator= ( const Octree2BufBase< LeafContainerT, BranchContainerT > & source )
inline

Copy constructor.

Definition at line 339 of file octree2buf_base.h.

printBinary()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::printBinary ( char data_arg )
inlineprotected

Prints binary representation of a byte - used for debugging.

Parameters
data_arg - byte to be printed to stdout

Definition at line 953 of file octree2buf_base.h.

removeLeaf() [1/2]

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::removeLeaf ( const OctreeKey & key_arg )
inlineprotected

Remove leaf node from octree.

Parameters
key_arg octree key addressing a leaf node.

Definition at line 581 of file octree2buf_base.h.

removeLeaf() [2/2]

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::removeLeaf ( uindex_t idx_x_arg,
uindex_t idx_y_arg,
uindex_t idx_z_arg
)

Remove leaf node at (idx_x_arg, idx_y_arg, idx_z_arg).

Parameters
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 148 of file octree2buf_base.hpp.

serializeLeafs()

template<typename LeafContainerT , typename BranchContainerT >
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.

Parameters
leaf_container_vector_arg vector of pointers to all LeafContainerT objects in the octree

Definition at line 250 of file octree2buf_base.hpp.

serializeNewLeafs()

template<typename LeafContainerT , typename BranchContainerT >
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.

Parameters
leaf_container_vector_arg vector of pointers to all LeafContainerT objects in the octree

Definition at line 338 of file octree2buf_base.hpp.

serializeTree() [1/2]

template<typename LeafContainerT , typename BranchContainerT >
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.

Parameters
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 203 of file octree2buf_base.hpp.

serializeTree() [2/2]

template<typename LeafContainerT , typename BranchContainerT >
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.

Parameters
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 222 of file octree2buf_base.hpp.

serializeTreeCallback()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
virtual void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::serializeTreeCallback ( LeafContainerT & ,
const OctreeKey &
)
inlineprotectedvirtual

Callback executed for every leaf node data during serialization.

Definition at line 920 of file octree2buf_base.h.

serializeTreeRecursive()

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::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
)
protected

Recursively explore the octree and output binary octree description together with a vector of leaf node DataT content.

Parameters
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 556 of file octree2buf_base.hpp.

setBranchChildPtr()

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::setBranchChildPtr ( BranchNode & branch_arg,
unsigned char child_idx_arg,
OctreeNode * new_child_arg
)
inlineprotected

Assign new child node to branch.

Parameters
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 624 of file octree2buf_base.h.

setMaxVoxelIndex()

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::setMaxVoxelIndex ( uindex_t max_voxel_index_arg )

Set the maximum amount of voxels per dimension.

Parameters
max_voxel_index_arg maximum amount of voxels per dimension

Definition at line 69 of file octree2buf_base.hpp.

setTreeDepth()

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::setTreeDepth ( uindex_t depth_arg )

Set the maximum depth of the octree.

Parameters
depth_arg maximum depth of octree

Definition at line 89 of file octree2buf_base.hpp.

switchBuffers()

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::switchBuffers

Switch buffers and reset current octree structure.

Definition at line 179 of file octree2buf_base.hpp.

treeCleanUpRecursive()

template<typename LeafContainerT , typename BranchContainerT >
void pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::treeCleanUpRecursive ( BranchNode * branch_arg )
protected

Recursively explore the octree and remove unused branch and leaf nodes.

Parameters
branch_arg current branch node

Definition at line 789 of file octree2buf_base.hpp.

Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::deleteCurrentBuffer(), and pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::deletePreviousBuffer().

Friends And Related Function Documentation

OctreeBreadthFirstIterator< OctreeT >

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
friend class OctreeBreadthFirstIterator< OctreeT >
friend

Definition at line 225 of file octree2buf_base.h.

OctreeDepthFirstIterator< OctreeT >

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
friend class OctreeDepthFirstIterator< OctreeT >
friend

Definition at line 224 of file octree2buf_base.h.

OctreeIteratorBase< OctreeT >

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
friend class OctreeIteratorBase< OctreeT >
friend

Definition at line 223 of file octree2buf_base.h.

OctreeLeafNodeBreadthFirstIterator< OctreeT >

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
friend class OctreeLeafNodeBreadthFirstIterator< OctreeT >
friend

Definition at line 227 of file octree2buf_base.h.

OctreeLeafNodeDepthFirstIterator< OctreeT >

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
friend class OctreeLeafNodeDepthFirstIterator< OctreeT >
friend

Definition at line 226 of file octree2buf_base.h.

Member Data Documentation

branch_count_

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
std::size_t pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::branch_count_
protected

buffer_selector_

depth_mask_

dynamic_depth_enabled_

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
bool pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::dynamic_depth_enabled_
protected

Enable dynamic_depth.

Note
Note that this parameter is ignored in octree2buf!

Definition at line 996 of file octree2buf_base.h.

Referenced by pcl::octree::Octree2BufBase< OctreeContainerPointIndices, OctreeContainerEmpty >::operator=().

leaf_count_

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
std::size_t pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::leaf_count_
protected

max_key_

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
OctreeKey pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::max_key_
protected

octree_depth_

root_node_

tree_dirty_flag_

template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
bool pcl::octree::Octree2BufBase< LeafContainerT, BranchContainerT >::tree_dirty_flag_
protected

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

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1octree_1_1_octree2_buf_base.html