|
Point Cloud Library (PCL)
1.6.0
|
Octree double buffer class More...
#include <pcl/octree/octree2buf_base.h>
Public Types | |
| typedef Octree2BufBase< DataT, LeafT, BranchT > | OctreeT |
| typedef BufferedBranchNode < BranchT > | BranchNode |
| typedef OctreeLeafNode< LeafT > | LeafNode |
| typedef OctreeDepthFirstIterator < DataT, OctreeT > | Iterator |
| typedef const OctreeDepthFirstIterator < DataT, OctreeT > | ConstIterator |
| typedef OctreeLeafNodeIterator < DataT, OctreeT > | LeafNodeIterator |
| typedef const OctreeLeafNodeIterator< DataT, OctreeT > | ConstLeafNodeIterator |
| typedef OctreeDepthFirstIterator < DataT, OctreeT > | DepthFirstIterator |
| typedef const OctreeDepthFirstIterator < DataT, OctreeT > | ConstDepthFirstIterator |
| typedef OctreeBreadthFirstIterator < DataT, OctreeT > | BreadthFirstIterator |
| typedef const OctreeBreadthFirstIterator < DataT, OctreeT > | ConstBreadthFirstIterator |
Public Member Functions | |
| Octree2BufBase () | |
| Empty constructor. | |
| virtual | ~Octree2BufBase () |
| Empty deconstructor. | |
| Octree2BufBase (const Octree2BufBase &source) | |
| Copy constructor. | |
| Octree2BufBase & | operator= (const Octree2BufBase &source) |
| Copy constructor. | |
| void | setMaxVoxelIndex (unsigned int maxVoxelIndex_arg) |
| Set the maximum amount of voxels per dimension. | |
| void | setTreeDepth (unsigned int depth_arg) |
| Set the maximum depth of the octree. | |
| unsigned int | getTreeDepth () const |
| Get the maximum depth of the octree. | |
| void | addData (unsigned int idxX_arg, unsigned int idxY_arg, unsigned int idxZ_arg, const DataT &data_arg) |
| Add a const DataT element to leaf node at (idxX, idxY, idxZ). | |
| bool | getData (unsigned int idxX_arg, unsigned int idxY_arg, unsigned int idxZ_arg, DataT &data_arg) const |
| Retrieve a DataT element from leaf node at (idxX, idxY, idxZ). | |
| bool | existLeaf (unsigned int idxX_arg, unsigned int idxY_arg, unsigned int idxZ_arg) const |
| Check for the existence of leaf node at (idxX, idxY, idxZ). | |
| void | removeLeaf (unsigned int idxX_arg, unsigned int idxY_arg, unsigned int idxZ_arg) |
| Remove leaf node at (idxX_arg, idxY_arg, idxZ_arg). | |
| unsigned int | getLeafCount () const |
| Return the amount of existing leafs in the octree. | |
| unsigned int | getBranchCount () const |
| Return the amount of existing branches in the octree. | |
| void | deleteTree (bool freeMemory_arg=false) |
| Delete the octree structure and its leaf nodes. | |
| void | deletePreviousBuffer () |
| Delete octree structure of previous buffer. | |
| void | deleteCurrentBuffer () |
| Delete the octree structure in the current buffer. | |
| void | switchBuffers () |
| Switch buffers and reset current octree structure. | |
| void | serializeTree (std::vector< char > &binaryTreeOut_arg, bool doXOREncoding_arg=false) |
| Serialize octree into a binary output vector describing its branch node structure. | |
| void | serializeTree (std::vector< char > &binaryTreeOut_arg, std::vector< DataT > &dataVector_arg, bool doXOREncoding_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. | |
| void | serializeLeafs (std::vector< DataT > &dataVector_arg) |
| Outputs a vector of all DataT elements that are stored within the octree leaf nodes. | |
| void | serializeNewLeafs (std::vector< DataT > &dataVector_arg, const int minPointsPerLeaf_arg=0) |
| Outputs a vector of all DataT elements from leaf nodes, that do not exist in the previous octree buffer. | |
| void | deserializeTree (std::vector< char > &binaryTreeIn_arg, bool doXORDecoding_arg=false) |
| Deserialize a binary octree description vector and create a corresponding octree structure. | |
| void | deserializeTree (std::vector< char > &binaryTreeIn_arg, std::vector< DataT > &dataVector_arg, bool doXORDecoding_arg=false) |
| Deserialize a binary octree description and create a corresponding octree structure. | |
Friends | |
| class | OctreeIteratorBase< DataT, OctreeT > |
| class | OctreeDepthFirstIterator< DataT, OctreeT > |
| class | OctreeBreadthFirstIterator< DataT, OctreeT > |
| class | OctreeLeafNodeIterator< DataT, OctreeT > |
Octree double buffer class
Definition at line 178 of file octree2buf_base.h.
| typedef BufferedBranchNode<BranchT> pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::BranchNode |
Reimplemented in pcl::octree::OctreePointCloud< PointT, LeafT, BranchT, Octree2BufBase< int, LeafT, BranchT > >.
Definition at line 191 of file octree2buf_base.h.
| typedef OctreeBreadthFirstIterator<DataT, OctreeT> pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::BreadthFirstIterator |
Reimplemented in pcl::octree::OctreePointCloud< PointT, LeafT, BranchT, Octree2BufBase< int, LeafT, BranchT > >.
Definition at line 203 of file octree2buf_base.h.
| typedef const OctreeBreadthFirstIterator<DataT, OctreeT> pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::ConstBreadthFirstIterator |
Reimplemented in pcl::octree::OctreePointCloud< PointT, LeafT, BranchT, Octree2BufBase< int, LeafT, BranchT > >.
Definition at line 204 of file octree2buf_base.h.
| typedef const OctreeDepthFirstIterator<DataT, OctreeT> pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::ConstDepthFirstIterator |
Reimplemented in pcl::octree::OctreePointCloud< PointT, LeafT, BranchT, Octree2BufBase< int, LeafT, BranchT > >.
Definition at line 202 of file octree2buf_base.h.
| typedef const OctreeDepthFirstIterator<DataT, OctreeT> pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::ConstIterator |
Reimplemented in pcl::octree::OctreePointCloud< PointT, LeafT, BranchT, Octree2BufBase< int, LeafT, BranchT > >.
Definition at line 196 of file octree2buf_base.h.
| typedef const OctreeLeafNodeIterator<DataT, OctreeT> pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::ConstLeafNodeIterator |
Reimplemented in pcl::octree::OctreePointCloud< PointT, LeafT, BranchT, Octree2BufBase< int, LeafT, BranchT > >.
Definition at line 199 of file octree2buf_base.h.
| typedef OctreeDepthFirstIterator<DataT, OctreeT> pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::DepthFirstIterator |
Reimplemented in pcl::octree::OctreePointCloud< PointT, LeafT, BranchT, Octree2BufBase< int, LeafT, BranchT > >.
Definition at line 201 of file octree2buf_base.h.
| typedef OctreeDepthFirstIterator<DataT, OctreeT> pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::Iterator |
Reimplemented in pcl::octree::OctreePointCloud< PointT, LeafT, BranchT, Octree2BufBase< int, LeafT, BranchT > >.
Definition at line 195 of file octree2buf_base.h.
| typedef OctreeLeafNode<LeafT> pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::LeafNode |
Reimplemented in pcl::octree::OctreePointCloud< PointT, LeafT, BranchT, Octree2BufBase< int, LeafT, BranchT > >.
Definition at line 192 of file octree2buf_base.h.
| typedef OctreeLeafNodeIterator<DataT, OctreeT> pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::LeafNodeIterator |
Reimplemented in pcl::octree::OctreePointCloud< PointT, LeafT, BranchT, Octree2BufBase< int, LeafT, BranchT > >.
Definition at line 198 of file octree2buf_base.h.
| typedef Octree2BufBase<DataT, LeafT, BranchT> pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::OctreeT |
Definition at line 183 of file octree2buf_base.h.
| pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::Octree2BufBase | ( | ) |
Empty constructor.
Definition at line 48 of file octree2buf_base.hpp.
| pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::~Octree2BufBase | ( | ) | [virtual] |
Empty deconstructor.
Definition at line 65 of file octree2buf_base.hpp.
| pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::Octree2BufBase | ( | const Octree2BufBase< DataT, LeafT, BranchT > & | source | ) | [inline] |
Copy constructor.
Definition at line 214 of file octree2buf_base.h.
| void pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::addData | ( | unsigned int | idxX_arg, |
| unsigned int | idxY_arg, | ||
| unsigned int | idxZ_arg, | ||
| const DataT & | data_arg | ||
| ) |
Add a const DataT element to leaf node at (idxX, idxY, idxZ).
If leaf node does not exist, it is added to the octree.
| idxX_arg,: | index of leaf node in the X axis. |
| idxY_arg,: | index of leaf node in the Y axis. |
| idxZ_arg,: | index of leaf node in the Z axis. |
| data_arg,: | const reference to DataT object that is fed to the lead node. |
Definition at line 108 of file octree2buf_base.hpp.
| void pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::deleteCurrentBuffer | ( | ) | [inline] |
Delete the octree structure in the current buffer.
Definition at line 329 of file octree2buf_base.h.
| void pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::deletePreviousBuffer | ( | ) | [inline] |
Delete octree structure of previous buffer.
Definition at line 323 of file octree2buf_base.h.
| void pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::deleteTree | ( | bool | freeMemory_arg = false | ) |
Delete the octree structure and its leaf nodes.
| freeMemory_arg,: | if "true", allocated octree nodes are deleted, otherwise they are pushed to the octree node pool |
Reimplemented in pcl::octree::OctreePointCloud< PointT, LeafT, BranchT, Octree2BufBase< int, LeafT, BranchT > >.
Definition at line 163 of file octree2buf_base.hpp.
| void pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::deserializeTree | ( | std::vector< char > & | binaryTreeIn_arg, |
| bool | doXORDecoding_arg = false |
||
| ) |
Deserialize a binary octree description vector and create a corresponding octree structure.
Leaf nodes are initialized with getDataTByKey(..).
| binaryTreeIn_arg,: | reference to input vector for reading binary tree structure. |
| doXORDecoding_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 266 of file octree2buf_base.hpp.
| void pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::deserializeTree | ( | std::vector< char > & | binaryTreeIn_arg, |
| std::vector< DataT > & | dataVector_arg, | ||
| bool | doXORDecoding_arg = false |
||
| ) |
Deserialize a binary octree description and create a corresponding octree structure.
Leaf nodes are initialized with DataT elements from the dataVector.
| binaryTreeIn_arg,: | reference to inpvectoream for reading binary tree structure. |
| dataVector_arg,: | reference to DataT vector that provides DataT objects for initializing leaf nodes. |
| doXORDecoding_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 289 of file octree2buf_base.hpp.
| bool pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::existLeaf | ( | unsigned int | idxX_arg, |
| unsigned int | idxY_arg, | ||
| unsigned int | idxZ_arg | ||
| ) | const |
Check for the existence of leaf node at (idxX, idxY, idxZ).
| idxX_arg,: | index of leaf node in the X axis. |
| idxY_arg,: | index of leaf node in the Y axis. |
| idxZ_arg,: | index of leaf node in the Z axis. |
Definition at line 139 of file octree2buf_base.hpp.
| unsigned int pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::getBranchCount | ( | ) | const [inline] |
Return the amount of existing branches in the octree.
Definition at line 311 of file octree2buf_base.h.
| bool pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::getData | ( | unsigned int | idxX_arg, |
| unsigned int | idxY_arg, | ||
| unsigned int | idxZ_arg, | ||
| DataT & | data_arg | ||
| ) | const |
Retrieve a DataT element from leaf node at (idxX, idxY, idxZ).
It returns false if leaf node does not exist.
| idxX_arg,: | index of leaf node in the X axis. |
| idxY_arg,: | index of leaf node in the Y axis. |
| idxZ_arg,: | index of leaf node in the Z axis. |
| data_arg,: | reference to DataT object that contains content of leaf node if search was successful. |
Definition at line 120 of file octree2buf_base.hpp.
| unsigned int pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::getLeafCount | ( | ) | const [inline] |
Return the amount of existing leafs in the octree.
Definition at line 303 of file octree2buf_base.h.
| unsigned int pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::getTreeDepth | ( | ) | const [inline] |
Get the maximum depth of the octree.
Reimplemented in pcl::octree::OctreePointCloud< PointT, LeafT, BranchT, Octree2BufBase< int, LeafT, BranchT > >.
Definition at line 255 of file octree2buf_base.h.
| Octree2BufBase& pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::operator= | ( | const Octree2BufBase< DataT, LeafT, BranchT > & | source | ) | [inline] |
Copy constructor.
Definition at line 226 of file octree2buf_base.h.
| void pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::removeLeaf | ( | unsigned int | idxX_arg, |
| unsigned int | idxY_arg, | ||
| unsigned int | idxZ_arg | ||
| ) |
Remove leaf node at (idxX_arg, idxY_arg, idxZ_arg).
| idxX_arg,: | index of leaf node in the X axis. |
| idxY_arg,: | index of leaf node in the Y axis. |
| idxZ_arg,: | index of leaf node in the Z axis. |
Definition at line 151 of file octree2buf_base.hpp.
| void pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::serializeLeafs | ( | std::vector< DataT > & | dataVector_arg | ) |
Outputs a vector of all DataT elements that are stored within the octree leaf nodes.
| dataVector_arg,: | reference to DataT vector that receives a copy of all DataT objects in the octree. |
Definition at line 249 of file octree2buf_base.hpp.
| void pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::serializeNewLeafs | ( | std::vector< DataT > & | dataVector_arg, |
| const int | minPointsPerLeaf_arg = 0 |
||
| ) |
Outputs a vector of all DataT elements from leaf nodes, that do not exist in the previous octree buffer.
| dataVector_arg,: | reference to DataT vector that receives a copy of all DataT objects in the octree. |
| minPointsPerLeaf_arg,: | minimum amount of points required within leaf node to become serialized. |
Definition at line 318 of file octree2buf_base.hpp.
| void pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::serializeTree | ( | std::vector< char > & | binaryTreeOut_arg, |
| bool | doXOREncoding_arg = false |
||
| ) |
Serialize octree into a binary output vector describing its branch node structure.
| binaryTreeOut_arg,: | reference to output vector for writing binary tree structure. |
| doXOREncoding_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 212 of file octree2buf_base.hpp.
| void pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::serializeTree | ( | std::vector< char > & | binaryTreeOut_arg, |
| std::vector< DataT > & | dataVector_arg, | ||
| bool | doXOREncoding_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.
| binaryTreeOut_arg,: | reference to output vector for writing binary tree structure. |
| dataVector_arg,: | reference of DataT vector that receives a copy of all DataT objects in the octree |
| doXOREncoding_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 229 of file octree2buf_base.hpp.
| void pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::setMaxVoxelIndex | ( | unsigned int | maxVoxelIndex_arg | ) |
Set the maximum amount of voxels per dimension.
| maxVoxelIndex_arg,: | maximum amount of voxels per dimension |
Definition at line 75 of file octree2buf_base.hpp.
| void pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::setTreeDepth | ( | unsigned int | depth_arg | ) |
Set the maximum depth of the octree.
| depth_arg,: | maximum depth of octree |
Definition at line 92 of file octree2buf_base.hpp.
| void pcl::octree::Octree2BufBase< DataT, LeafT, BranchT >::switchBuffers | ( | ) |
Switch buffers and reset current octree structure.
Definition at line 185 of file octree2buf_base.hpp.
friend class OctreeBreadthFirstIterator< DataT, OctreeT > [friend] |
Definition at line 188 of file octree2buf_base.h.
friend class OctreeDepthFirstIterator< DataT, OctreeT > [friend] |
Definition at line 187 of file octree2buf_base.h.
friend class OctreeIteratorBase< DataT, OctreeT > [friend] |
Definition at line 186 of file octree2buf_base.h.
friend class OctreeLeafNodeIterator< DataT, OctreeT > [friend] |
Definition at line 189 of file octree2buf_base.h.
1.7.6.1