OpenVDB 10.0.1
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::v10_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