Point Cloud Library (PCL)  1.14.0-dev
List of all members | Public Types | Public Member Functions | Protected Attributes
pcl::octree::OctreeIteratorBase< OctreeT > Class Template Referenceabstract

Abstract octree iterator class More...

#include <pcl/octree/octree_iterator.h>

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

Public Types

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

 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...
 
virtual OctreeIteratorBaseoperator++ ()=0
 Preincrement operator. 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...
 
virtual OctreeNodeoperator* () const
 *operator. 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...
 

Protected Attributes

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::OctreeIteratorBase< OctreeT >

Abstract octree iterator class

Note
Octree iterator base class
Author
Julius Kammerl (juliu.nosp@m.s@ka.nosp@m.mmerl.nosp@m..de)

Definition at line 75 of file octree_iterator.h.

Member Typedef Documentation

◆ BranchContainer

template<typename OctreeT >
using pcl::octree::OctreeIteratorBase< OctreeT >::BranchContainer = typename OctreeT::BranchContainer

Definition at line 87 of file octree_iterator.h.

◆ BranchNode

template<typename OctreeT >
using pcl::octree::OctreeIteratorBase< OctreeT >::BranchNode = typename OctreeT::BranchNode

Definition at line 84 of file octree_iterator.h.

◆ difference_type

template<typename OctreeT >
using pcl::octree::OctreeIteratorBase< OctreeT >::difference_type = void

Definition at line 79 of file octree_iterator.h.

◆ iterator_category

template<typename OctreeT >
using pcl::octree::OctreeIteratorBase< OctreeT >::iterator_category = std::forward_iterator_tag

Definition at line 77 of file octree_iterator.h.

◆ LeafContainer

template<typename OctreeT >
using pcl::octree::OctreeIteratorBase< OctreeT >::LeafContainer = typename OctreeT::LeafContainer

Definition at line 86 of file octree_iterator.h.

◆ LeafNode

template<typename OctreeT >
using pcl::octree::OctreeIteratorBase< OctreeT >::LeafNode = typename OctreeT::LeafNode

Definition at line 83 of file octree_iterator.h.

◆ pointer

template<typename OctreeT >
using pcl::octree::OctreeIteratorBase< OctreeT >::pointer = const OctreeNode*

Definition at line 80 of file octree_iterator.h.

◆ reference

template<typename OctreeT >
using pcl::octree::OctreeIteratorBase< OctreeT >::reference = const OctreeNode&

Definition at line 81 of file octree_iterator.h.

◆ value_type

template<typename OctreeT >
using pcl::octree::OctreeIteratorBase< OctreeT >::value_type = const OctreeNode

Definition at line 78 of file octree_iterator.h.

Constructor & Destructor Documentation

◆ OctreeIteratorBase() [1/5]

template<typename OctreeT >
pcl::octree::OctreeIteratorBase< OctreeT >::OctreeIteratorBase ( )
inline

Empty constructor.

Definition at line 91 of file octree_iterator.h.

◆ OctreeIteratorBase() [2/5]

template<typename OctreeT >
pcl::octree::OctreeIteratorBase< OctreeT >::OctreeIteratorBase ( uindex_t  max_depth_arg)
inlineexplicit

Constructor.

Parameters
[in]max_depth_argDepth limitation during traversal

Definition at line 96 of file octree_iterator.h.

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

◆ OctreeIteratorBase() [3/5]

template<typename OctreeT >
pcl::octree::OctreeIteratorBase< OctreeT >::OctreeIteratorBase ( OctreeT *  octree_arg)
inline

Constructor.

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

Definition at line 106 of file octree_iterator.h.

◆ OctreeIteratorBase() [4/5]

template<typename OctreeT >
pcl::octree::OctreeIteratorBase< OctreeT >::OctreeIteratorBase ( OctreeT *  octree_arg,
uindex_t  max_depth_arg 
)
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 113 of file octree_iterator.h.

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

◆ OctreeIteratorBase() [5/5]

template<typename OctreeT >
pcl::octree::OctreeIteratorBase< OctreeT >::OctreeIteratorBase ( OctreeT *  octree_arg,
uindex_t  max_depth_arg,
IteratorState current_state 
)
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 127 of file octree_iterator.h.

◆ ~OctreeIteratorBase()

template<typename OctreeT >
virtual pcl::octree::OctreeIteratorBase< OctreeT >::~OctreeIteratorBase ( )
virtualdefault

Empty deconstructor.

Member Function Documentation

◆ getBranchContainer() [1/2]

template<typename OctreeT >
BranchContainer& pcl::octree::OctreeIteratorBase< OctreeT >::getBranchContainer ( )
inline

◆ getBranchContainer() [2/2]

template<typename OctreeT >
const BranchContainer& pcl::octree::OctreeIteratorBase< OctreeT >::getBranchContainer ( ) const
inline

◆ getCurrentOctreeDepth()

template<typename OctreeT >
uindex_t pcl::octree::OctreeIteratorBase< OctreeT >::getCurrentOctreeDepth ( ) const
inline

◆ getCurrentOctreeKey()

template<typename OctreeT >
const OctreeKey& pcl::octree::OctreeIteratorBase< OctreeT >::getCurrentOctreeKey ( ) const
inline

◆ getCurrentOctreeNode()

template<typename OctreeT >
OctreeNode* pcl::octree::OctreeIteratorBase< OctreeT >::getCurrentOctreeNode ( ) const
inline

Get the current octree node.

Returns
pointer to current octree node

Definition at line 208 of file octree_iterator.h.

References pcl::octree::OctreeIteratorBase< OctreeT >::current_state_, pcl::octree::IteratorState::node_, and pcl::octree::OctreeIteratorBase< OctreeT >::octree_.

◆ getLeafContainer() [1/2]

template<typename OctreeT >
LeafContainer& pcl::octree::OctreeIteratorBase< OctreeT >::getLeafContainer ( )
inline

Method for retrieving a single leaf container from the octree leaf node.

Returns
Reference to container class of leaf node.

Definition at line 298 of file octree_iterator.h.

References pcl::octree::OctreeIteratorBase< OctreeT >::current_state_, pcl::octree::OctreeIteratorBase< OctreeT >::isLeafNode(), pcl::octree::IteratorState::node_, and pcl::octree::OctreeIteratorBase< OctreeT >::octree_.

◆ getLeafContainer() [2/2]

template<typename OctreeT >
const LeafContainer& pcl::octree::OctreeIteratorBase< OctreeT >::getLeafContainer ( ) const
inline

Method for retrieving a single leaf container from the octree leaf node.

Returns
Reference to container class of leaf node.

Definition at line 283 of file octree_iterator.h.

References pcl::octree::OctreeIteratorBase< OctreeT >::current_state_, pcl::octree::OctreeIteratorBase< OctreeT >::isLeafNode(), pcl::octree::IteratorState::node_, and pcl::octree::OctreeIteratorBase< OctreeT >::octree_.

◆ getNodeConfiguration()

template<typename OctreeT >
char pcl::octree::OctreeIteratorBase< OctreeT >::getNodeConfiguration ( ) const
inline

Get bit pattern of children configuration of current node.

Returns
bit pattern (byte) describing the existence of 8 children of the current node

Definition at line 259 of file octree_iterator.h.

References pcl::octree::OctreeIteratorBase< OctreeT >::current_state_, pcl::octree::OctreeIteratorBase< OctreeT >::isBranchNode(), pcl::octree::IteratorState::node_, and pcl::octree::OctreeIteratorBase< OctreeT >::octree_.

◆ getNodeID()

template<typename OctreeT >
virtual unsigned long pcl::octree::OctreeIteratorBase< OctreeT >::getNodeID ( ) const
inlinevirtual

◆ isBranchNode()

template<typename OctreeT >
bool pcl::octree::OctreeIteratorBase< OctreeT >::isBranchNode ( ) const
inline

◆ isLeafNode()

template<typename OctreeT >
bool pcl::octree::OctreeIteratorBase< OctreeT >::isLeafNode ( ) const
inline

◆ operator!=()

template<typename OctreeT >
bool pcl::octree::OctreeIteratorBase< OctreeT >::operator!= ( const OctreeIteratorBase< OctreeT > &  other) const
inline

Inequal comparison operator.

Parameters
[in]otherOctreeIteratorBase to compare with

Definition at line 159 of file octree_iterator.h.

References pcl::octree::OctreeIteratorBase< OctreeT >::operator==().

◆ operator*()

template<typename OctreeT >
virtual OctreeNode* pcl::octree::OctreeIteratorBase< OctreeT >::operator* ( ) const
inlinevirtual

◆ operator++()

template<typename OctreeT >
virtual OctreeIteratorBase& pcl::octree::OctreeIteratorBase< OctreeT >::operator++ ( )
pure virtual

◆ operator==()

template<typename OctreeT >
bool pcl::octree::OctreeIteratorBase< OctreeT >::operator== ( const OctreeIteratorBase< OctreeT > &  other) const
inline

◆ reset()

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

Member Data Documentation

◆ current_state_

template<typename OctreeT >
IteratorState* pcl::octree::OctreeIteratorBase< OctreeT >::current_state_
protected

◆ max_octree_depth_

template<typename OctreeT >
uindex_t pcl::octree::OctreeIteratorBase< OctreeT >::max_octree_depth_
protected

◆ octree_

template<typename OctreeT >
OctreeT* pcl::octree::OctreeIteratorBase< OctreeT >::octree_
protected

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