OpenVDB  12.0.0
Public Types | Public Member Functions | Static Public Member Functions | List of all members
CheckLevelSet< GridType > Class Template Reference

Class that performs various types of checks on narrow-band level sets. More...

#include <openvdb/tools/Diagnostics.h>

Public Types

using ValueType = typename GridType::ValueType
 
using MaskType = typename GridType::template ValueConverter< bool >::Type
 

Public Member Functions

 CheckLevelSet (const GridType &grid)
 
Index64 valueCount () const
 Return the number of values (i.e. background, tiles or voxels) that have failed one or more checks. More...
 
Index64 failureCount () const
 Return total number of failed checks. More...
 
const GridType & grid () const
 Return a const reference to the grid. More...
 
void clear ()
 Clear the mask and error counter. More...
 
std::string checkClassType () const
 Return message if the grid's class is a level set. More...
 
std::string checkTransform () const
 Return a nonempty message if the grid's transform does not have uniform scaling. More...
 
std::string checkBackground (Real halfWidth=LEVEL_SET_HALF_WIDTH) const
 Return a nonempty message if the background value is larger than or equal to the halfWidth*voxelSize. More...
 
std::string checkTiles () const
 Return a nonempty message if the grid has no active tile values. More...
 
std::string checkFinite (bool updateMask=false)
 Return a nonempty message if any of the values are not finite. i.e. NaN or inf. More...
 
std::string checkRange (bool updateMask=false)
 Return a nonempty message if the active voxel values are out-of-range. More...
 
std::string checkInactiveValues (bool updateMask=false)
 Return a nonempty message if the the inactive values do not have a magnitude equal to the background value. More...
 
std::string checkEikonal (bool updateMask=false, ValueType minV=0.5, ValueType maxV=1.5)
 Return a nonempty message if the norm of the gradient of the active voxels is out of the range minV to maxV. More...
 
std::string check (size_t n=9, bool updateMask=false)
 Return a nonempty message if an error or issue is detected. Only runs tests with a number lower than or equal to n, where: More...
 
MaskType::ConstPtr mask () const
 Return a boolean mask of all the values (i.e. tiles and/or voxels) that have failed one or more checks. More...
 
MaskType::Ptr mask ()
 Return a boolean mask of all the values (i.e. tiles and/or voxels) that have failed one or more checks. More...
 

Static Public Member Functions

static std::string checkValueType ()
 Return a nonempty message if the grid's value type is a floating point. More...
 

Detailed Description

template<class GridType>
class openvdb::v12_0::tools::CheckLevelSet< GridType >

Class that performs various types of checks on narrow-band level sets.

Note
The most common usage is to simply call CheckLevelSet::check()

Member Typedef Documentation

using MaskType = typename GridType::template ValueConverter<bool>::Type
using ValueType = typename GridType::ValueType

Constructor & Destructor Documentation

CheckLevelSet ( const GridType &  grid)
inline

Member Function Documentation

std::string check ( size_t  n = 9,
bool  updateMask = false 
)
inline

Return a nonempty message if an error or issue is detected. Only runs tests with a number lower than or equal to n, where:

Fast checks 1: value type is floating point 2: has level set class type 3: has uniform scale 4: background value is positive and n*dx

Slower checks 5: no active tiles 6: all the values are finite, i.e not NaN or infinite 7: active values in range between +-background 8: abs of inactive values = background, i.e. assuming a symmetric narrow band!

Relatively slow check (however multi-threaded) 9: norm of gradient at zero-crossings is one, i.e. satisfied the Eikonal equation.

std::string checkBackground ( Real  halfWidth = LEVEL_SET_HALF_WIDTH) const
inline

Return a nonempty message if the background value is larger than or equal to the halfWidth*voxelSize.

Note
Small run-time overhead
std::string checkClassType ( ) const
inline

Return message if the grid's class is a level set.

Note
Small run-time overhead
std::string checkEikonal ( bool  updateMask = false,
ValueType  minV = 0.5,
ValueType  maxV = 1.5 
)
inline

Return a nonempty message if the norm of the gradient of the active voxels is out of the range minV to maxV.

Note
Significant run-time overhead
std::string checkFinite ( bool  updateMask = false)
inline

Return a nonempty message if any of the values are not finite. i.e. NaN or inf.

Note
Medium run-time overhead
std::string checkInactiveValues ( bool  updateMask = false)
inline

Return a nonempty message if the the inactive values do not have a magnitude equal to the background value.

Note
Medium run-time overhead
std::string checkRange ( bool  updateMask = false)
inline

Return a nonempty message if the active voxel values are out-of-range.

Note
Medium run-time overhead
std::string checkTiles ( ) const
inline

Return a nonempty message if the grid has no active tile values.

Note
Medium run-time overhead
std::string checkTransform ( ) const
inline

Return a nonempty message if the grid's transform does not have uniform scaling.

Note
Small run-time overhead
static std::string checkValueType ( )
inlinestatic

Return a nonempty message if the grid's value type is a floating point.

Note
No run-time overhead
void clear ( )
inline

Clear the mask and error counter.

Index64 failureCount ( ) const
inline

Return total number of failed checks.

Note
If only one check was performed and the mask was updated failureCount equals valueCount.
const GridType& grid ( ) const
inline

Return a const reference to the grid.

MaskType::ConstPtr mask ( ) const
inline

Return a boolean mask of all the values (i.e. tiles and/or voxels) that have failed one or more checks.

MaskType::Ptr mask ( )
inline

Return a boolean mask of all the values (i.e. tiles and/or voxels) that have failed one or more checks.

Index64 valueCount ( ) const
inline

Return the number of values (i.e. background, tiles or voxels) that have failed one or more checks.