Volume filtering (e.g., diffusion) with optional alpha masking.
More...
#include <Filter.h>
|
| | Filter (GridT &grid, InterruptT *interrupt=nullptr) |
| |
| | 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=nullptr) |
| | One iteration of a fast separable mean-value (i.e. box) filter. More...
|
| |
| void | gaussian (int width=1, int iterations=1, const MaskType *mask=nullptr) |
| | One iteration of a fast separable Gaussian filter. More...
|
| |
| void | median (int width=1, int iterations=1, const MaskType *mask=nullptr) |
| | One iteration of a median-value filter. More...
|
| |
| void | offset (ValueType offset, const MaskType *mask=nullptr) |
| |
| void | operator() (const RangeType &range) const |
| | Used internally by tbb::parallel_for() More...
|
| |
template<typename GridT, typename MaskT = typename GridT::template ValueConverter<float>::Type, typename InterruptT = util::NullInterrupter>
class openvdb::v6_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!
◆ AlphaType
| using AlphaType = typename MaskType::ValueType |
◆ BufferType
| using BufferType = typename LeafManagerType::BufferType |
◆ GridType
◆ LeafManagerType
◆ LeafType
| using LeafType = typename TreeType::LeafNodeType |
◆ MaskType
◆ RangeType
| using RangeType = typename LeafManagerType::LeafRange |
◆ TreeType
| using TreeType = typename GridType::TreeType |
◆ ValueType
| using ValueType = typename GridType::ValueType |
◆ Filter() [1/2]
| Filter |
( |
GridT & |
grid, |
|
|
InterruptT * |
interrupt = nullptr |
|
) |
| |
|
inline |
Constructor
- Parameters
-
| grid | Grid to be filtered. |
| interrupt | Optional interrupter. |
◆ Filter() [2/2]
Shallow copy constructor called by tbb::parallel_for() threads during filtering.
- Parameters
-
| other | The other Filter from which to copy. |
◆ gaussian()
| void gaussian |
( |
int |
width = 1, |
|
|
int |
iterations = 1, |
|
|
const MaskType * |
mask = nullptr |
|
) |
| |
|
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. |
◆ getGrainSize()
| int getGrainSize |
( |
| ) |
const |
|
inline |
- Returns
- the grain-size used for multi-threading
◆ invertMask()
| 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.
◆ isMaskInverted()
| 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.
◆ maxMask()
Return the maximum value of the mask to be used for the derivation of a smooth alpha value.
◆ mean()
| void mean |
( |
int |
width = 1, |
|
|
int |
iterations = 1, |
|
|
const MaskType * |
mask = nullptr |
|
) |
| |
|
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. |
◆ median()
| void median |
( |
int |
width = 1, |
|
|
int |
iterations = 1, |
|
|
const MaskType * |
mask = nullptr |
|
) |
| |
|
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. |
◆ minMask()
Return the minimum value of the mask to be used for the derivation of a smooth alpha value.
◆ offset()
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. |
◆ operator()()
| 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!
◆ setGrainSize()
| void setGrainSize |
( |
int |
grainsize | ) |
|
|
inline |
Set the grain-size used for multi-threading.
- Note
- A grain size of 0 or less disables multi-threading!
◆ setMaskRange()
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
-
The documentation for this class was generated from the following file: