Point Cloud Library (PCL)
1.14.1-dev
|
Octree iterator class More...
#include <pcl/octree/octree_iterator.h>
Public Types | |
using | LeafNode = typename OctreeIteratorBase< OctreeT >::LeafNode |
using | BranchNode = typename OctreeIteratorBase< OctreeT >::BranchNode |
Public Types inherited from pcl::octree::OctreeIteratorBase< OctreeT > | |
using | iterator_category = std::forward_iterator_tag |
using | value_type = const OctreeNode |
using | difference_type = void |
using | pointer = const OctreeNode * |
using | reference = const OctreeNode & |
using | LeafNode = typename OctreeT::LeafNode |
using | BranchNode = typename OctreeT::BranchNode |
using | LeafContainer = typename OctreeT::LeafContainer |
using | BranchContainer = typename OctreeT::BranchContainer |
Public Member Functions | |
OctreeDepthFirstIterator (uindex_t max_depth_arg=0) | |
Empty constructor. More... | |
OctreeDepthFirstIterator (OctreeT *octree_arg, uindex_t max_depth_arg=0) | |
Constructor. More... | |
OctreeDepthFirstIterator (OctreeT *octree_arg, uindex_t max_depth_arg, IteratorState *current_state, const std::vector< IteratorState > &stack=std::vector< IteratorState >()) | |
Constructor. More... | |
OctreeDepthFirstIterator (const OctreeDepthFirstIterator &other) | |
Copy Constructor. More... | |
OctreeDepthFirstIterator & | operator= (const OctreeDepthFirstIterator &src) |
Copy assignment. More... | |
virtual void | reset () |
Reset the iterator to the root node of the octree. More... | |
OctreeDepthFirstIterator & | operator++ () |
Preincrement operator. More... | |
OctreeDepthFirstIterator | operator++ (int) |
postincrement operator. More... | |
void | skipChildVoxels () |
Skip all child voxels of current node and return to parent node. More... | |
Public Member Functions inherited from pcl::octree::OctreeIteratorBase< OctreeT > | |
OctreeIteratorBase () | |
Empty constructor. More... | |
OctreeIteratorBase (uindex_t max_depth_arg) | |
Constructor. More... | |
OctreeIteratorBase (OctreeT *octree_arg) | |
Constructor. More... | |
OctreeIteratorBase (OctreeT *octree_arg, uindex_t max_depth_arg) | |
Constructor. More... | |
OctreeIteratorBase (OctreeT *octree_arg, uindex_t max_depth_arg, IteratorState *current_state) | |
Constructor. More... | |
virtual | ~OctreeIteratorBase ()=default |
Empty deconstructor. More... | |
bool | operator== (const OctreeIteratorBase &other) const |
Equal comparison operator. More... | |
bool | operator!= (const OctreeIteratorBase &other) const |
Inequal comparison operator. More... | |
void | reset () |
Reset iterator. More... | |
const OctreeKey & | getCurrentOctreeKey () const |
Get octree key for the current iterator octree node. More... | |
uindex_t | getCurrentOctreeDepth () const |
Get the current depth level of octree. More... | |
OctreeNode * | getCurrentOctreeNode () const |
Get the current octree node. More... | |
bool | isBranchNode () const |
check if current node is a branch node More... | |
bool | isLeafNode () const |
check if current node is a branch node More... | |
virtual OctreeNode * | operator* () const |
*operator. More... | |
char | getNodeConfiguration () const |
Get bit pattern of children configuration of current node. More... | |
const LeafContainer & | getLeafContainer () const |
Method for retrieving a single leaf container from the octree leaf node. More... | |
LeafContainer & | getLeafContainer () |
Method for retrieving a single leaf container from the octree leaf node. More... | |
const BranchContainer & | getBranchContainer () const |
Method for retrieving the container from an octree branch node. More... | |
BranchContainer & | getBranchContainer () |
Method for retrieving the container from an octree branch node. More... | |
virtual unsigned long | getNodeID () const |
get a integer identifier for current node (note: identifier depends on tree depth). More... | |
Protected Attributes | |
std::vector< IteratorState > | stack_ |
Stack structure. More... | |
Protected Attributes inherited from pcl::octree::OctreeIteratorBase< OctreeT > | |
OctreeT * | octree_ |
Reference to octree class. More... | |
IteratorState * | current_state_ |
Pointer to current iterator state. More... | |
uindex_t | max_octree_depth_ |
Maximum octree depth. More... | |
Octree iterator class
Definition at line 381 of file octree_iterator.h.
using pcl::octree::OctreeDepthFirstIterator< OctreeT >::BranchNode = typename OctreeIteratorBase<OctreeT>::BranchNode |
Definition at line 385 of file octree_iterator.h.
using pcl::octree::OctreeDepthFirstIterator< OctreeT >::LeafNode = typename OctreeIteratorBase<OctreeT>::LeafNode |
Definition at line 384 of file octree_iterator.h.
|
explicit |
Empty constructor.
[in] | max_depth_arg | Depth limitation during traversal |
Definition at line 48 of file octree_iterator.hpp.
References pcl::octree::OctreeDepthFirstIterator< OctreeT >::reset().
|
explicit |
Constructor.
[in] | octree_arg | Octree to be iterated. Initially the iterator is set to its root node. |
[in] | max_depth_arg | Depth limitation during traversal |
Definition at line 57 of file octree_iterator.hpp.
References pcl::octree::OctreeDepthFirstIterator< OctreeT >::reset().
|
inlineexplicit |
Constructor.
[in] | octree_arg | Octree to be iterated. Initially the iterator is set to its root node. |
[in] | max_depth_arg | Depth limitation during traversal |
[in] | current_state | A pointer to the current iterator state |
[in] | stack | A stack structure used for depth first search |
Definition at line 408 of file octree_iterator.h.
|
inline |
Copy Constructor.
[in] | other | Another OctreeDepthFirstIterator to copy from |
Definition at line 419 of file octree_iterator.h.
References pcl::octree::OctreeIteratorBase< OctreeT >::current_state_, and pcl::octree::OctreeDepthFirstIterator< OctreeT >::stack_.
|
virtual |
Preincrement operator.
Implements pcl::octree::OctreeIteratorBase< OctreeT >.
Reimplemented in pcl::octree::OctreeLeafNodeDepthFirstIterator< OctreeT >.
Definition at line 117 of file octree_iterator.hpp.
References pcl::octree::BRANCH_NODE, pcl::octree::IteratorState::depth_, pcl::octree::OctreeNode::getNodeType(), pcl::octree::IteratorState::key_, pcl::octree::IteratorState::node_, pcl::octree::OctreeKey::popBranch(), and pcl::octree::OctreeKey::pushBranch().
Referenced by pcl::octree::OctreeLeafNodeDepthFirstIterator< OctreeT >::operator++().
|
inline |
postincrement operator.
Definition at line 461 of file octree_iterator.h.
|
inline |
Copy assignment.
[in] | src | the iterator to copy into this |
Definition at line 429 of file octree_iterator.h.
References pcl::octree::OctreeIteratorBase< OctreeT >::current_state_, and pcl::octree::OctreeDepthFirstIterator< OctreeT >::stack_.
|
virtual |
Reset the iterator to the root node of the octree.
Reimplemented in pcl::octree::OctreeLeafNodeDepthFirstIterator< OctreeT >.
Definition at line 68 of file octree_iterator.hpp.
References pcl::octree::IteratorState::depth_, pcl::octree::IteratorState::key_, pcl::octree::IteratorState::node_, pcl::octree::OctreeIteratorBase< OctreeT >::reset(), pcl::octree::OctreeKey::x, pcl::octree::OctreeKey::y, and pcl::octree::OctreeKey::z.
Referenced by pcl::octree::OctreeDepthFirstIterator< OctreeT >::OctreeDepthFirstIterator(), and pcl::octree::OctreeLeafNodeDepthFirstIterator< OctreeT >::reset().
void pcl::octree::OctreeDepthFirstIterator< OctreeT >::skipChildVoxels |
Skip all child voxels of current node and return to parent node.
Definition at line 94 of file octree_iterator.hpp.
|
protected |
Stack structure.
Definition at line 475 of file octree_iterator.h.
Referenced by pcl::octree::OctreeDepthFirstIterator< OctreeT >::OctreeDepthFirstIterator(), and pcl::octree::OctreeDepthFirstIterator< OctreeT >::operator=().