Octree class. More...
#include <pcl/octree/octree_base.h>
Public Member Functions |
|
Iterator | begin (uindex_t max_depth_arg=0u) |
const Iterator | end () |
LeafNodeDepthFirstIterator | leaf_depth_begin (uindex_t max_depth_arg=0u) |
const LeafNodeDepthFirstIterator | leaf_depth_end () |
DepthFirstIterator | depth_begin (uindex_t max_depth_arg=0u) |
const DepthFirstIterator | depth_end () |
BreadthFirstIterator | breadth_begin (uindex_t max_depth_arg=0u) |
const BreadthFirstIterator | breadth_end () |
FixedDepthIterator | fixed_depth_begin (uindex_t fixed_depth_arg=0u) |
const FixedDepthIterator | fixed_depth_end () |
LeafNodeBreadthFirstIterator | leaf_breadth_begin (uindex_t max_depth_arg=0u) |
const LeafNodeBreadthFirstIterator | leaf_breadth_end () |
OctreeBase () | |
Empty constructor. More... |
|
virtual | ~OctreeBase () |
Empty deconstructor. More... |
|
OctreeBase (const OctreeBase &source) | |
Copy constructor. More... |
|
OctreeBase & | operator= (const OctreeBase &source) |
Copy operator. More... |
|
void | setMaxVoxelIndex (uindex_t max_voxel_index_arg) |
Set the maximum amount of voxels per dimension. More... |
|
void | setTreeDepth (uindex_t max_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 |
idx_x_arg 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 branch nodes in the octree. More... |
|
void | deleteTree () |
Delete the octree structure and its leaf nodes. More... |
|
void | serializeTree (std::vector< char > &binary_tree_out_arg) |
Serialize octree into a binary output vector describing its branch node structure. More... |
|
void | serializeTree (std::vector< char > &binary_tree_out_arg, std::vector< LeafContainerT * > &leaf_container_vector_arg) |
Serialize octree into a binary output vector describing its branch node structure and push all LeafContainerT elements stored in the octree to a vector. More... |
|
void | serializeLeafs (std::vector< LeafContainerT * > &leaf_container_vector_arg) |
Outputs a vector of all LeafContainerT elements that are stored within the octree leaf nodes. More... |
|
void | deserializeTree (std::vector< char > &binary_tree_input_arg) |
Deserialize a binary octree description vector and create a corresponding octree structure. More... |
|
void | deserializeTree (std::vector< char > &binary_tree_input_arg, std::vector< LeafContainerT * > &leaf_container_vector_arg) |
Deserialize a binary octree description and create a corresponding octree structure. More... |
|
Protected Member Functions |
|
LeafContainerT * | createLeaf (const OctreeKey &key_arg) |
Create a leaf node. More... |
|
LeafContainerT * | findLeaf (const OctreeKey &key_arg) const |
Find leaf node. More... |
|
bool | existLeaf (const OctreeKey &key_arg) const |
Check for existence of a leaf node in the octree. More... |
|
void | removeLeaf (const OctreeKey &key_arg) |
Remove leaf node from octree. More... |
|
OctreeNode * | getRootNode () const |
Retrieve root node. More... |
|
bool | branchHasChild (const BranchNode &branch_arg, unsigned char child_idx_arg) const |
Check if branch is pointing to a particular child node. More... |
|
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. More... |
|
void | deleteBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg) |
Delete child node and all its subchilds from octree. More... |
|
void | deleteBranch (BranchNode &branch_arg) |
Delete branch and all its subchilds from octree. More... |
|
BranchNode * | createBranchChild (BranchNode &branch_arg, unsigned char child_idx_arg) |
Create and add a new branch child to a branch class. More... |
|
LeafNode * | createLeafChild (BranchNode &branch_arg, unsigned char child_idx_arg) |
Create 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) |
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 (const BranchNode *branch_arg, OctreeKey &key_arg, std::vector< char > *binary_tree_out_arg, typename std::vector< LeafContainerT * > *leaf_container_vector_arg) const |
Recursively explore the octree and output binary octree description together with a vector of leaf node LeafContainerTs. More... |
|
void | deserializeTreeRecursive (BranchNode *branch_arg, uindex_t depth_mask_arg, OctreeKey &key_arg, typename std::vector< char >::const_iterator &binary_tree_input_it_arg, typename std::vector< char >::const_iterator &binary_tree_input_it_end_arg, typename std::vector< LeafContainerT * >::const_iterator *leaf_container_vector_it_arg, typename std::vector< LeafContainerT * >::const_iterator *leaf_container_vector_it_end_arg) |
Recursive method for deserializing octree structure. More... |
|
virtual void | serializeTreeCallback (LeafContainerT &, const OctreeKey &) const |
Callback executed for every leaf node during serialization. More... |
|
virtual void | deserializeTreeCallback (LeafContainerT &, const OctreeKey &) |
Callback executed for every leaf node during deserialization. More... |
|
bool | octreeCanResize () |
Test if octree is able to dynamically change its depth. 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... |
|
uindex_t | octree_depth_ |
Octree depth. More... |
|
bool | dynamic_depth_enabled_ |
Enable dynamic_depth. More... |
|
OctreeKey | max_key_ |
key range More... |
|
Detailed Description
template<typename LeafContainerT = index_t, typename BranchContainerT = OctreeContainerEmpty>
class pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >
Octree class.
- 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.
Definition at line 62 of file octree_base.h.
Member Typedef Documentation
BranchContainer
using pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::BranchContainer = BranchContainerT |
Definition at line 69 of file octree_base.h.
BranchNode
using pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::BranchNode = OctreeBranchNode<BranchContainerT> |
Definition at line 66 of file octree_base.h.
BreadthFirstIterator
using pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::BreadthFirstIterator = OctreeBreadthFirstIterator<OctreeT> |
Definition at line 166 of file octree_base.h.
ConstBreadthFirstIterator
using pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::ConstBreadthFirstIterator = const OctreeBreadthFirstIterator<OctreeT> |
Definition at line 167 of file octree_base.h.
ConstDepthFirstIterator
using pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::ConstDepthFirstIterator = const OctreeDepthFirstIterator<OctreeT> |
Definition at line 150 of file octree_base.h.
ConstFixedDepthIterator
using pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::ConstFixedDepthIterator = const OctreeFixedDepthIterator<OctreeT> |
Definition at line 184 of file octree_base.h.
ConstIterator
using pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::ConstIterator = const OctreeDepthFirstIterator<OctreeT> |
Definition at line 109 of file octree_base.h.
ConstLeafNodeBreadthFirstIterator
using pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::ConstLeafNodeBreadthFirstIterator = const OctreeLeafNodeBreadthFirstIterator<OctreeT> |
Definition at line 201 of file octree_base.h.
ConstLeafNodeDepthFirstIterator
using pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::ConstLeafNodeDepthFirstIterator = const OctreeLeafNodeDepthFirstIterator<OctreeT> |
Definition at line 133 of file octree_base.h.
ConstLeafNodeIterator
using pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::ConstLeafNodeIterator = const OctreeLeafNodeDepthFirstIterator<OctreeT> |
Definition at line 128 of file octree_base.h.
DepthFirstIterator
using pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::DepthFirstIterator = OctreeDepthFirstIterator<OctreeT> |
Definition at line 149 of file octree_base.h.
FixedDepthIterator
using pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::FixedDepthIterator = OctreeFixedDepthIterator<OctreeT> |
Definition at line 183 of file octree_base.h.
Iterator
using pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::Iterator = OctreeDepthFirstIterator<OctreeT> |
Definition at line 108 of file octree_base.h.
LeafContainer
using pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::LeafContainer = LeafContainerT |
Definition at line 70 of file octree_base.h.
LeafNode
using pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::LeafNode = OctreeLeafNode<LeafContainerT> |
Definition at line 67 of file octree_base.h.
LeafNodeBreadthFirstIterator
using pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::LeafNodeBreadthFirstIterator = OctreeLeafNodeBreadthFirstIterator<OctreeT> |
Definition at line 199 of file octree_base.h.
LeafNodeDepthFirstIterator
using pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::LeafNodeDepthFirstIterator = OctreeLeafNodeDepthFirstIterator<OctreeT> |
Definition at line 131 of file octree_base.h.
LeafNodeIterator
using pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::LeafNodeIterator = OctreeLeafNodeDepthFirstIterator<OctreeT> |
Definition at line 127 of file octree_base.h.
OctreeT
using pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::OctreeT = OctreeBase<LeafContainerT, BranchContainerT> |
Definition at line 64 of file octree_base.h.
Constructor & Destructor Documentation
OctreeBase() [1/2]
pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::OctreeBase |
Empty constructor.
Definition at line 48 of file octree_base.hpp.
~OctreeBase()
|
virtual |
Empty deconstructor.
Definition at line 59 of file octree_base.hpp.
OctreeBase() [2/2]
|
inline |
Copy constructor.
Definition at line 223 of file octree_base.h.
Member Function Documentation
begin()
|
inline |
Definition at line 112 of file octree_base.h.
branchHasChild()
|
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 447 of file octree_base.h.
breadth_begin()
|
inline |
Definition at line 170 of file octree_base.h.
breadth_end()
|
inline |
Definition at line 177 of file octree_base.h.
createBranchChild()
|
inlineprotected |
Create and add a new branch child to a branch class.
- 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 545 of file octree_base.h.
createLeaf() [1/2]
|
inlineprotected |
Create a leaf node.
- Parameters
-
key_arg octree key addressing a leaf node.
- Returns
- pointer to leaf node
Definition at line 385 of file octree_base.h.
createLeaf() [2/2]
LeafContainerT * pcl::octree::OctreeBase< 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 119 of file octree_base.hpp.
createLeafChild()
|
inlineprotected |
Create 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 559 of file octree_base.h.
createLeafRecursive()
|
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 node parent_of_leaf_arg return pointer to parent of leaf node
- Returns
- depth mask at which leaf node was created
Definition at line 285 of file octree_base.hpp.
Referenced by pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::createLeaf().
deleteBranch()
|
inlineprotected |
Delete branch and all its subchilds from octree.
- Parameters
-
branch_arg reference to octree branch class
Definition at line 532 of file octree_base.h.
Referenced by pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::deleteBranchChild().
deleteBranchChild()
|
inlineprotected |
Delete child node and all its subchilds from octree.
- Parameters
-
branch_arg reference to octree branch class child_idx_arg index to child node
Definition at line 501 of file octree_base.h.
Referenced by pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::deleteBranch().
deleteLeafRecursive()
|
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, too.
Definition at line 383 of file octree_base.hpp.
Referenced by pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::removeLeaf().
deleteTree()
void pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::deleteTree |
Delete the octree structure and its leaf nodes.
Definition at line 161 of file octree_base.hpp.
depth_begin()
|
inline |
Definition at line 153 of file octree_base.h.
depth_end()
|
inline |
Definition at line 160 of file octree_base.h.
deserializeTree() [1/2]
void pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::deserializeTree | ( | std::vector< char > & | binary_tree_input_arg | ) |
Deserialize a binary octree description vector and create a corresponding octree structure.
Leaf nodes are initialized with getDataTByKey(..).
- Parameters
-
binary_tree_input_arg reference to input vector for reading binary tree structure.
Definition at line 228 of file octree_base.hpp.
deserializeTree() [2/2]
void pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::deserializeTree | ( | std::vector< char > & | binary_tree_input_arg, |
std::vector< LeafContainerT * > & | leaf_container_vector_arg | ||
) |
Deserialize a binary octree description and create a corresponding octree structure.
Leaf nodes are initialized with LeafContainerT elements from the dataVector.
- Parameters
-
binary_tree_input_arg reference to input vector for reading binary tree structure. leaf_container_vector_arg pointer to container vector.
Definition at line 252 of file octree_base.hpp.
deserializeTreeCallback()
|
inlineprotectedvirtual |
Callback executed for every leaf node during deserialization.
Definition at line 667 of file octree_base.h.
deserializeTreeRecursive()
|
protected |
Recursive method for deserializing octree structure.
- 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_input_it_arg iterator to binary input vector binary_tree_input_it_end_arg end iterator of binary input vector leaf_container_vector_it_arg iterator pointing to current LeafContainerT object to be added to a leaf node leaf_container_vector_it_end_arg iterator pointing to last object in LeafContainerT input vector.
Definition at line 492 of file octree_base.hpp.
end()
|
inline |
Definition at line 118 of file octree_base.h.
existLeaf() [1/2]
|
inlineprotected |
Check for existence of a leaf node in the octree.
- Parameters
-
key_arg octree key addressing a leaf node.
- Returns
- "true" if leaf node is found; "false" otherwise
Definition at line 415 of file octree_base.h.
existLeaf() [2/2]
bool pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::existLeaf | ( | uindex_t | idx_x_arg, |
uindex_t | idx_y_arg, | ||
uindex_t | idx_z_arg | ||
) | const |
idx_x_arg 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 133 of file octree_base.hpp.
findLeaf() [1/2]
|
inlineprotected |
Find leaf node.
- Parameters
-
key_arg octree key addressing a leaf node.
- Returns
- pointer to leaf node. If leaf node is not found, this pointer returns 0.
Definition at line 403 of file octree_base.h.
findLeaf() [2/2]
LeafContainerT * pcl::octree::OctreeBase< 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 105 of file octree_base.hpp.
Referenced by pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::existLeaf().
findLeafRecursive()
|
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 node class
Definition at line 345 of file octree_base.hpp.
Referenced by pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::findLeaf().
fixed_depth_begin()
|
inline |
Definition at line 187 of file octree_base.h.
fixed_depth_end()
|
inline |
Definition at line 193 of file octree_base.h.
getBranchBitPattern()
|
inlineprotected |
Generate bit pattern reflecting the existence of child node pointers.
- Parameters
-
branch_arg reference to octree branch class
- Returns
- a single byte with 8 bits of child node information
Definition at line 482 of file octree_base.h.
getBranchChildPtr()
|
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 459 of file octree_base.h.
getBranchCount()
|
inline |
Return the amount of existing branch nodes in the octree.
- Returns
- amount of branch nodes.
Definition at line 320 of file octree_base.h.
getLeafCount()
|
inline |
Return the amount of existing leafs in the octree.
- Returns
- amount of registered leaf nodes.
Definition at line 311 of file octree_base.h.
getRootNode()
|
inlineprotected |
Retrieve root node.
Definition at line 436 of file octree_base.h.
getTreeDepth()
|
inline |
Get the maximum depth of the octree.
- Returns
- depth_arg: maximum depth of octree
Definition at line 264 of file octree_base.h.
leaf_breadth_begin()
|
inline |
Definition at line 204 of file octree_base.h.
leaf_breadth_end()
|
inline |
Definition at line 211 of file octree_base.h.
leaf_depth_begin()
|
inline |
Definition at line 136 of file octree_base.h.
leaf_depth_end()
|
inline |
Definition at line 143 of file octree_base.h.
octreeCanResize()
|
inlineprotected |
Test if octree is able to dynamically change its depth.
This is required for adaptive bounding box adjustment.
- Returns
- "true"
Definition at line 679 of file octree_base.h.
operator=()
|
inline |
Copy operator.
Definition at line 235 of file octree_base.h.
removeLeaf() [1/2]
|
inlineprotected |
Remove leaf node from octree.
- Parameters
-
key_arg octree key addressing a leaf node.
Definition at line 424 of file octree_base.h.
removeLeaf() [2/2]
void pcl::octree::OctreeBase< 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 147 of file octree_base.hpp.
serializeLeafs()
void pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::serializeLeafs | ( | std::vector< LeafContainerT * > & | leaf_container_vector_arg | ) |
Outputs a vector of all LeafContainerT elements that are stored within the octree leaf nodes.
- Parameters
-
leaf_container_vector_arg pointers to LeafContainerT vector that receives a copy of all LeafContainerT objects in the octree.
Definition at line 212 of file octree_base.hpp.
serializeTree() [1/2]
void pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::serializeTree | ( | std::vector< char > & | binary_tree_out_arg | ) |
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.
Definition at line 175 of file octree_base.hpp.
serializeTree() [2/2]
void pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::serializeTree | ( | std::vector< char > & | binary_tree_out_arg, |
std::vector< LeafContainerT * > & | leaf_container_vector_arg | ||
) |
Serialize octree into a binary output vector describing its branch node structure and push all LeafContainerT elements stored in the octree to a vector.
- 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
Definition at line 191 of file octree_base.hpp.
serializeTreeCallback()
|
inlineprotectedvirtual |
Callback executed for every leaf node during serialization.
Definition at line 661 of file octree_base.h.
serializeTreeRecursive()
|
protected |
Recursively explore the octree and output binary octree description together with a vector of leaf node LeafContainerTs.
- Parameters
-
branch_arg current branch node key_arg reference to an octree key binary_tree_out_arg binary output vector leaf_container_vector_arg writes LeafContainerT pointers to this LeafContainerT* vector.
Definition at line 435 of file octree_base.hpp.
setBranchChildPtr()
|
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 470 of file octree_base.h.
setMaxVoxelIndex()
void pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::setMaxVoxelIndex | ( | uindex_t | max_voxel_index_arg | ) |
Set the maximum amount of voxels per dimension.
- Parameters
-
[in] max_voxel_index_arg maximum amount of voxels per dimension
Definition at line 69 of file octree_base.hpp.
setTreeDepth()
void pcl::octree::OctreeBase< LeafContainerT, BranchContainerT >::setTreeDepth | ( | uindex_t | max_depth_arg | ) |
Set the maximum depth of the octree.
- Parameters
-
max_depth_arg maximum depth of octree
Definition at line 88 of file octree_base.hpp.
Friends And Related Function Documentation
OctreeBreadthFirstIterator< OctreeT >
|
friend |
Definition at line 102 of file octree_base.h.
OctreeDepthFirstIterator< OctreeT >
|
friend |
Definition at line 101 of file octree_base.h.
OctreeFixedDepthIterator< OctreeT >
|
friend |
Definition at line 103 of file octree_base.h.
OctreeIteratorBase< OctreeT >
|
friend |
Definition at line 100 of file octree_base.h.
OctreeLeafNodeBreadthFirstIterator< OctreeT >
|
friend |
Definition at line 105 of file octree_base.h.
OctreeLeafNodeDepthFirstIterator< OctreeT >
|
friend |
Definition at line 104 of file octree_base.h.
Member Data Documentation
branch_count_
|
protected |
Amount of branch nodes
Definition at line 81 of file octree_base.h.
Referenced by pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::getBranchCount(), and pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::operator=().
depth_mask_
|
protected |
Depth mask based on octree depth
Definition at line 87 of file octree_base.h.
Referenced by pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::createLeaf(), pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::findLeaf(), pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::operator=(), and pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::removeLeaf().
dynamic_depth_enabled_
|
protected |
Enable dynamic_depth.
Definition at line 93 of file octree_base.h.
leaf_count_
|
protected |
Amount of leaf nodes
Definition at line 78 of file octree_base.h.
Referenced by pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::getLeafCount(), and pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::operator=().
max_key_
|
protected |
key range
Definition at line 96 of file octree_base.h.
Referenced by pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::operator=(), and pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::removeLeaf().
octree_depth_
|
protected |
Octree depth.
Definition at line 90 of file octree_base.h.
Referenced by pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::getTreeDepth(), and pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::operator=().
root_node_
|
protected |
Pointer to root branch node of octree
Definition at line 84 of file octree_base.h.
Referenced by pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::createLeaf(), pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::findLeaf(), pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::getRootNode(), pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::operator=(), and pcl::octree::OctreeBase< OctreePointCloudVoxelCentroidContainer< PointT >, OctreeContainerEmpty >::removeLeaf().
The documentation for this class was generated from the following files:
- pcl/octree/octree_base.h
- pcl/octree/impl/octree_base.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1octree_1_1_octree_base.html