OpenVDB: Filter< GridT, MaskT, InterruptT > Class Template Reference

OpenVDB 3.1.0

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Classes | Public Types | Public Member Functions | List of all members
Filter< GridT, MaskT, InterruptT > Class Template Reference

Volume filtering (e.g., diffusion) with optional alpha masking. More...

`#include <Filter.h>`

## Public Types
typedef GridT | GridType
typedef MaskT | MaskType
typedef GridType::TreeType | TreeType
typedef TreeType::LeafNodeType | LeafType
typedef GridType::ValueType | ValueType
typedef MaskType::ValueType | AlphaType
typedef tree::LeafManager< TreeType > | LeafManagerType
typedef LeafManagerType::LeafRange | RangeType
typedef LeafManagerType::BufferType | BufferType

## Public Member Functions
| BOOST_STATIC_ASSERT (boost::is_floating_point< AlphaType >::value)
| Filter (GridT &grid, InterruptT *interrupt=NULL)
| Filter (const Filter &other)
| Shallow copy constructor called by tbb::parallel_for() threads during filtering. More...
int | getGrainSize () const
void | setGrainSize (int grainsize)
| Set the grain-size used for multi-threading. More...
AlphaType | minMask () const
| Return the minimum value of the mask to be used for the derivation of a smooth alpha value. More...
AlphaType | maxMask () const
| Return the maximum value of the mask to be used for the derivation of a smooth alpha value. More...
void | setMaskRange (AlphaType min, AlphaType max)
| Define the range for the (optional) scalar mask. More...
bool | isMaskInverted () const
| Return true if the mask is inverted, i.e. min->max in the original mask maps to 1->0 in the inverted alpha mask. More...
void | invertMask (bool invert=true)
| Invert the optional mask, i.e. min->max in the original mask maps to 1->0 in the inverted alpha mask. More...
void | mean (int width=1, int iterations=1, const MaskType *mask=NULL)
| One iteration of a fast separable mean-value (i.e. box) filter. More...
void | gaussian (int width=1, int iterations=1, const MaskType *mask=NULL)
| One iteration of a fast separable Gaussian filter. More...
void | median (int width=1, int iterations=1, const MaskType *mask=NULL)
| One iteration of a median-value filter. More...
void | offset (ValueType offset, const MaskType *mask=NULL)
void | operator() (const RangeType &range) const
| Used internally by tbb::parallel_for() More...

## Detailed Description

### template<typename GridT, typename MaskT = typename GridT::template ValueConverter<float>::Type, typename InterruptT = util::NullInterrupter>
class openvdb::v3_1_0::tools::Filter< GridT, MaskT, InterruptT >

Volume filtering (e.g., diffusion) with optional alpha masking.

Note
  Only the values in the grid are changed, not its topology!

## Member Typedef Documentation

typedef MaskType::ValueType AlphaType

typedef LeafManagerType::BufferType BufferType

typedef GridT GridType

typedef tree::LeafManager<TreeType> LeafManagerType

typedef TreeType::LeafNodeType LeafType

typedef MaskT MaskType

typedef LeafManagerType::LeafRange RangeType

typedef GridType::TreeType TreeType

typedef GridType::ValueType ValueType

## Constructor & Destructor Documentation

Filter | ( | GridT & | grid,
|  | InterruptT * | interrupt = `NULL`
| ) |  |
| inline

Constructor

Parameters

  grid | Grid to be filtered.
  interrupt | Optional interrupter.

Filter | ( | const Filter< GridT, MaskT, InterruptT > & | other | ) |
| inline

Shallow copy constructor called by tbb::parallel_for() threads during filtering.

Parameters

  other | The other Filter from which to copy.

## Member Function Documentation

BOOST_STATIC_ASSERT | ( | boost::is_floating_point< AlphaType >::value |  | ) |

void gaussian | ( | int | width = `1`,
|  | int | iterations = `1`,
|  | const MaskType * | mask = `NULL`
| ) |  |
| inline

One iteration of a fast separable Gaussian filter.

Note
  This is approximated as 4 iterations of a separable mean filter which typically leads an approximation that's better than 95%!

Parameters

  width | The width of the mean-value filter is 2*width+1 voxels.
  iterations | Number of times the mean-value filter is applied.
  mask | Optional alpha mask.

int getGrainSize | ( |  | ) | const
| inline

Returns
  the grain-size used for multi-threading

void invertMask | ( | bool | invert = `true` | ) |
| inline

Invert the optional mask, i.e. min->max in the original mask maps to 1->0 in the inverted alpha mask.

bool isMaskInverted | ( |  | ) | const
| inline

Return true if the mask is inverted, i.e. min->max in the original mask maps to 1->0 in the inverted alpha mask.

AlphaType maxMask | ( |  | ) | const
| inline

Return the maximum value of the mask to be used for the derivation of a smooth alpha value.

void mean | ( | int | width = `1`,
|  | int | iterations = `1`,
|  | const MaskType * | mask = `NULL`
| ) |  |
| inline

One iteration of a fast separable mean-value (i.e. box) filter.

Parameters

  width | The width of the mean-value filter is 2*width+1 voxels.
  iterations | Number of times the mean-value filter is applied.
  mask | Optional alpha mask.

void median | ( | int | width = `1`,
|  | int | iterations = `1`,
|  | const MaskType * | mask = `NULL`
| ) |  |
| inline

One iteration of a median-value filter.

Note
  This filter is not separable and is hence relatively slow!

Parameters

  width | The width of the mean-value filter is 2*width+1 voxels.
  iterations | Number of times the mean-value filter is applied.
  mask | Optional alpha mask.

AlphaType minMask | ( |  | ) | const
| inline

Return the minimum value of the mask to be used for the derivation of a smooth alpha value.

void offset | ( | ValueType | offset,
|  | const MaskType * | mask = `NULL`
| ) |  |
| inline

Offsets (i.e. adds) a constant value to all active voxels.

Parameters

  offset | Offset in the same units as the grid.
  mask | Optional alpha mask.

void operator() | ( | const RangeType & | range | ) | const
| inline

Used internally by tbb::parallel_for()

Parameters

  range | Range of LeafNodes over which to multi-thread.

Warning
  Never call this method directly!

void setGrainSize | ( | int | grainsize | ) |
| inline

Set the grain-size used for multi-threading.

Note
  A grain size of 0 or less disables multi-threading!

void setMaskRange | ( | AlphaType | min,
|  | AlphaType | max
| ) |  |
| inline

Define the range for the (optional) scalar mask.

Parameters

  min | Minimum value of the range.
  max | Maximum value of the range.

Mask values outside the range are clamped to zero or one, and values inside the range map smoothly to 0->1 (unless the mask is inverted).

Exceptions

  ValueError | if min is not smaller than max.

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

- Filter.h