OpenVDB 11.0.0
Loading...
Searching...
No Matches
IterListItem< PrevItemT, NodeVecT, 1, _Level > Class Template Reference

The final element of a compile-time linked list of iterators to nodes of different types. More...

#include <openvdb/tree/TreeIterator.h>

Public Types

using _NodeT = typename NodeVecT::Front
 
using PrevIterT = typename PrevItemT::IterT
 The type of iterator stored in the previous list item.
 
using IterT
 The type of iterator stored in this list item (e.g., RootNode::ValueOnCIter)
 
using NodeT = typename IterT::NodeType
 The type of node over which IterT iterates (e.g., const RootNode<...>)
 
using NCNodeT = typename IterT::NonConstNodeType
 The type of the node with const qualifiers removed ("Non-Const")
 
using NCValueT = typename IterT::NonConstValueType
 The type of value (with const qualifiers removed) to which the iterator points.
 
using ChildT = typename CopyConstness<NodeT, typename NodeT::ChildNodeType>::Type
 NodeT's child node type, with the same constness (e.g., const InternalNode<...>)
 
using NCChildT = typename CopyConstness<NCNodeT, typename NCNodeT::ChildNodeType>::Type
 NodeT's child node type with const qualifiers removed.
 
using ITraits = IterTraits<NCNodeT, IterT>
 

Public Member Functions

 IterListItem (PrevItemT *prev)
 
 IterListItem (const IterListItem &other)
 
IterListItemoperator= (const IterListItem &other)
 
void updateBackPointers (PrevItemT *prev)
 
void setIter (const IterT &iter)
 
void getNode (Index lvl, NodeT *&node) const
 
template<typename OtherIterListItemT >
void initLevel (Index lvl, OtherIterListItemT &otherListItem)
 
Index pos (Index lvl) const
 
bool test (Index lvl) const
 
bool next (Index lvl)
 
bool down (Index lvl)
 
Coord getCoord (Index lvl) const
 
Index getChildDim (Index lvl) const
 
Index64 getVoxelCount (Index lvl) const
 
bool isValueOn (Index lvl) const
 
const NCValueTgetValue (Index lvl) const
 
void setValue (Index lvl, const NCValueT &val) const
 
void setValueOn (Index lvl, bool on=true) const
 
void setValueOff (Index lvl) const
 
template<typename ModifyOp >
void modifyValue (Index lvl, const ModifyOp &op) const
 

Static Public Attributes

static const Index Level = _Level
 NodeT's level in its tree (0 = LeafNode)
 

Detailed Description

template<typename PrevItemT, typename NodeVecT, Index _Level>
class openvdb::v11_0::tree::IterListItem< PrevItemT, NodeVecT, 1, _Level >

The final element of a compile-time linked list of iterators to nodes of different types.

Member Typedef Documentation

◆ _NodeT

template<typename PrevItemT , typename NodeVecT , Index _Level>
using _NodeT = typename NodeVecT::Front

◆ ChildT

template<typename PrevItemT , typename NodeVecT , Index _Level>
using ChildT = typename CopyConstness<NodeT, typename NodeT::ChildNodeType>::Type

NodeT's child node type, with the same constness (e.g., const InternalNode<...>)

◆ IterT

template<typename PrevItemT , typename NodeVecT , Index _Level>
using IterT
Initial value:
typename IterTraits<typename PrevIterT::NonConstNodeType, PrevIterT>::template
NodeConverter<_NodeT>::Type

The type of iterator stored in this list item (e.g., RootNode::ValueOnCIter)

◆ ITraits

template<typename PrevItemT , typename NodeVecT , Index _Level>
using ITraits = IterTraits<NCNodeT, IterT>

◆ NCChildT

template<typename PrevItemT , typename NodeVecT , Index _Level>
using NCChildT = typename CopyConstness<NCNodeT, typename NCNodeT::ChildNodeType>::Type

NodeT's child node type with const qualifiers removed.

◆ NCNodeT

template<typename PrevItemT , typename NodeVecT , Index _Level>
using NCNodeT = typename IterT::NonConstNodeType

The type of the node with const qualifiers removed ("Non-Const")

◆ NCValueT

template<typename PrevItemT , typename NodeVecT , Index _Level>
using NCValueT = typename IterT::NonConstValueType

The type of value (with const qualifiers removed) to which the iterator points.

◆ NodeT

template<typename PrevItemT , typename NodeVecT , Index _Level>
using NodeT = typename IterT::NodeType

The type of node over which IterT iterates (e.g., const RootNode<...>)

◆ PrevIterT

template<typename PrevItemT , typename NodeVecT , Index _Level>
using PrevIterT = typename PrevItemT::IterT

The type of iterator stored in the previous list item.

Constructor & Destructor Documentation

◆ IterListItem() [1/2]

template<typename PrevItemT , typename NodeVecT , Index _Level>
IterListItem ( PrevItemT * prev)
inline

◆ IterListItem() [2/2]

template<typename PrevItemT , typename NodeVecT , Index _Level>
IterListItem ( const IterListItem< PrevItemT, NodeVecT, 1, _Level > & other)
inline

Member Function Documentation

◆ down()

template<typename PrevItemT , typename NodeVecT , Index _Level>
bool down ( Index lvl)
inline

◆ getChildDim()

template<typename PrevItemT , typename NodeVecT , Index _Level>
Index getChildDim ( Index lvl) const
inline

◆ getCoord()

template<typename PrevItemT , typename NodeVecT , Index _Level>
Coord getCoord ( Index lvl) const
inline

◆ getNode()

template<typename PrevItemT , typename NodeVecT , Index _Level>
void getNode ( Index lvl,
NodeT *& node ) const
inline

◆ getValue()

template<typename PrevItemT , typename NodeVecT , Index _Level>
const NCValueT & getValue ( Index lvl) const
inline

◆ getVoxelCount()

template<typename PrevItemT , typename NodeVecT , Index _Level>
Index64 getVoxelCount ( Index lvl) const
inline

◆ initLevel()

template<typename PrevItemT , typename NodeVecT , Index _Level>
template<typename OtherIterListItemT >
void initLevel ( Index lvl,
OtherIterListItemT & otherListItem )
inline

◆ isValueOn()

template<typename PrevItemT , typename NodeVecT , Index _Level>
bool isValueOn ( Index lvl) const
inline

◆ modifyValue()

template<typename PrevItemT , typename NodeVecT , Index _Level>
template<typename ModifyOp >
void modifyValue ( Index lvl,
const ModifyOp & op ) const
inline

◆ next()

template<typename PrevItemT , typename NodeVecT , Index _Level>
bool next ( Index lvl)
inline

◆ operator=()

template<typename PrevItemT , typename NodeVecT , Index _Level>
IterListItem & operator= ( const IterListItem< PrevItemT, NodeVecT, 1, _Level > & other)
inline

◆ pos()

template<typename PrevItemT , typename NodeVecT , Index _Level>
Index pos ( Index lvl) const
inline

◆ setIter()

template<typename PrevItemT , typename NodeVecT , Index _Level>
void setIter ( const IterT & iter)
inline

◆ setValue()

template<typename PrevItemT , typename NodeVecT , Index _Level>
void setValue ( Index lvl,
const NCValueT & val ) const
inline

◆ setValueOff()

template<typename PrevItemT , typename NodeVecT , Index _Level>
void setValueOff ( Index lvl) const
inline

◆ setValueOn()

template<typename PrevItemT , typename NodeVecT , Index _Level>
void setValueOn ( Index lvl,
bool on = true ) const
inline

◆ test()

template<typename PrevItemT , typename NodeVecT , Index _Level>
bool test ( Index lvl) const
inline

◆ updateBackPointers()

template<typename PrevItemT , typename NodeVecT , Index _Level>
void updateBackPointers ( PrevItemT * prev)
inline

Member Data Documentation

◆ Level

template<typename PrevItemT , typename NodeVecT , Index _Level>
const Index Level = _Level
static

NodeT's level in its tree (0 = LeafNode)