HDK
|
Performs multi-threaded interface tracking of narrow band level sets. More...
#include <LevelSetTracker.h>
Classes | |
struct | State |
Lightweight struct that stores the state of the LevelSetTracker. More... | |
Public Types | |
using | TrimMode = lstrack::TrimMode |
using | GridType = GridT |
using | TreeType = typename GridT::TreeType |
using | LeafType = typename TreeType::LeafNodeType |
using | ValueType = typename TreeType::ValueType |
using | LeafManagerType = typename tree::LeafManager< TreeType > |
using | LeafRange = typename LeafManagerType::LeafRange |
using | BufferType = typename LeafManagerType::BufferType |
using | MaskTreeType = typename TreeType::template ValueConverter< ValueMask >::Type |
Public Member Functions | |
LevelSetTracker (GridT &grid, InterruptT *interrupt=nullptr) | |
Main constructor. More... | |
virtual | ~LevelSetTracker () |
template<typename MaskType > | |
void | normalize (const MaskType *mask) |
Iterative normalization, i.e. solving the Eikonal equation. More... | |
void | normalize () |
Iterative normalization, i.e. solving the Eikonal equation. More... | |
void | track () |
Track the level set interface, i.e. rebuild and normalize the narrow band of the level set. More... | |
void | prune () |
Set voxels that are outside the narrow band to the background value (if trimming is enabled) and prune the grid. More... | |
void | dilate (int iterations=1) |
Fast but approximate dilation of the narrow band - one layer at a time. Normally we recommend using the resize method below which internally calls dilate (or erode) with the correct number of iterations to achieve the desired half voxel width of the narrow band (3 is recommended for most level set applications). More... | |
void | erode (int iterations=1) |
Erodes the width of the narrow-band and update the background values. More... | |
bool | resize (Index halfWidth=static_cast< Index >(LEVEL_SET_HALF_WIDTH)) |
Resize the width of the narrow band, i.e. perform dilation and renormalization or erosion as required. More... | |
ValueType | getHalfWidth () const |
Return the half width of the narrow band in floating-point voxel units. More... | |
State | getState () const |
Return the state of the tracker (see struct defined above) More... | |
void | setState (const State &s) |
Set the state of the tracker (see struct defined above) More... | |
math::BiasedGradientScheme | getSpatialScheme () const |
void | setSpatialScheme (math::BiasedGradientScheme s) |
Set the spatial finite difference scheme. More... | |
math::TemporalIntegrationScheme | getTemporalScheme () const |
void | setTemporalScheme (math::TemporalIntegrationScheme s) |
Set the spatial finite difference scheme. More... | |
int | getNormCount () const |
void | setNormCount (int n) |
Set the number of normalizations performed per track or normalize call. More... | |
int | getGrainSize () const |
void | setGrainSize (int grainsize) |
Set the grain-size used for multi-threading. More... | |
TrimMode | trimming () const |
Return the trimming mode for voxels outside the narrow band. More... | |
void | setTrimming (TrimMode mode) |
Specify whether to trim voxels outside the narrow band prior to pruning. More... | |
ValueType | voxelSize () const |
void | startInterrupter (const char *msg) |
void | endInterrupter () |
bool | checkInterrupter () |
const GridType & | grid () const |
LeafManagerType & | leafs () |
const LeafManagerType & | leafs () const |
template<typename MaskT > | |
void | normalize (const MaskT *mask) |
Performs multi-threaded interface tracking of narrow band level sets.
Definition at line 57 of file LevelSetTracker.h.
using openvdb::OPENVDB_VERSION_NAME::tools::LevelSetTracker< GridT, InterruptT >::BufferType = typename LeafManagerType::BufferType |
Definition at line 68 of file LevelSetTracker.h.
using openvdb::OPENVDB_VERSION_NAME::tools::LevelSetTracker< GridT, InterruptT >::GridType = GridT |
Definition at line 62 of file LevelSetTracker.h.
using openvdb::OPENVDB_VERSION_NAME::tools::LevelSetTracker< GridT, InterruptT >::LeafManagerType = typename tree::LeafManager<TreeType> |
Definition at line 66 of file LevelSetTracker.h.
using openvdb::OPENVDB_VERSION_NAME::tools::LevelSetTracker< GridT, InterruptT >::LeafRange = typename LeafManagerType::LeafRange |
Definition at line 67 of file LevelSetTracker.h.
using openvdb::OPENVDB_VERSION_NAME::tools::LevelSetTracker< GridT, InterruptT >::LeafType = typename TreeType::LeafNodeType |
Definition at line 64 of file LevelSetTracker.h.
using openvdb::OPENVDB_VERSION_NAME::tools::LevelSetTracker< GridT, InterruptT >::MaskTreeType = typename TreeType::template ValueConverter<ValueMask>::Type |
Definition at line 69 of file LevelSetTracker.h.
using openvdb::OPENVDB_VERSION_NAME::tools::LevelSetTracker< GridT, InterruptT >::TreeType = typename GridT::TreeType |
Definition at line 63 of file LevelSetTracker.h.
using openvdb::OPENVDB_VERSION_NAME::tools::LevelSetTracker< GridT, InterruptT >::TrimMode = lstrack::TrimMode |
Definition at line 60 of file LevelSetTracker.h.
using openvdb::OPENVDB_VERSION_NAME::tools::LevelSetTracker< GridT, InterruptT >::ValueType = typename TreeType::ValueType |
Definition at line 65 of file LevelSetTracker.h.
openvdb::OPENVDB_VERSION_NAME::tools::LevelSetTracker< GridT, InterruptT >::LevelSetTracker | ( | GridT & | grid, |
InterruptT * | interrupt = nullptr |
||
) |
Main constructor.
RuntimeError | if the grid is not a level set |
Definition at line 260 of file LevelSetTracker.h.
|
inlinevirtual |
Definition at line 89 of file LevelSetTracker.h.
|
inline |
Definition at line 385 of file LevelSetTracker.h.
void openvdb::OPENVDB_VERSION_NAME::tools::LevelSetTracker< GridT, InterruptT >::dilate | ( | int | iterations = 1 | ) |
Fast but approximate dilation of the narrow band - one layer at a time. Normally we recommend using the resize method below which internally calls dilate (or erode) with the correct number of iterations to achieve the desired half voxel width of the narrow band (3 is recommended for most level set applications).
Definition at line 320 of file LevelSetTracker.h.
|
inline |
Definition at line 377 of file LevelSetTracker.h.
void openvdb::OPENVDB_VERSION_NAME::tools::LevelSetTracker< GridT, InterruptT >::erode | ( | int | iterations = 1 | ) |
Erodes the width of the narrow-band and update the background values.
ValueError | if iterations is larger than the current half-width. |
Definition at line 342 of file LevelSetTracker.h.
|
inline |
Definition at line 164 of file LevelSetTracker.h.
|
inline |
Return the half width of the narrow band in floating-point voxel units.
Definition at line 135 of file LevelSetTracker.h.
|
inline |
Definition at line 157 of file LevelSetTracker.h.
|
inline |
Definition at line 144 of file LevelSetTracker.h.
|
inline |
Return the state of the tracker (see struct defined above)
Definition at line 138 of file LevelSetTracker.h.
|
inline |
Definition at line 150 of file LevelSetTracker.h.
|
inline |
Definition at line 187 of file LevelSetTracker.h.
|
inline |
Definition at line 189 of file LevelSetTracker.h.
|
inline |
Definition at line 191 of file LevelSetTracker.h.
void openvdb::OPENVDB_VERSION_NAME::tools::LevelSetTracker< GridT, InterruptT >::normalize | ( | const MaskType * | mask | ) |
Iterative normalization, i.e. solving the Eikonal equation.
|
inline |
Iterative normalization, i.e. solving the Eikonal equation.
Definition at line 97 of file LevelSetTracker.h.
void openvdb::OPENVDB_VERSION_NAME::tools::LevelSetTracker< GridT, InterruptT >::normalize | ( | const MaskT * | mask | ) |
Definition at line 398 of file LevelSetTracker.h.
void openvdb::OPENVDB_VERSION_NAME::tools::LevelSetTracker< GridT, InterruptT >::prune | ( | ) |
Set voxels that are outside the narrow band to the background value (if trimming is enabled) and prune the grid.
Pruning is done automatically as a step in tracking.
Definition at line 282 of file LevelSetTracker.h.
bool openvdb::OPENVDB_VERSION_NAME::tools::LevelSetTracker< GridT, InterruptT >::resize | ( | Index | halfWidth = static_cast<Index>(LEVEL_SET_HALF_WIDTH) | ) |
Resize the width of the narrow band, i.e. perform dilation and renormalization or erosion as required.
Definition at line 354 of file LevelSetTracker.h.
|
inline |
Set the grain-size used for multi-threading.
Definition at line 168 of file LevelSetTracker.h.
|
inline |
Set the number of normalizations performed per track or normalize call.
Definition at line 161 of file LevelSetTracker.h.
|
inline |
Set the spatial finite difference scheme.
Definition at line 147 of file LevelSetTracker.h.
|
inline |
Set the state of the tracker (see struct defined above)
Definition at line 141 of file LevelSetTracker.h.
|
inline |
Set the spatial finite difference scheme.
Definition at line 153 of file LevelSetTracker.h.
|
inline |
Specify whether to trim voxels outside the narrow band prior to pruning.
Definition at line 176 of file LevelSetTracker.h.
|
inline |
Definition at line 369 of file LevelSetTracker.h.
void openvdb::OPENVDB_VERSION_NAME::tools::LevelSetTracker< GridT, InterruptT >::track | ( | ) |
Track the level set interface, i.e. rebuild and normalize the narrow band of the level set.
Definition at line 305 of file LevelSetTracker.h.
|
inline |
Return the trimming mode for voxels outside the narrow band.
Trimming is enabled by default and is applied automatically prior to pruning.
Definition at line 173 of file LevelSetTracker.h.
|
inline |
Definition at line 178 of file LevelSetTracker.h.