HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
nanovdb::CurvatureStencil< GridT, RealT > Class Template Reference

#include <Stencils.h>

+ Inheritance diagram for nanovdb::CurvatureStencil< GridT, RealT >:

Public Types

using GridType = GridT
 
using TreeType = typename GridT::TreeType
 
using ValueType = typename GridT::ValueType
 
- Public Types inherited from nanovdb::BaseStencil< CurvatureStencil< GridT >, 19, GridT >
using ValueType = typename GridT::ValueType
 
using GridType = GridT
 
using TreeType = typename GridT::TreeType
 
using AccessorType = typename GridT::AccessorType
 

Public Member Functions

__hostdev__ CurvatureStencil (const GridType &grid)
 
__hostdev__ CurvatureStencil (const GridType &grid, double dx)
 
__hostdev__ ValueType meanCurvature () const
 Return the mean curvature at the previously buffered location. More...
 
__hostdev__ ValueType gaussianCurvature () const
 Return the Gaussian curvature at the previously buffered location. More...
 
__hostdev__ void curvatures (ValueType &mean, ValueType &gauss) const
 Return both the mean and the Gaussian curvature at the previously buffered location. More...
 
__hostdev__ ValueType meanCurvatureNormGrad () const
 
__hostdev__ ValueType gaussianCurvatureNormGrad () const
 
__hostdev__ void curvaturesNormGrad (ValueType &mean, ValueType &gauss) const
 Return both the mean and the Gaussian curvature at the previously buffered location. More...
 
__hostdev__ void principalCurvatures (ValueType &min, ValueType &max) const
 Computes the minimum and maximum principal curvature at the previously buffered location. More...
 
__hostdev__ ValueType laplacian () const
 
__hostdev__ Vec3< ValueTypegradient () const
 
template<int i, int j, int k>
__hostdev__ unsigned int pos () const
 Return linear offset for the specified stencil point relative to its center. More...
 
- Public Member Functions inherited from nanovdb::BaseStencil< CurvatureStencil< GridT >, 19, GridT >
__hostdev__ void moveTo (const Coord &ijk)
 Initialize the stencil buffer with the values of voxel (i, j, k) and its neighbors. More...
 
__hostdev__ void moveTo (const Coord &ijk, const ValueType &centerValue)
 Initialize the stencil buffer with the values of voxel (i, j, k) and its neighbors. The method also takes a value of the center element of the stencil, assuming it is already known. More...
 
__hostdev__ void moveTo (const IterType &iter)
 Initialize the stencil buffer with the values of voxel (x, y, z) and its neighbors. More...
 
__hostdev__ void moveTo (const Vec3< RealType > &xyz)
 Initialize the stencil buffer with the values of voxel (x, y, z) and its neighbors. More...
 
__hostdev__ const ValueTypegetValue (unsigned int pos=0) const
 Return the value from the stencil buffer with linear offset pos. More...
 
__hostdev__ const ValueTypegetValue () const
 Return the value at the specified location relative to the center of the stencil. More...
 
__hostdev__ void setValue (const ValueType &value)
 Set the value at the specified location relative to the center of the stencil. More...
 
__hostdev__ ValueType mean () const
 Return the mean value of the current stencil. More...
 
__hostdev__ ValueType min () const
 Return the smallest value in the stencil buffer. More...
 
__hostdev__ ValueType max () const
 Return the largest value in the stencil buffer. More...
 
__hostdev__ const CoordgetCenterCoord () const
 Return the coordinates of the center point of the stencil. More...
 
__hostdev__ const ValueTypegetCenterValue () const
 Return the value at the center of the stencil. More...
 
__hostdev__ bool intersects (const ValueType &isoValue=ValueType(0)) const
 Return true if the center of the stencil intersects the iso-contour specified by the isoValue. More...
 
__hostdev__ Mask intersectionMask (ValueType isoValue=ValueType(0)) const
 Return true a bit-mask where the 6 lower bits indicates if the center of the stencil intersects the iso-contour specified by the isoValue. More...
 
__hostdev__ const GridTypegrid () const
 Return a const reference to the grid from which this stencil was constructed. More...
 
__hostdev__ const AccessorTypeaccessor () const
 Return a const reference to the ValueAccessor associated with this Stencil. More...
 

Static Public Attributes

static constexpr int SIZE = 19
 

Friends

template<typename , int , typename >
class BaseStencil
 

Additional Inherited Members

- Static Public Member Functions inherited from nanovdb::BaseStencil< CurvatureStencil< GridT >, 19, GridT >
static __hostdev__ int size ()
 Return the size of the stencil buffer. More...
 
- Protected Member Functions inherited from nanovdb::BaseStencil< CurvatureStencil< GridT >, 19, GridT >
__hostdev__ BaseStencil (const GridType &grid)
 
- Protected Attributes inherited from nanovdb::BaseStencil< CurvatureStencil< GridT >, 19, GridT >
const GridTypemGrid
 
AccessorType mAcc
 
ValueType mValues [SIZE]
 
Coord mCenter
 

Detailed Description

template<typename GridT, typename RealT = typename GridT::ValueType>
class nanovdb::CurvatureStencil< GridT, RealT >

Definition at line 779 of file Stencils.h.

Member Typedef Documentation

template<typename GridT , typename RealT = typename GridT::ValueType>
using nanovdb::CurvatureStencil< GridT, RealT >::GridType = GridT

Definition at line 784 of file Stencils.h.

template<typename GridT , typename RealT = typename GridT::ValueType>
using nanovdb::CurvatureStencil< GridT, RealT >::TreeType = typename GridT::TreeType

Definition at line 785 of file Stencils.h.

template<typename GridT , typename RealT = typename GridT::ValueType>
using nanovdb::CurvatureStencil< GridT, RealT >::ValueType = typename GridT::ValueType

Definition at line 786 of file Stencils.h.

Constructor & Destructor Documentation

template<typename GridT , typename RealT = typename GridT::ValueType>
__hostdev__ nanovdb::CurvatureStencil< GridT, RealT >::CurvatureStencil ( const GridType grid)
inline

Definition at line 790 of file Stencils.h.

template<typename GridT , typename RealT = typename GridT::ValueType>
__hostdev__ nanovdb::CurvatureStencil< GridT, RealT >::CurvatureStencil ( const GridType grid,
double  dx 
)
inline

Definition at line 797 of file Stencils.h.

Member Function Documentation

template<typename GridT , typename RealT = typename GridT::ValueType>
__hostdev__ void nanovdb::CurvatureStencil< GridT, RealT >::curvatures ( ValueType mean,
ValueType gauss 
) const
inline

Return both the mean and the Gaussian curvature at the previously buffered location.

Note
This method should not be called until the stencil buffer has been populated via a call to moveTo(ijk).

Definition at line 831 of file Stencils.h.

template<typename GridT , typename RealT = typename GridT::ValueType>
__hostdev__ void nanovdb::CurvatureStencil< GridT, RealT >::curvaturesNormGrad ( ValueType mean,
ValueType gauss 
) const
inline

Return both the mean and the Gaussian curvature at the previously buffered location.

Note
This method should not be called until the stencil buffer has been populated via a call to moveTo(ijk).

Definition at line 872 of file Stencils.h.

template<typename GridT , typename RealT = typename GridT::ValueType>
__hostdev__ ValueType nanovdb::CurvatureStencil< GridT, RealT >::gaussianCurvature ( ) const
inline

Return the Gaussian curvature at the previously buffered location.

Note
This method should not be called until the stencil buffer has been populated via a call to moveTo(ijk).

Definition at line 819 of file Stencils.h.

template<typename GridT , typename RealT = typename GridT::ValueType>
__hostdev__ ValueType nanovdb::CurvatureStencil< GridT, RealT >::gaussianCurvatureNormGrad ( ) const
inline

Return the mean Gaussian multiplied by the norm of the central-difference gradient.

Note
This method should not be called until the stencil buffer has been populated via a call to moveTo(ijk).

Definition at line 860 of file Stencils.h.

template<typename GridT , typename RealT = typename GridT::ValueType>
__hostdev__ Vec3<ValueType> nanovdb::CurvatureStencil< GridT, RealT >::gradient ( ) const
inline

Return the gradient computed at the previously buffered location by second-order central differencing.

Note
This method should not be called until the stencil buffer has been populated via a call to moveTo(ijk).

Definition at line 918 of file Stencils.h.

template<typename GridT , typename RealT = typename GridT::ValueType>
__hostdev__ ValueType nanovdb::CurvatureStencil< GridT, RealT >::laplacian ( ) const
inline

Return the Laplacian computed at the previously buffered location by second-order central differencing.

Note
This method should not be called until the stencil buffer has been populated via a call to moveTo(ijk).

Definition at line 905 of file Stencils.h.

template<typename GridT , typename RealT = typename GridT::ValueType>
__hostdev__ ValueType nanovdb::CurvatureStencil< GridT, RealT >::meanCurvature ( ) const
inline

Return the mean curvature at the previously buffered location.

Note
This method should not be called until the stencil buffer has been populated via a call to moveTo(ijk).

Definition at line 808 of file Stencils.h.

template<typename GridT , typename RealT = typename GridT::ValueType>
__hostdev__ ValueType nanovdb::CurvatureStencil< GridT, RealT >::meanCurvatureNormGrad ( ) const
inline

Return the mean curvature multiplied by the norm of the central-difference gradient. This method is very useful for mean-curvature flow of level sets!

Note
This method should not be called until the stencil buffer has been populated via a call to moveTo(ijk).

Definition at line 848 of file Stencils.h.

template<typename GridT , typename RealT = typename GridT::ValueType>
template<int i, int j, int k>
__hostdev__ unsigned int nanovdb::CurvatureStencil< GridT, RealT >::pos ( ) const
inline

Return linear offset for the specified stencil point relative to its center.

Definition at line 928 of file Stencils.h.

template<typename GridT , typename RealT = typename GridT::ValueType>
__hostdev__ void nanovdb::CurvatureStencil< GridT, RealT >::principalCurvatures ( ValueType min,
ValueType max 
) const
inline

Computes the minimum and maximum principal curvature at the previously buffered location.

Note
This method should not be called until the stencil buffer has been populated via a call to moveTo(ijk).

Definition at line 888 of file Stencils.h.

Friends And Related Function Documentation

template<typename GridT , typename RealT = typename GridT::ValueType>
template<typename , int , typename >
friend class BaseStencil
friend

Definition at line 1020 of file Stencils.h.

Member Data Documentation

template<typename GridT , typename RealT = typename GridT::ValueType>
constexpr int nanovdb::CurvatureStencil< GridT, RealT >::SIZE = 19
static

Definition at line 788 of file Stencils.h.


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