OpenVDB 12.0.0
 
Loading...
Searching...
No Matches
CheckEikonal< GridT, TreeIterT, StencilT > Struct Template Reference

Checks the norm of the gradient at zero-crossing voxels against a range. More...

#include <openvdb/tools/Diagnostics.h>

Public Types

using ValueType = typename GridT::ValueType
 
using TileIterT = TreeIterT
 
using VoxelIterT
 

Public Member Functions

 CheckEikonal (const GridT &grid, const ValueType &_min, const ValueType &_max)
 Constructor taking a grid and a range to be tested against.
 
 CheckEikonal (const CheckEikonal &other)
 
bool operator() (const ValueType &v) const
 Return true if the value is smaller than min or larger than max.
 
bool operator() (const TreeIterT &) const
 Return true if zero is outside the range.
 
bool operator() (const VoxelIterT &iter) const
 Return true if the norm of the gradient at a zero-crossing voxel location of the iterator is out of range.
 
std::string str () const
 Return a string describing a failed check.
 

Public Attributes

StencilT stencil
 
const ValueType minVal
 
const ValueType maxVal
 

Detailed Description

template<typename GridT, typename TreeIterT = typename GridT::ValueOnCIter, typename StencilT = math::WenoStencil<GridT>>
struct openvdb::v12_0::tools::CheckEikonal< GridT, TreeIterT, StencilT >

Checks the norm of the gradient at zero-crossing voxels against a range.

CheckEikonal differs from CheckNormGrad in that it only checks the norm of the gradient at voxel locations where the FD-stencil crosses the zero isosurface!

Member Typedef Documentation

◆ TileIterT

template<typename GridT, typename TreeIterT = typename GridT::ValueOnCIter, typename StencilT = math::WenoStencil<GridT>>
using TileIterT = TreeIterT

◆ ValueType

template<typename GridT, typename TreeIterT = typename GridT::ValueOnCIter, typename StencilT = math::WenoStencil<GridT>>
using ValueType = typename GridT::ValueType

◆ VoxelIterT

template<typename GridT, typename TreeIterT = typename GridT::ValueOnCIter, typename StencilT = math::WenoStencil<GridT>>
using VoxelIterT
Initial value:
typename tree::IterTraits<typename TreeIterT::NodeT,
typename TreeIterT::ValueIterT> ::template NodeConverter<
typename GridT::TreeType::LeafNodeType>::Type
Definition TreeIterator.h:61

Constructor & Destructor Documentation

◆ CheckEikonal() [1/2]

template<typename GridT, typename TreeIterT = typename GridT::ValueOnCIter, typename StencilT = math::WenoStencil<GridT>>
CheckEikonal ( const GridT & grid,
const ValueType & _min,
const ValueType & _max )
inline

Constructor taking a grid and a range to be tested against.

◆ CheckEikonal() [2/2]

template<typename GridT, typename TreeIterT = typename GridT::ValueOnCIter, typename StencilT = math::WenoStencil<GridT>>
CheckEikonal ( const CheckEikonal< GridT, TreeIterT, StencilT > & other)
inline

Member Function Documentation

◆ operator()() [1/3]

template<typename GridT, typename TreeIterT = typename GridT::ValueOnCIter, typename StencilT = math::WenoStencil<GridT>>
bool operator() ( const TreeIterT & ) const
inline

Return true if zero is outside the range.

Note
We assume that the norm of the gradient of a tile is always zero.

◆ operator()() [2/3]

template<typename GridT, typename TreeIterT = typename GridT::ValueOnCIter, typename StencilT = math::WenoStencil<GridT>>
bool operator() ( const ValueType & v) const
inline

Return true if the value is smaller than min or larger than max.

◆ operator()() [3/3]

template<typename GridT, typename TreeIterT = typename GridT::ValueOnCIter, typename StencilT = math::WenoStencil<GridT>>
bool operator() ( const VoxelIterT & iter) const
inline

Return true if the norm of the gradient at a zero-crossing voxel location of the iterator is out of range.

◆ str()

template<typename GridT, typename TreeIterT = typename GridT::ValueOnCIter, typename StencilT = math::WenoStencil<GridT>>
std::string str ( ) const
inline

Return a string describing a failed check.

Member Data Documentation

◆ maxVal

template<typename GridT, typename TreeIterT = typename GridT::ValueOnCIter, typename StencilT = math::WenoStencil<GridT>>
const ValueType maxVal

◆ minVal

template<typename GridT, typename TreeIterT = typename GridT::ValueOnCIter, typename StencilT = math::WenoStencil<GridT>>
const ValueType minVal

◆ stencil

template<typename GridT, typename TreeIterT = typename GridT::ValueOnCIter, typename StencilT = math::WenoStencil<GridT>>
StencilT stencil
mutable