OpenVDB 11.0.0
Loading...
Searching...
No Matches
IterListItem< PrevItemT, NodeVecT, VecSize, 0U > Class Template Reference

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

#include <openvdb/tree/TreeIterator.h>

Public Types

using PrevIterT = typename PrevItemT::IterT
 The type of iterator stored in the previous list item.
 
using _NodeT = typename NodeVecT::Front
 The type of node (non-const) whose iterator is stored in this list item.
 
using IterT
 The type of iterator stored in this list item (e.g., InternalNode::ValueOnCIter)
 
using NodeT = typename IterT::NodeType
 The type of node (const or non-const) 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 ITraits = IterTraits<NCNodeT, IterT>
 

Public Member Functions

 IterListItem (PrevItemT *)
 
 IterListItem (const IterListItem &other)
 
IterListItemoperator= (const IterListItem &other)
 
void updateBackPointers (PrevItemT *=nullptr)
 
void setIter (const IterT &iter)
 
template<typename OtherIterT >
void setIter (const OtherIterT &iter)
 
void getNode (Index lvl, NodeT *&node) const
 
template<typename OtherNodeT >
void getNode (Index lvl, OtherNodeT *&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 = 0
 NodeT's level in its tree (0 = LeafNode)
 

Detailed Description

template<typename PrevItemT, typename NodeVecT, size_t VecSize>
class openvdb::v11_0::tree::IterListItem< PrevItemT, NodeVecT, VecSize, 0U >

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

Member Typedef Documentation

◆ _NodeT

template<typename PrevItemT , typename NodeVecT , size_t VecSize>
using _NodeT = typename NodeVecT::Front

The type of node (non-const) whose iterator is stored in this list item.

◆ IterT

template<typename PrevItemT , typename NodeVecT , size_t VecSize>
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., InternalNode::ValueOnCIter)

◆ ITraits

template<typename PrevItemT , typename NodeVecT , size_t VecSize>
using ITraits = IterTraits<NCNodeT, IterT>

◆ NCNodeT

template<typename PrevItemT , typename NodeVecT , size_t VecSize>
using NCNodeT = typename IterT::NonConstNodeType

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

◆ NCValueT

template<typename PrevItemT , typename NodeVecT , size_t VecSize>
using NCValueT = typename IterT::NonConstValueType

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

◆ NodeT

template<typename PrevItemT , typename NodeVecT , size_t VecSize>
using NodeT = typename IterT::NodeType

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

◆ PrevIterT

template<typename PrevItemT , typename NodeVecT , size_t VecSize>
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 , size_t VecSize>
IterListItem ( PrevItemT * )
inline

◆ IterListItem() [2/2]

template<typename PrevItemT , typename NodeVecT , size_t VecSize>
IterListItem ( const IterListItem< PrevItemT, NodeVecT, VecSize, 0U > & other)
inline

Member Function Documentation

◆ down()

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

◆ getChildDim()

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

◆ getCoord()

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

◆ getNode() [1/2]

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

◆ getNode() [2/2]

template<typename PrevItemT , typename NodeVecT , size_t VecSize>
template<typename OtherNodeT >
void getNode ( Index lvl,
OtherNodeT *& node ) const
inline

◆ getValue()

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

◆ getVoxelCount()

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

◆ initLevel()

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

◆ isValueOn()

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

◆ modifyValue()

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

◆ next()

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

◆ operator=()

template<typename PrevItemT , typename NodeVecT , size_t VecSize>
IterListItem & operator= ( const IterListItem< PrevItemT, NodeVecT, VecSize, 0U > & other)
inline

◆ pos()

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

◆ setIter() [1/2]

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

◆ setIter() [2/2]

template<typename PrevItemT , typename NodeVecT , size_t VecSize>
template<typename OtherIterT >
void setIter ( const OtherIterT & iter)
inline

◆ setValue()

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

◆ setValueOff()

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

◆ setValueOn()

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

◆ test()

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

◆ updateBackPointers()

template<typename PrevItemT , typename NodeVecT , size_t VecSize>
void updateBackPointers ( PrevItemT * = nullptr)
inline

Member Data Documentation

◆ Level

template<typename PrevItemT , typename NodeVecT , size_t VecSize>
const Index Level = 0
static

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