OpenVDB 11.0.0
Loading...
Searching...
No Matches
MultiResGrid< TreeType >::FractionOp< Order > Struct Template Reference

#include <openvdb/tools/MultiResGrid.h>

Public Types

using MaskT = typename TreeType::template ValueConverter<ValueMask>::Type
 
using PoolType = tbb::enumerable_thread_specific<MaskT>
 
using PoolIterT = typename PoolType::iterator
 
using Manager1 = tree::LeafManager<const TreeType>
 
using Manager2 = tree::LeafManager<TreeType>
 
using Range1 = typename Manager1::LeafRange
 
using Range2 = typename Manager2::LeafRange
 

Public Member Functions

 FractionOp (const MultiResGrid &parent, TreeType &midTree, float level, size_t grainSize=1)
 
void operator() (const Range1 &range) const
 
void operator() (const tbb::blocked_range< PoolIterT > &range) const
 
void operator() (const Range2 &r) const
 

Public Attributes

const float mLevel
 
PoolTypemPool
 
const TreeType * mTree0
 
const TreeType * mTree1
 

Member Typedef Documentation

◆ Manager1

template<typename TreeType >
template<Index Order>
using Manager1 = tree::LeafManager<const TreeType>

◆ Manager2

template<typename TreeType >
template<Index Order>
using Manager2 = tree::LeafManager<TreeType>

◆ MaskT

template<typename TreeType >
template<Index Order>
using MaskT = typename TreeType::template ValueConverter<ValueMask>::Type

◆ PoolIterT

template<typename TreeType >
template<Index Order>
using PoolIterT = typename PoolType::iterator

◆ PoolType

template<typename TreeType >
template<Index Order>
using PoolType = tbb::enumerable_thread_specific<MaskT>

◆ Range1

template<typename TreeType >
template<Index Order>
using Range1 = typename Manager1::LeafRange

◆ Range2

template<typename TreeType >
template<Index Order>
using Range2 = typename Manager2::LeafRange

Constructor & Destructor Documentation

◆ FractionOp()

template<typename TreeType >
template<Index Order>
FractionOp ( const MultiResGrid & parent,
TreeType & midTree,
float level,
size_t grainSize = 1 )
inline

Member Function Documentation

◆ operator()() [1/3]

template<typename TreeType >
template<Index Order>
void operator() ( const Range1 & range) const
inline

◆ operator()() [2/3]

template<typename TreeType >
template<Index Order>
void operator() ( const Range2 & r) const
inline

◆ operator()() [3/3]

template<typename TreeType >
template<Index Order>
void operator() ( const tbb::blocked_range< PoolIterT > & range) const
inline

Member Data Documentation

◆ mLevel

template<typename TreeType >
template<Index Order>
const float mLevel

◆ mPool

template<typename TreeType >
template<Index Order>
PoolType* mPool

◆ mTree0

template<typename TreeType >
template<Index Order>
const TreeType* mTree0

◆ mTree1

template<typename TreeType >
template<Index Order>
const TreeType * mTree1