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 getConstantIndexRegionV3 (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 41 of file GEO_VolumeSampler.h.

Constructor & Destructor Documentation

GEO_VolumeSampler::GEO_VolumeSampler ( )
inline

Definition at line 44 of file GEO_VolumeSampler.h.

GEO_VolumeSampler::GEO_VolumeSampler ( const GEO_Primitive prim)
inline

Definition at line 49 of file GEO_VolumeSampler.h.

GEO_VolumeSampler::GEO_VolumeSampler ( const GEO_VolumeSampler src)
inline

Definition at line 55 of file GEO_VolumeSampler.h.

GEO_VolumeSampler::~GEO_VolumeSampler ( )
inline

Definition at line 60 of file GEO_VolumeSampler.h.

Member Function Documentation

void GEO_VolumeSampler::bindPrim ( const GEO_Primitive prim)
inline

Definition at line 79 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 114 of file GEO_VolumeSampler.h.

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

Definition at line 128 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.

UT_Vector3D GEO_VolumeSampler::getConstantIndexRegionV3 ( UT_BoundingBox indexbox,
bool *  isconstant,
bool *  isactive 
)
GEO_PrimVolumeXform GEO_VolumeSampler::getIndexSpaceTransform ( ) const
inline

Definition at line 174 of file GEO_VolumeSampler.h.

GEO_PrimVolumeXform GEO_VolumeSampler::getSpaceTransform ( ) const
inline

Definition at line 166 of file GEO_VolumeSampler.h.

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

Definition at line 217 of file GEO_VolumeSampler.h.

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

Definition at line 248 of file GEO_VolumeSampler.h.

fpreal GEO_VolumeSampler::getValueF ( const UT_Vector3 pos)
inline

Definition at line 207 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 264 of file GEO_VolumeSampler.h.

UT_Vector3D GEO_VolumeSampler::getValueV3 ( const UT_Vector3 pos)
inline

Definition at line 238 of file GEO_VolumeSampler.h.

int GEO_VolumeSampler::getVectorSize ( ) const
inline

Definition at line 103 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 107 of file GEO_VolumeSampler.h.

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

Definition at line 121 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 185 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 197 of file GEO_VolumeSampler.h.

bool GEO_VolumeSampler::isBound ( )
inline

Definition at line 74 of file GEO_VolumeSampler.h.

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

Definition at line 65 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 137 of file GEO_VolumeSampler.h.

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

Definition at line 144 of file GEO_VolumeSampler.h.

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

Definition at line 151 of file GEO_VolumeSampler.h.

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

Definition at line 158 of file GEO_VolumeSampler.h.

Member Data Documentation

UT_VoxelArrayReadHandleF GEO_VolumeSampler::myHandle
protected

Definition at line 329 of file GEO_VolumeSampler.h.

const GEO_Primitive* GEO_VolumeSampler::myPrim
protected

Definition at line 326 of file GEO_VolumeSampler.h.

const GEO_PrimVDB* GEO_VolumeSampler::myVdb
protected

Definition at line 328 of file GEO_VolumeSampler.h.

GEO_VolumeSamplerVDBCache* GEO_VolumeSampler::myVDBCache
protected

Definition at line 331 of file GEO_VolumeSampler.h.

int GEO_VolumeSampler::myVectorSize
protected

Definition at line 330 of file GEO_VolumeSampler.h.

const GEO_PrimVolume* GEO_VolumeSampler::myVol
protected

Definition at line 327 of file GEO_VolumeSampler.h.


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