OpenVDB  3.0.0
Classes | Public Types | Public Member Functions | List of all members
LevelSetTracker< GridT, InterruptT > Class Template Reference

Performs multi-threaded interface tracking of narrow band level sets. More...

#include <LevelSetTracker.h>

Inherited by LevelSetFilter< GridT, MaskT, InterruptT >.

Public Types

typedef GridT GridType
 
typedef GridT::TreeType TreeType
 
typedef TreeType::LeafNodeType LeafType
 
typedef TreeType::ValueType ValueType
 
typedef tree::LeafManager< TreeTypeLeafManagerType
 
typedef LeafManagerType::RangeType RangeType
 
typedef LeafManagerType::LeafRange LeafRange
 
typedef LeafManagerType::BufferType BufferType
 
typedef TreeType::template ValueConverter< bool >::Type BoolMaskType
 

Public Member Functions

 BOOST_STATIC_ASSERT (boost::is_floating_point< ValueType >::value)
 
 LevelSetTracker (GridT &grid, InterruptT *interrupt=NULL)
 Main constructor. More...
 
 LevelSetTracker (const LevelSetTracker &other)
 Shallow copy constructor called by tbb::parallel_for() threads during filtering. 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 ()
 Remove voxels that are outside the narrow band. (substep of track) More...
 
void dilate (int iterations=1)
 Fast but approximate dilation of the narrow band. More...
 
void erode (int iterations=1)
 Erodes the width of the narrow-band and update the background values. More...
 
math::BiasedGradientScheme getSpatialScheme () const
 
void setSpatialScheme (math::BiasedGradientScheme scheme)
 Set the spatial finite difference scheme. More...
 
math::TemporalIntegrationScheme getTemporalScheme () const
 
void setTemporalScheme (math::TemporalIntegrationScheme scheme)
 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...
 
ValueType voxelSize () const
 
void startInterrupter (const char *msg)
 
void endInterrupter ()
 
bool checkInterrupter ()
 
const GridTypegrid () const
 
LeafManagerTypeleafs ()
 
const LeafManagerTypeleafs () const
 
template<typename MaskT >
void normalize (const MaskT *mask)
 

Detailed Description

template<typename GridT, typename InterruptT = util::NullInterrupter>
class openvdb::v3_0_0::tools::LevelSetTracker< GridT, InterruptT >

Performs multi-threaded interface tracking of narrow band level sets.

Member Typedef Documentation

typedef TreeType::template ValueConverter<bool>::Type BoolMaskType
typedef GridT GridType
typedef TreeType::LeafNodeType LeafType
typedef GridT::TreeType TreeType
typedef TreeType::ValueType ValueType

Constructor & Destructor Documentation

LevelSetTracker ( GridT &  grid,
InterruptT *  interrupt = NULL 
)

Main constructor.

Exceptions
RuntimeErrorif the grid is not a level set
LevelSetTracker ( const LevelSetTracker< GridT, InterruptT > &  other)

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

virtual ~LevelSetTracker ( )
inlinevirtual

Member Function Documentation

BOOST_STATIC_ASSERT ( boost::is_floating_point< ValueType >::value  )
bool checkInterrupter ( )
inline
Returns
false if the process was interrupted
void dilate ( int  iterations = 1)
inline

Fast but approximate dilation of the narrow band.

Note
This method works fine with low-order temporal and spatial schemes.
void endInterrupter ( )
inline
void erode ( int  iterations = 1)
inline

Erodes the width of the narrow-band and update the background values.

Exceptions
ValueErrorif iterations is larger then the current half-width.
int getGrainSize ( ) const
inline
Returns
the grain-size used for multi-threading
int getNormCount ( ) const
inline
Returns
The number of normalizations performed per track or normalize call.
math::BiasedGradientScheme getSpatialScheme ( ) const
inline
Returns
the spatial finite difference scheme
math::TemporalIntegrationScheme getTemporalScheme ( ) const
inline
Returns
the temporal integration scheme
const GridType& grid ( ) const
inline
LeafManagerType& leafs ( )
inline
const LeafManagerType& leafs ( ) const
inline
void normalize ( const MaskType *  mask)

Iterative normalization, i.e. solving the Eikonal equation.

Note
The mask it optional and by default it is ignored.
void normalize ( )
inline

Iterative normalization, i.e. solving the Eikonal equation.

void normalize ( const MaskT *  mask)
inline
void prune ( )
inline

Remove voxels that are outside the narrow band. (substep of track)

void setGrainSize ( int  grainsize)
inline

Set the grain-size used for multi-threading.

Note
A grainsize of 0 or less disables multi-threading!
void setNormCount ( int  n)
inline

Set the number of normalizations performed per track or normalize call.

void setSpatialScheme ( math::BiasedGradientScheme  scheme)
inline

Set the spatial finite difference scheme.

void setTemporalScheme ( math::TemporalIntegrationScheme  scheme)
inline

Set the spatial finite difference scheme.

void startInterrupter ( const char *  msg)
inline
void track ( )
inline

Track the level set interface, i.e. rebuild and normalize the narrow band of the level set.

ValueType voxelSize ( ) const
inline

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