OpenVDB  9.0.1
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
TreeValueIteratorBase< _TreeT, _ValueIterT > Class Template Reference

Base class for tree-traversal iterators over tile and voxel values. More...

#include <openvdb/tree/TreeIterator.h>

Public Types

using TreeT = _TreeT
 
using ValueIterT = _ValueIterT
 
using NodeT = typename ValueIterT::NodeType
 
using ValueT = typename ValueIterT::NonConstValueType
 
using ChildOnIterT = typename NodeT::ChildOnCIter
 

Public Member Functions

 TreeValueIteratorBase (TreeT &)
 
 TreeValueIteratorBase (const TreeValueIteratorBase &other)
 
TreeValueIteratorBaseoperator= (const TreeValueIteratorBase &other)
 
void setMinDepth (Index minDepth)
 Specify the depth of the highest level of the tree to which to ascend (depth 0 = root). More...
 
Index getMinDepth () const
 Return the depth of the highest level of the tree to which this iterator ascends. More...
 
void setMaxDepth (Index maxDepth)
 Specify the depth of the lowest level of the tree to which to descend (depth 0 = root). More...
 
Index getMaxDepth () const
 Return the depth of the lowest level of the tree to which this iterator ascends. More...
 
bool next ()
 Advance to the next tile or voxel value. Return true if this iterator is not yet exhausted. More...
 
TreeValueIteratorBaseoperator++ ()
 Advance to the next tile or voxel value. More...
 
Index getLevel () const
 Return the level in the tree (0 = leaf) of the node to which this iterator is currently pointing. More...
 
Index getDepth () const
 Return the depth in the tree (0 = root) of the node to which this iterator is currently pointing. More...
 
template<typename NodeType >
void getNode (NodeType *&node) const
 Return in node a pointer to the node over which this iterator is currently iterating or one of that node's parents, as determined by NodeType. More...
 
Coord getCoord () const
 Return the global coordinates of the voxel or tile to which this iterator is currently pointing. More...
 
bool getBoundingBox (CoordBBox &) const
 Return in bbox the axis-aligned bounding box of the voxel or tile to which this iterator is currently pointing. More...
 
CoordBBox getBoundingBox () const
 Return the axis-aligned bounding box of the voxel or tile to which this iterator is currently pointing. More...
 
Index64 getVoxelCount () const
 Return the number of (virtual) voxels corresponding to the value. More...
 
bool isTileValue () const
 Return true if this iterator is currently pointing to a (non-leaf) tile value. More...
 
bool isVoxelValue () const
 Return true if this iterator is currently pointing to a (leaf) voxel value. More...
 
bool isValueOn () const
 Return true if the value to which this iterator is currently pointing is active. More...
 
void setValue (const ValueT &val) const
 Change the tile or voxel value to which this iterator is currently pointing and mark it as active. More...
 
void setActiveState (bool on) const
 Change the active/inactive state of the tile or voxel value to which this iterator is currently pointing. More...
 
void setValueOff () const
 Mark the tile or voxel value to which this iterator is currently pointing as inactive. More...
 
template<typename ModifyOp >
void modifyValue (const ModifyOp &op) const
 Apply a functor to the item to which this iterator is pointing. (Not valid for const iterators.) More...
 
TreeTgetTree () const
 Return a pointer to the tree over which this iterator is iterating. More...
 
std::string summary () const
 Return a string (for debugging, mainly) describing this iterator's current state. More...
 
bool test () const
 Return true if this iterator is not yet exhausted. More...
 
 operator bool () const
 Return true if this iterator is not yet exhausted. More...
 
const ValueTgetValue () const
 Return the tile or voxel value to which this iterator is currently pointing. More...
 
const ValueToperator* () const
 Return the tile or voxel value to which this iterator is currently pointing. More...
 
const ValueToperator-> () const
 Return the tile or voxel value to which this iterator is currently pointing. More...
 

Static Public Member Functions

static Index getLeafDepth ()
 

Static Public Attributes

static const Index ROOT_LEVEL = NodeT::LEVEL
 
static const Index LEAF_LEVEL = 0
 
static const Index ROOT_DEPTH = 0
 
static const Index LEAF_DEPTH = ROOT_LEVEL
 

Detailed Description

template<typename _TreeT, typename _ValueIterT>
class openvdb::v9_0::tree::TreeValueIteratorBase< _TreeT, _ValueIterT >

Base class for tree-traversal iterators over tile and voxel values.

Member Typedef Documentation

using ChildOnIterT = typename NodeT::ChildOnCIter
using NodeT = typename ValueIterT::NodeType
using TreeT = _TreeT
using ValueIterT = _ValueIterT
using ValueT = typename ValueIterT::NonConstValueType

Constructor & Destructor Documentation

TreeValueIteratorBase ( TreeT tree)
inline
TreeValueIteratorBase ( const TreeValueIteratorBase< _TreeT, _ValueIterT > &  other)
inline

Member Function Documentation

bool getBoundingBox ( CoordBBox &  bbox) const
inline

Return in bbox the axis-aligned bounding box of the voxel or tile to which this iterator is currently pointing.

Returns
false if the bounding box is empty.
CoordBBox getBoundingBox ( ) const
inline

Return the axis-aligned bounding box of the voxel or tile to which this iterator is currently pointing.

Coord getCoord ( ) const
inline

Return the global coordinates of the voxel or tile to which this iterator is currently pointing.

Index getDepth ( ) const
inline

Return the depth in the tree (0 = root) of the node to which this iterator is currently pointing.

static Index getLeafDepth ( )
inlinestatic
Index getLevel ( ) const
inline

Return the level in the tree (0 = leaf) of the node to which this iterator is currently pointing.

Index getMaxDepth ( ) const
inline

Return the depth of the lowest level of the tree to which this iterator ascends.

Index getMinDepth ( ) const
inline

Return the depth of the highest level of the tree to which this iterator ascends.

void getNode ( NodeType *&  node) const
inline

Return in node a pointer to the node over which this iterator is currently iterating or one of that node's parents, as determined by NodeType.

Returns
a null pointer if NodeType specifies a node at a lower level of the tree than that given by getLevel().
TreeT* getTree ( ) const
inline

Return a pointer to the tree over which this iterator is iterating.

const ValueT& getValue ( ) const
inline

Return the tile or voxel value to which this iterator is currently pointing.

Index64 getVoxelCount ( ) const
inline

Return the number of (virtual) voxels corresponding to the value.

bool isTileValue ( ) const
inline

Return true if this iterator is currently pointing to a (non-leaf) tile value.

bool isValueOn ( ) const
inline

Return true if the value to which this iterator is currently pointing is active.

bool isVoxelValue ( ) const
inline

Return true if this iterator is currently pointing to a (leaf) voxel value.

void modifyValue ( const ModifyOp &  op) const
inline

Apply a functor to the item to which this iterator is pointing. (Not valid for const iterators.)

Parameters
opa functor of the form void op(ValueType&) const that modifies its argument in place
See also
Tree::modifyValue()
bool next ( )
inline

Advance to the next tile or voxel value. Return true if this iterator is not yet exhausted.

operator bool ( ) const
inline

Return true if this iterator is not yet exhausted.

const ValueT& operator* ( ) const
inline

Return the tile or voxel value to which this iterator is currently pointing.

TreeValueIteratorBase& operator++ ( )
inline

Advance to the next tile or voxel value.

const ValueT* operator-> ( ) const
inline

Return the tile or voxel value to which this iterator is currently pointing.

TreeValueIteratorBase< TreeT, ValueIterT > & operator= ( const TreeValueIteratorBase< _TreeT, _ValueIterT > &  other)
inline
void setActiveState ( bool  on) const
inline

Change the active/inactive state of the tile or voxel value to which this iterator is currently pointing.

void setMaxDepth ( Index  maxDepth)
inline

Specify the depth of the lowest level of the tree to which to descend (depth 0 = root).

void setMinDepth ( Index  minDepth)
inline

Specify the depth of the highest level of the tree to which to ascend (depth 0 = root).

void setValue ( const ValueT val) const
inline

Change the tile or voxel value to which this iterator is currently pointing and mark it as active.

void setValueOff ( ) const
inline

Mark the tile or voxel value to which this iterator is currently pointing as inactive.

std::string summary ( ) const
inline

Return a string (for debugging, mainly) describing this iterator's current state.

bool test ( ) const
inline

Return true if this iterator is not yet exhausted.

Member Data Documentation

const Index LEAF_DEPTH = ROOT_LEVEL
static
const Index LEAF_LEVEL = 0
static
const Index ROOT_DEPTH = 0
static
const Index ROOT_LEVEL = NodeT::LEVEL
static