OpenVDB
2.1.0
|
Hyperbolic advection of narrow-band level sets in an external velocity field. More...
#include <LevelSetMorph.h>
Public Types | |
typedef GridT | GridType |
typedef GridT::TreeType | TreeType |
typedef LevelSetTracker< GridT, InterruptT > | TrackerT |
typedef TrackerT::LeafRange | LeafRange |
typedef TrackerT::LeafType | LeafType |
typedef TrackerT::BufferType | BufferType |
typedef TrackerT::ValueType | ScalarType |
Public Member Functions | |
LevelSetMorphing (GridT &sourceGrid, const GridT &targetGrid, InterruptT *interrupt=NULL) | |
Main constructor. More... | |
virtual | ~LevelSetMorphing () |
void | setTarget (const GridT &targetGrid) |
Redefine the target level set. More... | |
math::BiasedGradientScheme | getSpatialScheme () const |
Return the spatial finite-difference scheme. More... | |
void | setSpatialScheme (math::BiasedGradientScheme scheme) |
Set the spatial finite-difference scheme. More... | |
math::TemporalIntegrationScheme | getTemporalScheme () const |
Return the temporal integration scheme. More... | |
void | setTemporalScheme (math::TemporalIntegrationScheme scheme) |
Set the temporal integration scheme. More... | |
math::BiasedGradientScheme | getTrackerSpatialScheme () const |
Return the spatial finite-difference scheme. More... | |
void | setTrackerSpatialScheme (math::BiasedGradientScheme scheme) |
Set the spatial finite-difference scheme. More... | |
math::TemporalIntegrationScheme | getTrackerTemporalScheme () const |
Return the temporal integration scheme. More... | |
void | setTrackerTemporalScheme (math::TemporalIntegrationScheme scheme) |
Set the temporal integration scheme. More... | |
int | getNormCount () const |
Return the number of normalizations performed per track or normalize call. More... | |
void | setNormCount (int n) |
Set the number of normalizations performed per track or normalize call. More... | |
int | getGrainSize () const |
Return the grain size used for multithreading. More... | |
void | setGrainSize (int grainsize) |
Set the grain size used for multithreading. More... | |
size_t | advect (ScalarType time0, ScalarType time1) |
Advect the level set from its current time, time0, to its final time, time1. If time0 > time1, perform backward advection. More... | |
Hyperbolic advection of narrow-band level sets in an external velocity field.
Below are two simple wrapper classes for advection velocity fields. DiscreteField wraps a velocity grid, and EnrightField is mostly intended for debugging (it's an analytical, divergence-free and periodic field). Both classes implement the interface required by the LevelSetMorphing class defined below, and any class with the same API should work with LevelSetMorphing.
The InterruptType
template argument below refers to any class with the following interface:
typedef TrackerT::BufferType BufferType |
typedef GridT GridType |
typedef TrackerT::LeafRange LeafRange |
typedef TrackerT::LeafType LeafType |
typedef TrackerT::ValueType ScalarType |
typedef LevelSetTracker<GridT, InterruptT> TrackerT |
typedef GridT::TreeType TreeType |
|
inline |
Main constructor.
|
inlinevirtual |
|
inline |
Advect the level set from its current time, time0, to its final time, time1. If time0 > time1, perform backward advection.
|
inline |
Return the grain size used for multithreading.
|
inline |
Return the number of normalizations performed per track or normalize call.
|
inline |
Return the spatial finite-difference scheme.
|
inline |
Return the temporal integration scheme.
|
inline |
Return the spatial finite-difference scheme.
|
inline |
Return the temporal integration scheme.
|
inline |
Set the grain size used for multithreading.
|
inline |
Set the number of normalizations performed per track or normalize call.
|
inline |
Set the spatial finite-difference scheme.
|
inline |
Redefine the target level set.
|
inline |
Set the temporal integration scheme.
|
inline |
Set the spatial finite-difference scheme.
|
inline |
Set the temporal integration scheme.