OpenVDB 9.0.0
Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
LeafIteratorBase< TreeT, RootChildOnIterT > Class Template Reference

Base class for tree-traversal iterators over all leaf nodes (but not leaf voxels) More...

#include <openvdb/tree/TreeIterator.h>

Public Types

using RootIterT = RootChildOnIterT
 
using RootNodeT = typename RootIterT::NodeType
 
using NCRootNodeT = typename RootIterT::NonConstNodeType
 
using InvTreeT = typename iter::InvertedTree< NCRootNodeT, ROOT_LEVEL >::Type
 
using NCLeafNodeT = typename InvTreeT::Front
 
using LeafNodeT = typename CopyConstness< RootNodeT, NCLeafNodeT >::Type
 
using RootIterTraits = IterTraits< NCRootNodeT, RootIterT >
 

Public Member Functions

 LeafIteratorBase ()
 
 LeafIteratorBase (TreeT &tree)
 
 LeafIteratorBase (const LeafIteratorBase &other)
 
LeafIteratorBaseoperator= (const LeafIteratorBase &other)
 
LeafNodeTgetLeaf () const
 Return the leaf node to which the iterator is pointing. More...
 
LeafNodeToperator* () const
 
LeafNodeToperator-> () const
 
bool test () const
 
 operator bool () const
 
bool next ()
 Advance the iterator to the next leaf node. More...
 
void increment ()
 
LeafIteratorBaseoperator++ ()
 
void increment (Index n)
 Increment the iterator n times. More...
 
TreeT * getTree () const
 

Static Public Attributes

static const Index ROOT_LEVEL = RootNodeT::LEVEL
 
static const Index LEAF_LEVEL = 0
 
static const Index LEAF_PARENT_LEVEL = LEAF_LEVEL + 1
 

Detailed Description

template<typename TreeT, typename RootChildOnIterT>
class openvdb::v9_0::tree::LeafIteratorBase< TreeT, RootChildOnIterT >

Base class for tree-traversal iterators over all leaf nodes (but not leaf voxels)

Member Typedef Documentation

◆ InvTreeT

◆ LeafNodeT

using LeafNodeT = typename CopyConstness<RootNodeT, NCLeafNodeT>::Type

◆ NCLeafNodeT

using NCLeafNodeT = typename InvTreeT::Front

◆ NCRootNodeT

using NCRootNodeT = typename RootIterT::NonConstNodeType

◆ RootIterT

using RootIterT = RootChildOnIterT

◆ RootIterTraits

◆ RootNodeT

using RootNodeT = typename RootIterT::NodeType

Constructor & Destructor Documentation

◆ LeafIteratorBase() [1/3]

LeafIteratorBase ( )
inline

◆ LeafIteratorBase() [2/3]

LeafIteratorBase ( TreeT &  tree)
inline

◆ LeafIteratorBase() [3/3]

LeafIteratorBase ( const LeafIteratorBase< TreeT, RootChildOnIterT > &  other)
inline

Member Function Documentation

◆ getLeaf()

LeafNodeT * getLeaf ( ) const
inline

Return the leaf node to which the iterator is pointing.

◆ getTree()

TreeT * getTree ( ) const
inline

◆ increment() [1/2]

void increment ( )
inline

◆ increment() [2/2]

void increment ( Index  n)
inline

Increment the iterator n times.

◆ next()

bool next
inline

Advance the iterator to the next leaf node.

◆ operator bool()

operator bool ( ) const
inline

◆ operator*()

LeafNodeT & operator* ( ) const
inline

◆ operator++()

LeafIteratorBase & operator++ ( )
inline

◆ operator->()

LeafNodeT * operator-> ( ) const
inline

◆ operator=()

LeafIteratorBase & operator= ( const LeafIteratorBase< TreeT, RootChildOnIterT > &  other)
inline

◆ test()

bool test ( ) const
inline

Member Data Documentation

◆ LEAF_LEVEL

const Index LEAF_LEVEL = 0
static

◆ LEAF_PARENT_LEVEL

const Index LEAF_PARENT_LEVEL = LEAF_LEVEL + 1
static

◆ ROOT_LEVEL

const Index ROOT_LEVEL = RootNodeT::LEVEL
static