#include <volumegrid.h>
Public Member Functions | |
VolumeGrid (const RGBColor &sa, const RGBColor &ss, float gg, const RGBColor &emit, const BBox &e, const Transform &v2w, int nx, int ny, int nz, const float *d) | |
virtual | ~VolumeGrid () |
virtual BBox | WorldBound () const |
virtual bool | IntersectP (const Ray &r, float *t0, float *t1) const |
virtual float | Density (const Point &Pobj) const |
float | D (int x, int y, int z) const |
Static Public Member Functions | |
static VolumeRegion * | CreateVolumeRegion (const Transform &volume2world, const ParamSet ¶ms) |
Private Attributes | |
float * | density |
const int | nx |
const int | ny |
const int | nz |
const BBox | extent |
Definition at line 30 of file volumegrid.h.
VolumeGrid::VolumeGrid | ( | const RGBColor & | sa, | |
const RGBColor & | ss, | |||
float | gg, | |||
const RGBColor & | emit, | |||
const BBox & | e, | |||
const Transform & | v2w, | |||
int | nx, | |||
int | ny, | |||
int | nz, | |||
const float * | d | |||
) |
Definition at line 32 of file volumegrid.cpp.
References density, memcpy(), nx, ny, and nz.
Referenced by CreateVolumeRegion().
virtual lux::VolumeGrid::~VolumeGrid | ( | ) | [inline, virtual] |
Definition at line 36 of file volumegrid.h.
References density.
VolumeRegion * VolumeGrid::CreateVolumeRegion | ( | const Transform & | volume2world, | |
const ParamSet & | params | |||
) | [static] |
Definition at line 64 of file volumegrid.cpp.
References lux::ParamSet::FindFloat(), lux::ParamSet::FindOneFloat(), lux::ParamSet::FindOneInt(), lux::ParamSet::FindOnePoint(), lux::ParamSet::FindOneRGBColor(), lux::DensityRegion::g, LUX_CONSISTENCY, LUX_ERROR, LUX_MISSINGDATA, luxError, nx, ny, nz, lux::DensityRegion::sigma_a(), lux::DensityRegion::sigma_s(), and VolumeGrid().
Definition at line 43 of file volumegrid.h.
References Clamp(), and density.
Referenced by Density().
float VolumeGrid::Density | ( | const Point & | Pobj | ) | const [virtual] |
Implements lux::DensityRegion.
Definition at line 42 of file volumegrid.cpp.
References D(), extent, Floor2Int(), lux::BBox::Inside(), Lerp(), nx, ny, nz, lux::BBox::pMax, lux::BBox::pMin, lux::Point::x, lux::Point::y, and lux::Point::z.
virtual bool lux::VolumeGrid::IntersectP | ( | const Ray & | r, | |
float * | t0, | |||
float * | t1 | |||
) | const [inline, virtual] |
Implements lux::VolumeRegion.
Definition at line 38 of file volumegrid.h.
References extent, lux::BBox::IntersectP(), and lux::DensityRegion::WorldToVolume.
virtual BBox lux::VolumeGrid::WorldBound | ( | ) | const [inline, virtual] |
Implements lux::VolumeRegion.
Definition at line 37 of file volumegrid.h.
References extent, lux::Transform::GetInverse(), and lux::DensityRegion::WorldToVolume.
float* lux::VolumeGrid::density [private] |
Definition at line 53 of file volumegrid.h.
Referenced by D(), VolumeGrid(), and ~VolumeGrid().
const BBox lux::VolumeGrid::extent [private] |
Definition at line 55 of file volumegrid.h.
Referenced by Density(), IntersectP(), and WorldBound().
const int lux::VolumeGrid::nx [private] |
Definition at line 54 of file volumegrid.h.
Referenced by CreateVolumeRegion(), Density(), and VolumeGrid().
const int lux::VolumeGrid::ny [private] |
Definition at line 54 of file volumegrid.h.
Referenced by CreateVolumeRegion(), Density(), and VolumeGrid().
const int lux::VolumeGrid::nz [private] |
Definition at line 54 of file volumegrid.h.
Referenced by CreateVolumeRegion(), Density(), and VolumeGrid().