OpenVDB 12.1.0
Loading...
Searching...
No Matches
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::v12_1::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