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

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

#include <Iterator.h>

+ Inheritance diagram for openvdb::OPENVDB_VERSION_NAME::tree::SparseIteratorBase< MaskIterT, IterT, NodeT, ItemT >:

Public Types

typedef NodeT NodeType
 
typedef ItemT ValueType
 
typedef hboost::remove_const
< NodeT >::type 
NonConstNodeType
 
typedef hboost::remove_const
< ItemT >::type 
NonConstValueType
 

Public Member Functions

 SparseIteratorBase ()
 
 SparseIteratorBase (const MaskIterT &iter, NodeT *parent)
 
ItemT & getItem (Index) const
 Return the item at the given index in the parent node's table. More...
 
void setItem (Index, const ItemT &) const
 Set the value of the item at the given index in the parent node's table. More...
 
ItemT & operator* () const
 Return a reference to the item to which this iterator is pointing. More...
 
ItemT * operator-> () const
 Return a pointer to the item to which this iterator is pointing. More...
 
ItemT & getValue () const
 Return the item to which this iterator is pointing. More...
 
void setValue (const ItemT &value) const
 Set the value of the item to which this iterator is pointing. (Not valid for const iterators.) 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...
 
- 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 = true
 
static const bool IsDenseIterator = false
 

Detailed Description

template<typename MaskIterT, typename IterT, typename NodeT, typename ItemT>
struct openvdb::OPENVDB_VERSION_NAME::tree::SparseIteratorBase< MaskIterT, IterT, NodeT, ItemT >

Base class for sparse iterators over internal and leaf nodes.

Definition at line 143 of file Iterator.h.

Member Typedef Documentation

template<typename MaskIterT, typename IterT, typename NodeT, typename ItemT>
typedef NodeT openvdb::OPENVDB_VERSION_NAME::tree::SparseIteratorBase< MaskIterT, IterT, NodeT, ItemT >::NodeType

Definition at line 145 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename ItemT>
typedef hboost::remove_const<NodeT>::type openvdb::OPENVDB_VERSION_NAME::tree::SparseIteratorBase< MaskIterT, IterT, NodeT, ItemT >::NonConstNodeType

Definition at line 147 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename ItemT>
typedef hboost::remove_const<ItemT>::type openvdb::OPENVDB_VERSION_NAME::tree::SparseIteratorBase< MaskIterT, IterT, NodeT, ItemT >::NonConstValueType

Definition at line 148 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename ItemT>
typedef ItemT openvdb::OPENVDB_VERSION_NAME::tree::SparseIteratorBase< MaskIterT, IterT, NodeT, ItemT >::ValueType

Definition at line 146 of file Iterator.h.

Constructor & Destructor Documentation

template<typename MaskIterT, typename IterT, typename NodeT, typename ItemT>
openvdb::OPENVDB_VERSION_NAME::tree::SparseIteratorBase< MaskIterT, IterT, NodeT, ItemT >::SparseIteratorBase ( )
inline

Definition at line 151 of file Iterator.h.

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

Definition at line 152 of file Iterator.h.

Member Function Documentation

template<typename MaskIterT, typename IterT, typename NodeT, typename ItemT>
ItemT& openvdb::OPENVDB_VERSION_NAME::tree::SparseIteratorBase< MaskIterT, IterT, NodeT, ItemT >::getItem ( Index  ) const

Return the item at the given index in the parent node's table.

Note
All subclasses must implement this accessor.
template<typename MaskIterT, typename IterT, typename NodeT, typename ItemT>
ItemT& openvdb::OPENVDB_VERSION_NAME::tree::SparseIteratorBase< MaskIterT, IterT, NodeT, ItemT >::getValue ( ) const
inline

Return the item to which this iterator is pointing.

Definition at line 168 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename ItemT>
template<typename ModifyOp >
void openvdb::OPENVDB_VERSION_NAME::tree::SparseIteratorBase< MaskIterT, IterT, NodeT, ItemT >::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()

Definition at line 185 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename ItemT>
ItemT& openvdb::OPENVDB_VERSION_NAME::tree::SparseIteratorBase< MaskIterT, IterT, NodeT, ItemT >::operator* ( void  ) const
inline

Return a reference to the item to which this iterator is pointing.

Definition at line 163 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename ItemT>
ItemT* openvdb::OPENVDB_VERSION_NAME::tree::SparseIteratorBase< MaskIterT, IterT, NodeT, ItemT >::operator-> ( void  ) const
inline

Return a pointer to the item to which this iterator is pointing.

Definition at line 165 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename ItemT>
void openvdb::OPENVDB_VERSION_NAME::tree::SparseIteratorBase< MaskIterT, IterT, NodeT, ItemT >::setItem ( Index  ,
const ItemT &   
) 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 ItemT>
void openvdb::OPENVDB_VERSION_NAME::tree::SparseIteratorBase< MaskIterT, IterT, NodeT, ItemT >::setValue ( const ItemT &  value) const
inline

Set the value of the item to which this iterator is pointing. (Not valid for const iterators.)

Definition at line 174 of file Iterator.h.

Member Data Documentation

template<typename MaskIterT, typename IterT, typename NodeT, typename ItemT>
const bool openvdb::OPENVDB_VERSION_NAME::tree::SparseIteratorBase< MaskIterT, IterT, NodeT, ItemT >::IsDenseIterator = false
static

Definition at line 149 of file Iterator.h.

template<typename MaskIterT, typename IterT, typename NodeT, typename ItemT>
const bool openvdb::OPENVDB_VERSION_NAME::tree::SparseIteratorBase< MaskIterT, IterT, NodeT, ItemT >::IsSparseIterator = true
static

Definition at line 149 of file Iterator.h.


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