HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT > Struct Template Reference

Base class for dense iterators over internal and leaf nodes. More...

#include <Iterator.h>

+ Inheritance diagram for openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >:

Public Types

typedef NodeT NodeType
 
typedef UnsetItemT ValueType
 
typedef SetItemT ChildNodeType
 
typedef hboost::remove_const
< NodeT >::type 
NonConstNodeType
 
typedef hboost::remove_const
< UnsetItemT >::type 
NonConstValueType
 
typedef hboost::remove_const
< SetItemT >::type 
NonConstChildNodeType
 

Public Member Functions

 DenseIteratorBase ()
 
 DenseIteratorBase (const MaskIterT &iter, NodeT *parent)
 
bool getItem (Index, SetItemT *&child, NonConstValueType &value) const
 Return true if the item at the given index in the parent node's table is a set value and return either the set value in child or the unset value in value. More...
 
void setItem (Index, SetItemT *) const
 Set the value of the item at the given index in the parent node's table. More...
 
void unsetItem (Index, const UnsetItemT &) const
 "Unset" the value of the item at the given index in the parent node's table. More...
 
bool isChildNode () const
 Return true if this iterator is pointing to a child node. More...
 
SetItemT * probeChild (NonConstValueType &value) const
 If this iterator is pointing to a child node, return a pointer to the node. Otherwise, return nullptr and, in value, the value to which this iterator is pointing. More...
 
bool probeChild (SetItemT *&child, NonConstValueType &value) const
 If this iterator is pointing to a child node, return true and return a pointer to the child node in child. Otherwise, return false and return the value to which this iterator is pointing in value. More...
 
bool probeValue (NonConstValueType &value) const
 Return true if this iterator is pointing to a value and return the value in value. Otherwise, return false. More...
 
void setChild (SetItemT *child) const
 Replace with the given child node the item in the parent node's table to which this iterator is pointing. More...
 
void setValue (const UnsetItemT &value) const
 Replace with the given value the item in the parent node's table to which this iterator is pointing. More...
 
- Public Member Functions inherited from openvdb::OPENVDB_VERSION_NAME::tree::IteratorBase< MaskIterT, NodeT >
 IteratorBase ()
 
 IteratorBase (const MaskIterT &iter, NodeT *parent)
 
 IteratorBase (const IteratorBase &)=default
 
IteratorBaseoperator= (const IteratorBase &)=default
 
bool operator== (const IteratorBase &other) const
 
bool operator!= (const IteratorBase &other) const
 
NodeT * getParentNode () const
 Return a pointer to the node (if any) over which this iterator is iterating. More...
 
NodeT & parent () const
 Return a reference to the node over which this iterator is iterating. More...
 
Index offset () const
 Return this iterator's position as an index into the parent node's table. More...
 
Index pos () const
 Identical to offset. 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...
 
bool next ()
 Advance to the next item in the parent node's table. More...
 
void increment ()
 Advance to the next item in the parent node's table. More...
 
IteratorBaseoperator++ ()
 Advance to the next item in the parent node's table. More...
 
void increment (Index n)
 Advance n items in the parent node's table. More...
 
bool isValueOn () const
 Return true if this iterator is pointing to an active value. Return false if it is pointing to either an inactive value or a child node. More...
 
void setValueOn (bool on=true) const
 If this iterator is pointing to a value, set the value's active state. Otherwise, do nothing. More...
 
void setValueOff () const
 If this iterator is pointing to a value, mark the value as inactive. More...
 
Coord getCoord () const
 Return the coordinates of the item to which this iterator is pointing. More...
 
void getCoord (Coord &xyz) const
 Return in xyz the coordinates of the item to which this iterator is pointing. More...
 

Static Public Attributes

static const bool IsSparseIterator = false
 
static const bool IsDenseIterator = true
 

Detailed Description

template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
struct openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >

Base class for dense iterators over internal and leaf nodes.

Note
Dense iterators have no operator*() or operator->(), because their return type would have to vary depending on whether the iterator is pointing to a value or a child node.

Definition at line 206 of file Iterator.h.

Member Typedef Documentation

template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
typedef SetItemT openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >::ChildNodeType

Definition at line 210 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
typedef NodeT openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >::NodeType

Definition at line 208 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
typedef hboost::remove_const<SetItemT>::type openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >::NonConstChildNodeType

Definition at line 213 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
typedef hboost::remove_const<NodeT>::type openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >::NonConstNodeType

Definition at line 211 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
typedef hboost::remove_const<UnsetItemT>::type openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >::NonConstValueType

Definition at line 212 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
typedef UnsetItemT openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >::ValueType

Definition at line 209 of file Iterator.h.

Constructor & Destructor Documentation

template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >::DenseIteratorBase ( )
inline

Definition at line 216 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >::DenseIteratorBase ( const MaskIterT &  iter,
NodeT *  parent 
)
inline

Definition at line 217 of file Iterator.h.

Member Function Documentation

template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
bool openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >::getItem ( Index  ,
SetItemT *&  child,
NonConstValueType value 
) const

Return true if the item at the given index in the parent node's table is a set value and return either the set value in child or the unset value in value.

Note
All subclasses must implement this accessor.
template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
bool openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >::isChildNode ( ) const
inline

Return true if this iterator is pointing to a child node.

Definition at line 233 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
SetItemT* openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >::probeChild ( NonConstValueType value) const
inline

If this iterator is pointing to a child node, return a pointer to the node. Otherwise, return nullptr and, in value, the value to which this iterator is pointing.

Definition at line 237 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
bool openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >::probeChild ( SetItemT *&  child,
NonConstValueType value 
) const
inline

If this iterator is pointing to a child node, return true and return a pointer to the child node in child. Otherwise, return false and return the value to which this iterator is pointing in value.

Definition at line 246 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
bool openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >::probeValue ( NonConstValueType value) const
inline

Return true if this iterator is pointing to a value and return the value in value. Otherwise, return false.

Definition at line 254 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
void openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >::setChild ( SetItemT *  child) const
inline

Replace with the given child node the item in the parent node's table to which this iterator is pointing.

Definition at line 264 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
void openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >::setItem ( Index  ,
SetItemT *   
) const

Set the value of the item at the given index in the parent node's table.

Note
All non-const iterator subclasses must implement this accessor.
template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
void openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >::setValue ( const UnsetItemT &  value) const
inline

Replace with the given value the item in the parent node's table to which this iterator is pointing.

Definition at line 271 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
void openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >::unsetItem ( Index  ,
const UnsetItemT &   
) const

"Unset" the value of the item at the given index in the parent node's table.

Note
All non-const iterator subclasses must implement this accessor.

Member Data Documentation

template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
const bool openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >::IsDenseIterator = true
static

Definition at line 214 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename SetItemT, typename UnsetItemT>
const bool openvdb::OPENVDB_VERSION_NAME::tree::DenseIteratorBase< MaskIterT, IterT, NodeT, SetItemT, UnsetItemT >::IsSparseIterator = false
static

Definition at line 214 of file Iterator.h.


The documentation for this struct was generated from the following file: