OpenVDB: TreeValueIteratorBase< _TreeT, _ValueIterT > Class Template Reference

OpenVDB 9.0.0

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)
TreeValueIteratorBase & | operator= (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 | test () const
| Return `true` if this iterator is not yet exhausted. More...
| operator bool () const
bool | next ()
| Advance to the next tile or voxel value. Return `true` if this iterator is not yet exhausted. More...
TreeValueIteratorBase & | operator++ ()
| 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...
const ValueT & | getValue () const
| Return the tile or voxel value to which this iterator is currently pointing. More...
const ValueT & | operator* () const
const ValueT * | operator-> () const
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...
TreeT * | getTree () 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...

## 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

## ◆ ChildOnIterT

using ChildOnIterT = typename NodeT::ChildOnCIter

## ◆ NodeT

using NodeT = typename ValueIterT::NodeType

## ◆ TreeT

using TreeT = _TreeT

## ◆ ValueIterT

using ValueIterT = _ValueIterT

## ◆ ValueT

using ValueT = typename ValueIterT::NonConstValueType

## Constructor & Destructor Documentation

## ◆ TreeValueIteratorBase() [1/2]

TreeValueIteratorBase | ( | TreeT & | tree | ) |
| inline

## ◆ TreeValueIteratorBase() [2/2]

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

## Member Function Documentation

## ◆ getBoundingBox() [1/2]

CoordBBox getBoundingBox | ( |  | ) | const
| inline

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

## ◆ getBoundingBox() [2/2]

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.

## ◆ getCoord()

Coord getCoord | ( |  | ) | const
| inline

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

## ◆ getDepth()

Index getDepth | ( |  | ) | const
| inline

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

## ◆ getLeafDepth()

static Index getLeafDepth | ( |  | ) |
| inlinestatic

## ◆ getLevel()

Index getLevel | ( |  | ) | const
| inline

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

## ◆ getMaxDepth()

Index getMaxDepth | ( |  | ) | const
| inline

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

## ◆ getMinDepth()

Index getMinDepth | ( |  | ) | const
| inline

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

## ◆ getNode()

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().

## ◆ getTree()

TreeT * getTree | ( |  | ) | const
| inline

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

## ◆ getValue()

const ValueT & getValue | ( |  | ) | const
| inline

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

## ◆ getVoxelCount()

Index64 getVoxelCount | ( |  | ) | const
| inline

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

## ◆ isTileValue()

bool isTileValue | ( |  | ) | const
| inline

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

## ◆ isValueOn()

bool isValueOn | ( |  | ) | const
| inline

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

## ◆ isVoxelValue()

bool isVoxelValue | ( |  | ) | const
| inline

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

## ◆ modifyValue()

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

  op | a functor of the form `void op(ValueType&) const` that modifies its argument in place

See also
  Tree::modifyValue()

## ◆ next()

bool next
| inline

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

## ◆ operator bool()

operator bool | ( |  | ) | const
| inline

## ◆ operator*()

const ValueT & operator* | ( |  | ) | const
| inline

## ◆ operator++()

TreeValueIteratorBase & operator++ | ( |  | ) |
| inline

Advance to the next tile or voxel value.

## ◆ operator->()

const ValueT * operator-> | ( |  | ) | const
| inline

## ◆ operator=()

TreeValueIteratorBase< TreeT, ValueIterT > & operator= | ( | const TreeValueIteratorBase< _TreeT, _ValueIterT > & | other | ) |
| inline

## ◆ setActiveState()

void setActiveState | ( | bool | on | ) | const
| inline

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

## ◆ setMaxDepth()

void setMaxDepth | ( | Index | maxDepth | ) |
| inline

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

## ◆ setMinDepth()

void setMinDepth | ( | Index | minDepth | ) |
| inline

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

## ◆ setValue()

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.

## ◆ setValueOff()

void setValueOff | ( |  | ) | const
| inline

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

## ◆ summary()

std::string summary
| inline

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

## ◆ test()

bool test | ( |  | ) | const
| inline

Return `true` if this iterator is not yet exhausted.

## Member Data Documentation

## ◆ LEAF_DEPTH

const Index LEAF_DEPTH = ROOT_LEVEL
| static

## ◆ LEAF_LEVEL

const Index LEAF_LEVEL = 0
| static

## ◆ ROOT_DEPTH

const Index ROOT_DEPTH = 0
| static

## ◆ ROOT_LEVEL

const Index ROOT_LEVEL = NodeT::LEVEL
| static