HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
UT_VoxelProbeCube< T > Class Template Reference

#include <UT_VoxelArray.h>

Public Member Functions

 UT_VoxelProbeCube ()
 
 ~UT_VoxelProbeCube ()
 
void setConstCubeArray (const UT_VoxelArray< T > *vox)
 
void setConstPlusArray (const UT_VoxelArray< T > *vox)
 
SYS_FORCE_INLINE T getValue (int x, int y, int z) const
 
SYS_FORCE_INLINE T getValue (const UT_Vector3I &offset) const
 
template<typename S >
bool setIndexCube (UT_VoxelArrayIterator< S > &vit)
 
template<typename S >
bool setIndexCube (UT_VoxelTileIterator< S > &vit)
 
bool setIndexCube (int x, int y, int z)
 
template<typename S >
bool setIndexPlus (UT_VoxelArrayIterator< S > &vit)
 
template<typename S >
bool setIndexPlus (UT_VoxelTileIterator< S > &vit)
 
bool setIndexPlus (int x, int y, int z)
 
UT_Vector3 gradient () const
 
fpreal64 curvature (const UT_Vector3 &invvoxelsize) const
 
fpreal64 laplacian (const UT_Vector3 &invvoxelsize) const
 

Static Protected Member Functions

static void rotateLines (UT_VoxelProbe< T, true, false, false > &ym, UT_VoxelProbe< T, true, false, false > &y0, UT_VoxelProbe< T, true, false, false > &yp)
 

Protected Attributes

UT_VoxelProbe< T, true, false,
false > 
myLines [3][3]
 
bool myValid
 
int myX
 
int myY
 
int myZ
 
int myMinValidX
 Half inclusive [,) range of valid x queries for current cache. More...
 
int myMaxValidX
 

Detailed Description

template<typename T>
class UT_VoxelProbeCube< T >

Definition at line 82 of file UT_VoxelArray.h.

Constructor & Destructor Documentation

template<typename T >
UT_VoxelProbeCube< T >::UT_VoxelProbeCube ( )

VoxelProbeCube functions

Definition at line 8589 of file UT_VoxelArray.C.

template<typename T >
UT_VoxelProbeCube< T >::~UT_VoxelProbeCube ( )

Definition at line 8595 of file UT_VoxelArray.C.

Member Function Documentation

template<typename T >
fpreal64 UT_VoxelProbeCube< T >::curvature ( const UT_Vector3 invvoxelsize) const

Computes the central difference curvature using the given inverse voxelsize (ie, 1/voxelsize) at this point. Requires CubeArray.

Definition at line 8796 of file UT_VoxelArray.C.

template<typename T >
SYS_FORCE_INLINE T UT_VoxelProbeCube< T >::getValue ( int  x,
int  y,
int  z 
) const
inline

Allows you to query +/-1 in each direction. In cube update, all are valid. In plus update, only one of x y and z may be non zero.

Definition at line 2413 of file UT_VoxelArray.h.

template<typename T >
SYS_FORCE_INLINE T UT_VoxelProbeCube< T >::getValue ( const UT_Vector3I offset) const
inline

Definition at line 2424 of file UT_VoxelArray.h.

template<typename T >
UT_Vector3 UT_VoxelProbeCube< T >::gradient ( ) const
inline

Computes central difference gradient, does not scale by the step size (which is twice voxelsize) Requires PlusArray

Definition at line 2448 of file UT_VoxelArray.h.

template<typename T >
fpreal64 UT_VoxelProbeCube< T >::laplacian ( const UT_Vector3 invvoxelsize) const

Computes the laplacian, again with a given 1/voxelsize. Requires PlusArray

Definition at line 8880 of file UT_VoxelArray.C.

template<typename T >
void UT_VoxelProbeCube< T >::rotateLines ( UT_VoxelProbe< T, true, false, false > &  ym,
UT_VoxelProbe< T, true, false, false > &  y0,
UT_VoxelProbe< T, true, false, false > &  yp 
)
staticprotected

Does an rotation of our cache lines, ym becomes y0 and y0 becomes yp, so further queries with y+1 will be cache hits for 2 out of 3.

Definition at line 8908 of file UT_VoxelArray.C.

template<typename T >
void UT_VoxelProbeCube< T >::setConstCubeArray ( const UT_VoxelArray< T > *  vox)

Definition at line 8601 of file UT_VoxelArray.C.

template<typename T >
void UT_VoxelProbeCube< T >::setConstPlusArray ( const UT_VoxelArray< T > *  vox)

This coudl be 0,0, but by keeping it the full range we ensure it is legal to rotate when we do a +1

Definition at line 8621 of file UT_VoxelArray.C.

template<typename T >
template<typename S >
bool UT_VoxelProbeCube< T >::setIndexCube ( UT_VoxelArrayIterator< S > &  vit)
inline

Definition at line 2430 of file UT_VoxelArray.h.

template<typename T >
template<typename S >
bool UT_VoxelProbeCube< T >::setIndexCube ( UT_VoxelTileIterator< S > &  vit)
inline

Definition at line 2433 of file UT_VoxelArray.h.

template<typename T >
bool UT_VoxelProbeCube< T >::setIndexCube ( int  x,
int  y,
int  z 
)

Definition at line 8639 of file UT_VoxelArray.C.

template<typename T >
template<typename S >
bool UT_VoxelProbeCube< T >::setIndexPlus ( UT_VoxelArrayIterator< S > &  vit)
inline

Definition at line 2438 of file UT_VoxelArray.h.

template<typename T >
template<typename S >
bool UT_VoxelProbeCube< T >::setIndexPlus ( UT_VoxelTileIterator< S > &  vit)
inline

Definition at line 2441 of file UT_VoxelArray.h.

template<typename T >
bool UT_VoxelProbeCube< T >::setIndexPlus ( int  x,
int  y,
int  z 
)

Definition at line 8728 of file UT_VoxelArray.C.

Member Data Documentation

template<typename T >
UT_VoxelProbe<T, true, false, false> UT_VoxelProbeCube< T >::myLines[3][3]
protected

Definition at line 2469 of file UT_VoxelArray.h.

template<typename T >
int UT_VoxelProbeCube< T >::myMaxValidX
protected

Definition at line 2475 of file UT_VoxelArray.h.

template<typename T >
int UT_VoxelProbeCube< T >::myMinValidX
protected

Half inclusive [,) range of valid x queries for current cache.

Definition at line 2475 of file UT_VoxelArray.h.

template<typename T >
bool UT_VoxelProbeCube< T >::myValid
protected

Cached look up position. myValid stores if they are valid values or not

Definition at line 2472 of file UT_VoxelArray.h.

template<typename T >
int UT_VoxelProbeCube< T >::myX
protected

Definition at line 2473 of file UT_VoxelArray.h.

template<typename T >
int UT_VoxelProbeCube< T >::myY
protected

Definition at line 2473 of file UT_VoxelArray.h.

template<typename T >
int UT_VoxelProbeCube< T >::myZ
protected

Definition at line 2473 of file UT_VoxelArray.h.


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