MeshLib Documentation
Loading...
Searching...
No Matches
MR::RangeProcessor< TreeT, Transformer > Class Template Reference

Class to use in tbb::parallel_reduce for openvdb::tree transformation. More...

#include <MROpenVDBHelper.h>

Public Types

using InterruptFunc = std::function<bool( void )>
 
using ValueT = typename TreeT::ValueType
 
using LeafIterT = typename TreeT::LeafCIter
 
using TileIterT = typename TreeT::ValueAllCIter
 
using LeafRange = typename openvdb::tree::IteratorRange<LeafIterT>
 
using TileRange = typename openvdb::tree::IteratorRange<TileIterT>
 
using InTreeAccessor = typename openvdb::tree::ValueAccessor<const TreeT>
 
using OutTreeAccessor = typename openvdb::tree::ValueAccessor<TreeT>
 

Public Member Functions

 RangeProcessor (const openvdb::math::CoordBBox &b, const TreeT &inT, TreeT &outT, const Transformer &xform)
 
 RangeProcessor (const openvdb::math::CoordBBox &b, const TreeT &inTree, const Transformer &xform)
 
 ~RangeProcessor ()
 
 RangeProcessor (RangeProcessor &other, tbb::split)
 Splitting constructor: don't copy the original processor's output tree.
 
void setInterrupt (const InterruptFunc &f)
 
void operator() (const LeafRange &rCRef)
 Transform each leaf node in the given range.
 
void operator() (const TileRange &rCRef)
 Transform each non-background tile in the given range.
 
void join (RangeProcessor &other)
 Merge another processor's output tree into this processor's tree.
 

Detailed Description

template<class TreeT, typename Transformer>
class MR::RangeProcessor< TreeT, Transformer >

Class to use in tbb::parallel_reduce for openvdb::tree transformation.

similar to openvdb::RangeProcessor

Template Parameters
TreeTtree type
Transformerfunctor to transform tree

Member Typedef Documentation

◆ InterruptFunc

template<class TreeT , typename Transformer >
using MR::RangeProcessor< TreeT, Transformer >::InterruptFunc = std::function<bool( void )>

◆ InTreeAccessor

template<class TreeT , typename Transformer >
using MR::RangeProcessor< TreeT, Transformer >::InTreeAccessor = typename openvdb::tree::ValueAccessor<const TreeT>

◆ LeafIterT

template<class TreeT , typename Transformer >
using MR::RangeProcessor< TreeT, Transformer >::LeafIterT = typename TreeT::LeafCIter

◆ LeafRange

template<class TreeT , typename Transformer >
using MR::RangeProcessor< TreeT, Transformer >::LeafRange = typename openvdb::tree::IteratorRange<LeafIterT>

◆ OutTreeAccessor

template<class TreeT , typename Transformer >
using MR::RangeProcessor< TreeT, Transformer >::OutTreeAccessor = typename openvdb::tree::ValueAccessor<TreeT>

◆ TileIterT

template<class TreeT , typename Transformer >
using MR::RangeProcessor< TreeT, Transformer >::TileIterT = typename TreeT::ValueAllCIter

◆ TileRange

template<class TreeT , typename Transformer >
using MR::RangeProcessor< TreeT, Transformer >::TileRange = typename openvdb::tree::IteratorRange<TileIterT>

◆ ValueT

template<class TreeT , typename Transformer >
using MR::RangeProcessor< TreeT, Transformer >::ValueT = typename TreeT::ValueType

Constructor & Destructor Documentation

◆ RangeProcessor() [1/3]

template<class TreeT , typename Transformer >
MR::RangeProcessor< TreeT, Transformer >::RangeProcessor ( const openvdb::math::CoordBBox & b,
const TreeT & inT,
TreeT & outT,
const Transformer & xform )
inline

◆ RangeProcessor() [2/3]

template<class TreeT , typename Transformer >
MR::RangeProcessor< TreeT, Transformer >::RangeProcessor ( const openvdb::math::CoordBBox & b,
const TreeT & inTree,
const Transformer & xform )
inline

◆ ~RangeProcessor()

template<class TreeT , typename Transformer >
MR::RangeProcessor< TreeT, Transformer >::~RangeProcessor ( )
inline

◆ RangeProcessor() [3/3]

template<class TreeT , typename Transformer >
MR::RangeProcessor< TreeT, Transformer >::RangeProcessor ( RangeProcessor< TreeT, Transformer > & other,
tbb::split  )
inline

Splitting constructor: don't copy the original processor's output tree.

Member Function Documentation

◆ join()

template<class TreeT , typename Transformer >
void MR::RangeProcessor< TreeT, Transformer >::join ( RangeProcessor< TreeT, Transformer > & other)
inline

Merge another processor's output tree into this processor's tree.

◆ operator()() [1/2]

template<class TreeT , typename Transformer >
void MR::RangeProcessor< TreeT, Transformer >::operator() ( const LeafRange & rCRef)
inline

Transform each leaf node in the given range.

◆ operator()() [2/2]

template<class TreeT , typename Transformer >
void MR::RangeProcessor< TreeT, Transformer >::operator() ( const TileRange & rCRef)
inline

Transform each non-background tile in the given range.

◆ setInterrupt()

template<class TreeT , typename Transformer >
void MR::RangeProcessor< TreeT, Transformer >::setInterrupt ( const InterruptFunc & f)
inline

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