Point Cloud Library (PCL) 1.15.1
Loading...
Searching...
No Matches
pcl::octree::OctreeLeafNodeBreadthFirstIterator< OctreeT > Class Template Reference

Octree leaf node iterator class. More...

#include <pcl/octree/octree_iterator.h>

Inheritance diagram for pcl::octree::OctreeLeafNodeBreadthFirstIterator< OctreeT >:
Collaboration diagram for pcl::octree::OctreeLeafNodeBreadthFirstIterator< OctreeT >:

Public Member Functions

 OctreeLeafNodeBreadthFirstIterator (uindex_t max_depth_arg=0)
 Empty constructor.
 OctreeLeafNodeBreadthFirstIterator (OctreeT *octree_arg, uindex_t max_depth_arg=0)
 Constructor.
 OctreeLeafNodeBreadthFirstIterator (OctreeT *octree_arg, uindex_t max_depth_arg, IteratorState *current_state, const std::deque< IteratorState > &fifo=std::deque< IteratorState >())
 Copy constructor.
void reset ()
 Reset the iterator to the first leaf in the breadth first way.
OctreeLeafNodeBreadthFirstIterator & operator++ ()
 Preincrement operator.
OctreeLeafNodeBreadthFirstIterator operator++ (int)
 Postincrement operator.
OctreeNode * operator* () const override
 *operator.
Public Member Functions inherited from pcl::octree::OctreeBreadthFirstIterator< OctreeT >
 OctreeBreadthFirstIterator (uindex_t max_depth_arg=0)
 Empty constructor.
 OctreeBreadthFirstIterator (OctreeT *octree_arg, uindex_t max_depth_arg=0)
 Constructor.
 OctreeBreadthFirstIterator (OctreeT *octree_arg, uindex_t max_depth_arg, IteratorState *current_state, const std::deque< IteratorState > &fifo=std::deque< IteratorState >())
 Constructor.
 OctreeBreadthFirstIterator (const OctreeBreadthFirstIterator &other)
 Copy Constructor.
OctreeBreadthFirstIterator & operator= (const OctreeBreadthFirstIterator &src)
 Copy operator.
void reset ()
 Reset the iterator to the root node of the octree.
OctreeBreadthFirstIterator operator++ (int)
 postincrement operator.
Public Member Functions inherited from pcl::octree::OctreeIteratorBase< OctreeT >
 OctreeIteratorBase ()
 Empty constructor.
 OctreeIteratorBase (uindex_t max_depth_arg)
 Constructor.
 OctreeIteratorBase (OctreeT *octree_arg)
 Constructor.
 OctreeIteratorBase (OctreeT *octree_arg, uindex_t max_depth_arg)
 Constructor.
 OctreeIteratorBase (OctreeT *octree_arg, uindex_t max_depth_arg, IteratorState *current_state)
 Constructor.
virtual ~OctreeIteratorBase ()=default
 Empty deconstructor.
bool operator== (const OctreeIteratorBase &other) const
 Equal comparison operator.
bool operator!= (const OctreeIteratorBase &other) const
 Inequal comparison operator.
void reset ()
 Reset iterator.
const OctreeKey & getCurrentOctreeKey () const
 Get octree key for the current iterator octree node.
uindex_t getCurrentOctreeDepth () const
 Get the current depth level of octree.
OctreeNode * getCurrentOctreeNode () const
 Get the current octree node.
bool isBranchNode () const
 check if current node is a branch node
bool isLeafNode () const
 check if current node is a branch node
char getNodeConfiguration () const
 Get bit pattern of children configuration of current node.
const LeafContainer & getLeafContainer () const
 Method for retrieving a single leaf container from the octree leaf node.
LeafContainer & getLeafContainer ()
 Method for retrieving a single leaf container from the octree leaf node.
const BranchContainer & getBranchContainer () const
 Method for retrieving the container from an octree branch node.
BranchContainer & getBranchContainer ()
 Method for retrieving the container from an octree branch node.
virtual unsigned long getNodeID () const
 get a integer identifier for current node (note: identifier depends on tree depth).

Additional Inherited Members

Public Types inherited from pcl::octree::OctreeBreadthFirstIterator< OctreeT >
using BranchNode = typename OctreeIteratorBase<OctreeT>::BranchNode
using LeafNode = typename OctreeIteratorBase<OctreeT>::LeafNode
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::OctreeBreadthFirstIterator< OctreeT >
std::deque< IteratorState > FIFO_
 FIFO list.
Protected Attributes inherited from pcl::octree::OctreeIteratorBase< OctreeT >
OctreeT * octree_
 Reference to octree class.
IteratorState * current_state_
 Pointer to current iterator state.
uindex_t max_octree_depth_
 Maximum octree depth.

Detailed Description

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

Octree leaf node iterator class.

Note
This class implements a forward iterator for traversing the leaf nodes of an octree data structure in the breadth first way.
Author
Fabien Rozar (fabie.nosp@m.n.ro.nosp@m.zar@g.nosp@m.mail.nosp@m..com)

Definition at line 775 of file octree_iterator.h.

Constructor & Destructor Documentation

◆ OctreeLeafNodeBreadthFirstIterator() [1/3]

template<typename OctreeT>
pcl::octree::OctreeLeafNodeBreadthFirstIterator< OctreeT >::OctreeLeafNodeBreadthFirstIterator ( uindex_t max_depth_arg = 0)
explicit

Empty constructor.

Parameters
[in]max_depth_argDepth limitation during traversal

Definition at line 316 of file octree_iterator.hpp.

References pcl::octree::OctreeBreadthFirstIterator< OctreeT >::OctreeBreadthFirstIterator(), and reset().

Referenced by operator++().

◆ OctreeLeafNodeBreadthFirstIterator() [2/3]

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

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 325 of file octree_iterator.hpp.

References pcl::octree::OctreeBreadthFirstIterator< OctreeT >::OctreeBreadthFirstIterator(), and reset().

◆ OctreeLeafNodeBreadthFirstIterator() [3/3]

template<typename OctreeT>
pcl::octree::OctreeLeafNodeBreadthFirstIterator< OctreeT >::OctreeLeafNodeBreadthFirstIterator ( OctreeT * octree_arg,
uindex_t max_depth_arg,
IteratorState * current_state,
const std::deque< IteratorState > & fifo = std::deque<IteratorState>() )
explicit

Copy 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
[in]fifoInternal container of octree node to go through
Warning
For advanced users only.

Definition at line 334 of file octree_iterator.hpp.

References pcl::octree::OctreeBreadthFirstIterator< OctreeT >::OctreeBreadthFirstIterator().

Member Function Documentation

◆ operator*()

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

*operator.

Returns
pointer to the current octree leaf node

Reimplemented from pcl::octree::OctreeIteratorBase< OctreeT >.

Definition at line 829 of file octree_iterator.h.

◆ operator++() [1/2]

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

◆ operator++() [2/2]

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

Postincrement operator.

Note
step to next octree node

Definition at line 367 of file octree_iterator.hpp.

References OctreeLeafNodeBreadthFirstIterator().

◆ reset()

template<typename OctreeT>
void pcl::octree::OctreeLeafNodeBreadthFirstIterator< OctreeT >::reset ( )
inline

Reset the iterator to the first leaf in the breadth first way.

Definition at line 345 of file octree_iterator.hpp.

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

Referenced by OctreeLeafNodeBreadthFirstIterator(), and OctreeLeafNodeBreadthFirstIterator().


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