OpenVDB 11.0.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Attributes | List of all members
NodeManagerLink< NodeT, LEVEL > Class Template Reference

This class is a link in a chain that each caches tree nodes of a specific type in a linear array. More...

#include <openvdb/tree/NodeManager.h>

Public Types

using NonConstChildNodeType = typename NodeT::ChildNodeType
 
using ChildNodeType = typename CopyConstness<NodeT, NonConstChildNodeType>::Type
 

Public Member Functions

 NodeManagerLink ()=default
 
void clear ()
 
template<typename RootT >
void initRootChildren (RootT &root, bool serial=false)
 
template<typename ParentsT >
void initNodeChildren (ParentsT &parents, bool serial=false)
 
Index64 nodeCount () const
 
Index64 nodeCount (Index i) const
 
template<typename NodeOp >
void foreachBottomUp (const NodeOp &op, bool threaded, size_t grainSize)
 
template<typename NodeOp >
void foreachTopDown (const NodeOp &op, bool threaded, size_t grainSize)
 
template<typename NodeOp >
void reduceBottomUp (NodeOp &op, bool threaded, size_t grainSize)
 
template<typename NodeOp >
void reduceTopDown (NodeOp &op, bool threaded, size_t grainSize)
 

Protected Attributes

NodeList< NodeT > mList
 
NodeManagerLink< ChildNodeType, LEVEL-1 > mNext
 

Detailed Description

template<typename NodeT, Index LEVEL>
class openvdb::v11_0::tree::NodeManagerLink< NodeT, LEVEL >

This class is a link in a chain that each caches tree nodes of a specific type in a linear array.

Note
It is for internal use and should rarely be used directly.

Member Typedef Documentation

◆ ChildNodeType

template<typename NodeT , Index LEVEL>
using ChildNodeType = typename CopyConstness<NodeT, NonConstChildNodeType>::Type

◆ NonConstChildNodeType

template<typename NodeT , Index LEVEL>
using NonConstChildNodeType = typename NodeT::ChildNodeType

Constructor & Destructor Documentation

◆ NodeManagerLink()

template<typename NodeT , Index LEVEL>
NodeManagerLink ( )
default

Member Function Documentation

◆ clear()

template<typename NodeT , Index LEVEL>
void clear ( )
inline

◆ foreachBottomUp()

template<typename NodeT , Index LEVEL>
template<typename NodeOp >
void foreachBottomUp ( const NodeOp & op,
bool threaded,
size_t grainSize )
inline

◆ foreachTopDown()

template<typename NodeT , Index LEVEL>
template<typename NodeOp >
void foreachTopDown ( const NodeOp & op,
bool threaded,
size_t grainSize )
inline

◆ initNodeChildren()

template<typename NodeT , Index LEVEL>
template<typename ParentsT >
void initNodeChildren ( ParentsT & parents,
bool serial = false )
inline

◆ initRootChildren()

template<typename NodeT , Index LEVEL>
template<typename RootT >
void initRootChildren ( RootT & root,
bool serial = false )
inline

◆ nodeCount() [1/2]

template<typename NodeT , Index LEVEL>
Index64 nodeCount ( ) const
inline

◆ nodeCount() [2/2]

template<typename NodeT , Index LEVEL>
Index64 nodeCount ( Index i) const
inline

◆ reduceBottomUp()

template<typename NodeT , Index LEVEL>
template<typename NodeOp >
void reduceBottomUp ( NodeOp & op,
bool threaded,
size_t grainSize )
inline

◆ reduceTopDown()

template<typename NodeT , Index LEVEL>
template<typename NodeOp >
void reduceTopDown ( NodeOp & op,
bool threaded,
size_t grainSize )
inline

Member Data Documentation

◆ mList

template<typename NodeT , Index LEVEL>
NodeList<NodeT> mList
protected

◆ mNext

template<typename NodeT , Index LEVEL>
NodeManagerLink<ChildNodeType, LEVEL-1> mNext
protected