Loading...
Searching...
No Matches
GridOperator< InGridT, MaskGridType, OutGridT, MapT, OperatorT, InterruptT > Class Template Reference

Apply an operator to an input grid to produce an output grid with the same active voxel topology but a potentially different value type. More...

`#include <openvdb/tools/GridOperators.h>`

## Public Types

typedef OutGridT::TreeType | OutTreeT
typedef OutTreeT::LeafNodeType | OutLeafT
typedef tree::LeafManager< OutTreeT > | LeafManagerT

## Public Member Functions

| GridOperator (const InGridT &grid, const MaskGridType *mask, const MapT &map, InterruptT *interrupt=nullptr, bool densify=true)
| GridOperator (const GridOperator &)=default
GridOperator & | operator= (const GridOperator &)=default
virtual | ~GridOperator ()=default
OutGridT::Ptr | process (bool threaded=true)
void | operator() (const typename LeafManagerT::LeafRange &range) const
| Iterate sequentially over LeafNodes and voxels in the output grid and apply the operator using a value accessor for the input grid.

## Protected Types

typedef InGridT::ConstAccessor | AccessorT

## Protected Attributes

AccessorT | mAcc
const MapT & | mMap
InterruptT * | mInterrupt
const MaskGridType * | mMask
const bool | mDensify

## Detailed Description

template<typename InGridT, typename MaskGridType, typename OutGridT, typename MapT, typename OperatorT, typename InterruptT = util::NullInterrupter>
class openvdb::v10_0::tools::gridop::GridOperator< InGridT, MaskGridType, OutGridT, MapT, OperatorT, InterruptT >

Apply an operator to an input grid to produce an output grid with the same active voxel topology but a potentially different value type.

To facilitate inlining, this class is also templated on a Map type.

Note
  This is a helper class and should never be used directly.

## Member Typedef Documentation

## AccessorT

template<typename InGridT, typename MaskGridType, typename OutGridT, typename MapT, typename OperatorT, typename InterruptT = util::NullInterrupter>

typedef InGridT::ConstAccessor AccessorT

protected

## LeafManagerT

template<typename InGridT, typename MaskGridType, typename OutGridT, typename MapT, typename OperatorT, typename InterruptT = util::NullInterrupter>

typedef tree::LeafManager<OutTreeT> LeafManagerT

## OutLeafT

template<typename InGridT, typename MaskGridType, typename OutGridT, typename MapT, typename OperatorT, typename InterruptT = util::NullInterrupter>

typedef OutTreeT::LeafNodeType OutLeafT

## OutTreeT

template<typename InGridT, typename MaskGridType, typename OutGridT, typename MapT, typename OperatorT, typename InterruptT = util::NullInterrupter>

typedef OutGridT::TreeType OutTreeT

## Constructor & Destructor Documentation

## GridOperator() [1/2]

template<typename InGridT, typename MaskGridType, typename OutGridT, typename MapT, typename OperatorT, typename InterruptT = util::NullInterrupter>

GridOperator | ( | const InGridT & | grid,
|  | const MaskGridType * | mask,
|  | const MapT & | map,
|  | InterruptT * | interrupt = nullptr,
|  | bool | densify = true )

inline

## GridOperator() [2/2]

template<typename InGridT, typename MaskGridType, typename OutGridT, typename MapT, typename OperatorT, typename InterruptT = util::NullInterrupter>

GridOperator | ( | const GridOperator< InGridT, MaskGridType, OutGridT, MapT, OperatorT, InterruptT > & |  | ) |

default

## ~GridOperator()

template<typename InGridT, typename MaskGridType, typename OutGridT, typename MapT, typename OperatorT, typename InterruptT = util::NullInterrupter>

virtual ~GridOperator | ( |  | ) |

virtual default

## Member Function Documentation

## operator()()

template<typename InGridT, typename MaskGridType, typename OutGridT, typename MapT, typename OperatorT, typename InterruptT = util::NullInterrupter>

void operator() | ( | const typename LeafManagerT::LeafRange & | range | ) | const

inline

Iterate sequentially over LeafNodes and voxels in the output grid and apply the operator using a value accessor for the input grid.

Note
  Never call this public method directly - it is called by TBB threads only!

## operator=()

template<typename InGridT, typename MaskGridType, typename OutGridT, typename MapT, typename OperatorT, typename InterruptT = util::NullInterrupter>

GridOperator & operator= | ( | const GridOperator< InGridT, MaskGridType, OutGridT, MapT, OperatorT, InterruptT > & |  | ) |

default

## process()

template<typename InGridT, typename MaskGridType, typename OutGridT, typename MapT, typename OperatorT, typename InterruptT = util::NullInterrupter>

OutGridT::Ptr process | ( | bool | threaded = true | ) |

inline

## Member Data Documentation

## mAcc

template<typename InGridT, typename MaskGridType, typename OutGridT, typename MapT, typename OperatorT, typename InterruptT = util::NullInterrupter>

AccessorT mAcc

mutable protected

## mDensify

template<typename InGridT, typename MaskGridType, typename OutGridT, typename MapT, typename OperatorT, typename InterruptT = util::NullInterrupter>

const bool mDensify

protected

## mInterrupt

template<typename InGridT, typename MaskGridType, typename OutGridT, typename MapT, typename OperatorT, typename InterruptT = util::NullInterrupter>

InterruptT* mInterrupt

protected

## mMap

template<typename InGridT, typename MaskGridType, typename OutGridT, typename MapT, typename OperatorT, typename InterruptT = util::NullInterrupter>

const MapT& mMap

protected

## mMask

template<typename InGridT, typename MaskGridType, typename OutGridT, typename MapT, typename OperatorT, typename InterruptT = util::NullInterrupter>

const MaskGridType* mMask

protected