HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GEO_VolumeSampler Class Reference

#include <GEO_VolumeSampler.h>

Public Member Functions

 GEO_VolumeSampler ()
 
 GEO_VolumeSampler (const GEO_Primitive *prim)
 
 GEO_VolumeSampler (const GEO_VolumeSampler &src)
 
 ~GEO_VolumeSampler ()
 
GEO_VolumeSampleroperator= (const GEO_VolumeSampler &src)
 
bool isBound ()
 
void bindPrim (const GEO_Primitive *prim)
 
int getVectorSize () const
 
void indexToPos (int x, int y, int z, UT_Vector3 &pos) const
 
void findexToPos (UT_Vector3 index, UT_Vector3 &pos) const
 
void indexToPos (exint x, exint y, exint z, UT_Vector3D &pos) const
 
void findexToPos (UT_Vector3D index, UT_Vector3D &pos) const
 
void posToIndex (UT_Vector3 pos, int &x, int &y, int &z) const
 Convert a 3d position into the closest index value. More...
 
void posToIndex (UT_Vector3 pos, UT_Vector3 &index) const
 
void posToIndex (UT_Vector3D pos, exint &x, exint &y, exint &z) const
 
void posToIndex (UT_Vector3D pos, UT_Vector3D &index) const
 
GEO_PrimVolumeXform getSpaceTransform () const
 
GEO_PrimVolumeXform getIndexSpaceTransform () const
 
bool isActive (const UT_Vector3 &pos)
 
bool isActiveAtIndex (int ix, int iy, int iz)
 
fpreal getValueF (const UT_Vector3 &pos)
 
fpreal getValueAtIndexF (int ix, int iy, int iz)
 
fpreal getConstantIndexRegionF (UT_BoundingBox &indexbox, bool *isconstant, bool *isactive)
 
UT_Vector3D getValueV3 (const UT_Vector3 &pos)
 
UT_Vector3D getValueAtIndexV3 (int ix, int iy, int iz)
 
template<class T >
bool getValues (const UT_BoundingBoxI &bbox, T *values, const exint size)
 

Static Public Member Functions

static GEO_VolumeSamplerVDBCachecreateVDBCache (const GEO_PrimVDB *vdb)
 

Protected Attributes

const GEO_PrimitivemyPrim
 
const GEO_PrimVolumemyVol
 
const GEO_PrimVDBmyVdb
 
UT_VoxelArrayReadHandleF myHandle
 
int myVectorSize
 
GEO_VolumeSamplerVDBCachemyVDBCache
 

Detailed Description

Definition at line 40 of file GEO_VolumeSampler.h.

Constructor & Destructor Documentation

GEO_VolumeSampler::GEO_VolumeSampler ( )
inline

Definition at line 43 of file GEO_VolumeSampler.h.

GEO_VolumeSampler::GEO_VolumeSampler ( const GEO_Primitive prim)
inline

Definition at line 48 of file GEO_VolumeSampler.h.

GEO_VolumeSampler::GEO_VolumeSampler ( const GEO_VolumeSampler src)
inline

Definition at line 54 of file GEO_VolumeSampler.h.

GEO_VolumeSampler::~GEO_VolumeSampler ( )
inline

Definition at line 59 of file GEO_VolumeSampler.h.

Member Function Documentation

void GEO_VolumeSampler::bindPrim ( const GEO_Primitive prim)
inline

Definition at line 78 of file GEO_VolumeSampler.h.

static GEO_VolumeSamplerVDBCache* GEO_VolumeSampler::createVDBCache ( const GEO_PrimVDB vdb)
static
void GEO_VolumeSampler::findexToPos ( UT_Vector3  index,
UT_Vector3 pos 
) const
inline

Definition at line 113 of file GEO_VolumeSampler.h.

void GEO_VolumeSampler::findexToPos ( UT_Vector3D  index,
UT_Vector3D pos 
) const
inline

Definition at line 127 of file GEO_VolumeSampler.h.

fpreal GEO_VolumeSampler::getConstantIndexRegionF ( UT_BoundingBox indexbox,
bool *  isconstant,
bool *  isactive 
)

Conservatively determines if a box [minvec, maxvec] in index space is constant or inactive. If there is doubt, it is reported as non-constant and active.

isconstant is true only if all voxels in the region have the same value isactive is false only if all the voxels in the region are inactive.

if isconstant is true, the returned value will the constant value.

GEO_PrimVolumeXform GEO_VolumeSampler::getIndexSpaceTransform ( ) const
inline

Definition at line 173 of file GEO_VolumeSampler.h.

GEO_PrimVolumeXform GEO_VolumeSampler::getSpaceTransform ( ) const
inline

Definition at line 165 of file GEO_VolumeSampler.h.

fpreal GEO_VolumeSampler::getValueAtIndexF ( int  ix,
int  iy,
int  iz 
)
inline

Definition at line 216 of file GEO_VolumeSampler.h.

UT_Vector3D GEO_VolumeSampler::getValueAtIndexV3 ( int  ix,
int  iy,
int  iz 
)
inline

Definition at line 246 of file GEO_VolumeSampler.h.

fpreal GEO_VolumeSampler::getValueF ( const UT_Vector3 pos)
inline

Definition at line 206 of file GEO_VolumeSampler.h.

template<class T >
bool GEO_VolumeSampler::getValues ( const UT_BoundingBoxI bbox,
T values,
const exint  size 
)
inline

Gets values in the box [bbox.minvec(), bbox.maxvec()) Values are stored in the array values of size size that has to be at least bbox.volume() The order of values is give by: i + bbox.xsize() * (j + bbox.ysize() * k)

If returns true, values in bbox are constant and only values[0] is guaranteed to be assigned.

Definition at line 262 of file GEO_VolumeSampler.h.

UT_Vector3D GEO_VolumeSampler::getValueV3 ( const UT_Vector3 pos)
inline

Definition at line 236 of file GEO_VolumeSampler.h.

int GEO_VolumeSampler::getVectorSize ( ) const
inline

Definition at line 102 of file GEO_VolumeSampler.h.

void GEO_VolumeSampler::indexToPos ( int  x,
int  y,
int  z,
UT_Vector3 pos 
) const
inline

Convert an index in the voxel array into the corresponding worldspace location

Definition at line 106 of file GEO_VolumeSampler.h.

void GEO_VolumeSampler::indexToPos ( exint  x,
exint  y,
exint  z,
UT_Vector3D pos 
) const
inline

Definition at line 120 of file GEO_VolumeSampler.h.

bool GEO_VolumeSampler::isActive ( const UT_Vector3 pos)
inline

Checks whether the given location falls within the volume's active region.

Definition at line 184 of file GEO_VolumeSampler.h.

bool GEO_VolumeSampler::isActiveAtIndex ( int  ix,
int  iy,
int  iz 
)
inline

Checks whether the given index is within the volume's active region.

Definition at line 196 of file GEO_VolumeSampler.h.

bool GEO_VolumeSampler::isBound ( )
inline

Definition at line 73 of file GEO_VolumeSampler.h.

GEO_VolumeSampler& GEO_VolumeSampler::operator= ( const GEO_VolumeSampler src)
inline

Definition at line 64 of file GEO_VolumeSampler.h.

void GEO_VolumeSampler::posToIndex ( UT_Vector3  pos,
int x,
int y,
int z 
) const
inline

Convert a 3d position into the closest index value.

Definition at line 136 of file GEO_VolumeSampler.h.

void GEO_VolumeSampler::posToIndex ( UT_Vector3  pos,
UT_Vector3 index 
) const
inline

Definition at line 143 of file GEO_VolumeSampler.h.

void GEO_VolumeSampler::posToIndex ( UT_Vector3D  pos,
exint x,
exint y,
exint z 
) const
inline

Definition at line 150 of file GEO_VolumeSampler.h.

void GEO_VolumeSampler::posToIndex ( UT_Vector3D  pos,
UT_Vector3D index 
) const
inline

Definition at line 157 of file GEO_VolumeSampler.h.

Member Data Documentation

UT_VoxelArrayReadHandleF GEO_VolumeSampler::myHandle
protected

Definition at line 327 of file GEO_VolumeSampler.h.

const GEO_Primitive* GEO_VolumeSampler::myPrim
protected

Definition at line 324 of file GEO_VolumeSampler.h.

const GEO_PrimVDB* GEO_VolumeSampler::myVdb
protected

Definition at line 326 of file GEO_VolumeSampler.h.

GEO_VolumeSamplerVDBCache* GEO_VolumeSampler::myVDBCache
protected

Definition at line 329 of file GEO_VolumeSampler.h.

int GEO_VolumeSampler::myVectorSize
protected

Definition at line 328 of file GEO_VolumeSampler.h.

const GEO_PrimVolume* GEO_VolumeSampler::myVol
protected

Definition at line 325 of file GEO_VolumeSampler.h.


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