Point Cloud Library (PCL)  1.14.0-dev
List of all members | Public Member Functions
pcl::octree::OctreeLeafNodeDepthFirstIterator< OctreeT > Class Template Reference

Octree leaf node iterator class. More...

#include <pcl/octree/octree_iterator.h>

+ Inheritance diagram for pcl::octree::OctreeLeafNodeDepthFirstIterator< OctreeT >:
+ Collaboration diagram for pcl::octree::OctreeLeafNodeDepthFirstIterator< OctreeT >:

Public Member Functions

 OctreeLeafNodeDepthFirstIterator (uindex_t max_depth_arg=0)
 Empty constructor. More...
 
 OctreeLeafNodeDepthFirstIterator (OctreeT *octree_arg, uindex_t max_depth_arg=0)
 Constructor. More...
 
 OctreeLeafNodeDepthFirstIterator (OctreeT *octree_arg, uindex_t max_depth_arg, IteratorState *current_state, const std::vector< IteratorState > &stack=std::vector< IteratorState >())
 Constructor. More...
 
void reset ()
 Reset the iterator to the root node of the octree. More...
 
OctreeLeafNodeDepthFirstIteratoroperator++ ()
 Preincrement operator. More...
 
OctreeLeafNodeDepthFirstIterator operator++ (int)
 postincrement operator. More...
 
OctreeNodeoperator* () const override
 *operator. More...
 
- Public Member Functions inherited from pcl::octree::OctreeDepthFirstIterator< OctreeT >
 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...
 
OctreeDepthFirstIteratoroperator= (const OctreeDepthFirstIterator &src)
 Copy assignment. 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 OctreeKeygetCurrentOctreeKey () const
 Get octree key for the current iterator octree node. More...
 
uindex_t getCurrentOctreeDepth () const
 Get the current depth level of octree. More...
 
OctreeNodegetCurrentOctreeNode () 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...
 
char getNodeConfiguration () const
 Get bit pattern of children configuration of current node. More...
 
const LeafContainergetLeafContainer () const
 Method for retrieving a single leaf container from the octree leaf node. More...
 
LeafContainergetLeafContainer ()
 Method for retrieving a single leaf container from the octree leaf node. More...
 
const BranchContainergetBranchContainer () const
 Method for retrieving the container from an octree branch node. More...
 
BranchContainergetBranchContainer ()
 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...
 

Additional Inherited Members

- Public Types inherited from pcl::octree::OctreeDepthFirstIterator< OctreeT >
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
 
- Protected Attributes inherited from pcl::octree::OctreeDepthFirstIterator< OctreeT >
std::vector< IteratorStatestack_
 Stack structure. More...
 
- Protected Attributes inherited from pcl::octree::OctreeIteratorBase< OctreeT >
OctreeT * octree_
 Reference to octree class. More...
 
IteratorStatecurrent_state_
 Pointer to current iterator state. More...
 
uindex_t max_octree_depth_
 Maximum octree depth. More...
 

Detailed Description

template<typename OctreeT>
class pcl::octree::OctreeLeafNodeDepthFirstIterator< OctreeT >

Octree leaf node iterator class.

Note
This class implements a forward iterator for traversing the leaf nodes of an octree data structure.
Author
Julius Kammerl (juliu.nosp@m.s@ka.nosp@m.mmerl.nosp@m..de)

Definition at line 673 of file octree_iterator.h.

Constructor & Destructor Documentation

◆ OctreeLeafNodeDepthFirstIterator() [1/3]

template<typename OctreeT >
pcl::octree::OctreeLeafNodeDepthFirstIterator< OctreeT >::OctreeLeafNodeDepthFirstIterator ( uindex_t  max_depth_arg = 0)
inlineexplicit

Empty constructor.

Parameters
[in]max_depth_argDepth limitation during traversal

Definition at line 681 of file octree_iterator.h.

References pcl::octree::OctreeLeafNodeDepthFirstIterator< OctreeT >::reset().

◆ OctreeLeafNodeDepthFirstIterator() [2/3]

template<typename OctreeT >
pcl::octree::OctreeLeafNodeDepthFirstIterator< OctreeT >::OctreeLeafNodeDepthFirstIterator ( OctreeT *  octree_arg,
uindex_t  max_depth_arg = 0 
)
inlineexplicit

Constructor.

Parameters
[in]octree_argOctree to be iterated. Initially the iterator is set to its root node.
[in]max_depth_argDepth limitation during traversal

Definition at line 692 of file octree_iterator.h.

References pcl::octree::OctreeLeafNodeDepthFirstIterator< OctreeT >::reset().

◆ OctreeLeafNodeDepthFirstIterator() [3/3]

template<typename OctreeT >
pcl::octree::OctreeLeafNodeDepthFirstIterator< OctreeT >::OctreeLeafNodeDepthFirstIterator ( OctreeT *  octree_arg,
uindex_t  max_depth_arg,
IteratorState current_state,
const std::vector< IteratorState > &  stack = std::vector<IteratorState>() 
)
inlineexplicit

Constructor.

Parameters
[in]octree_argOctree to be iterated. Initially the iterator is set to its root node.
[in]max_depth_argDepth limitation during traversal
[in]current_stateA pointer to the current iterator state
Warning
For advanced users only.

Definition at line 707 of file octree_iterator.h.

Member Function Documentation

◆ operator*()

template<typename OctreeT >
OctreeNode* pcl::octree::OctreeLeafNodeDepthFirstIterator< OctreeT >::operator* ( ) const
inlineoverridevirtual

◆ operator++() [1/2]

template<typename OctreeT >
OctreeLeafNodeDepthFirstIterator& pcl::octree::OctreeLeafNodeDepthFirstIterator< OctreeT >::operator++ ( )
inlinevirtual

◆ operator++() [2/2]

template<typename OctreeT >
OctreeLeafNodeDepthFirstIterator pcl::octree::OctreeLeafNodeDepthFirstIterator< OctreeT >::operator++ ( int  )
inline

postincrement operator.

Note
step to next octree node

Definition at line 742 of file octree_iterator.h.

◆ reset()

template<typename OctreeT >
void pcl::octree::OctreeLeafNodeDepthFirstIterator< OctreeT >::reset ( )
inlinevirtual

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