#include <exponential.h>
Public Member Functions | |
ExponentialDensity (const RGBColor &sa, const RGBColor &ss, float gg, const RGBColor &emit, const BBox &e, const Transform &v2w, float aa, float bb, const Vector &up) | |
virtual | ~ExponentialDensity () |
virtual BBox | WorldBound () const |
virtual bool | IntersectP (const Ray &r, float *t0, float *t1) const |
virtual float | Density (const Point &Pobj) const |
Static Public Member Functions | |
static VolumeRegion * | CreateVolumeRegion (const Transform &volume2world, const ParamSet ¶ms) |
Private Attributes | |
BBox | extent |
float | a |
float | b |
Vector | upDir |
Definition at line 30 of file exponential.h.
lux::ExponentialDensity::ExponentialDensity | ( | const RGBColor & | sa, | |
const RGBColor & | ss, | |||
float | gg, | |||
const RGBColor & | emit, | |||
const BBox & | e, | |||
const Transform & | v2w, | |||
float | aa, | |||
float | bb, | |||
const Vector & | up | |||
) | [inline] |
Definition at line 33 of file exponential.h.
References lux::Normalize(), and upDir.
Referenced by CreateVolumeRegion().
virtual lux::ExponentialDensity::~ExponentialDensity | ( | ) | [inline, virtual] |
Definition at line 41 of file exponential.h.
VolumeRegion * ExponentialDensity::CreateVolumeRegion | ( | const Transform & | volume2world, | |
const ParamSet & | params | |||
) | [static] |
Definition at line 31 of file exponential.cpp.
References a, b, ExponentialDensity(), lux::ParamSet::FindOneFloat(), lux::ParamSet::FindOnePoint(), lux::ParamSet::FindOneRGBColor(), lux::ParamSet::FindOneVector(), lux::DensityRegion::g, lux::DensityRegion::sigma_a(), and lux::DensityRegion::sigma_s().
virtual float lux::ExponentialDensity::Density | ( | const Point & | Pobj | ) | const [inline, virtual] |
Implements lux::DensityRegion.
Definition at line 47 of file exponential.h.
References a, b, lux::Dot(), extent, lux::BBox::Inside(), lux::BBox::pMin, and upDir.
virtual bool lux::ExponentialDensity::IntersectP | ( | const Ray & | r, | |
float * | t0, | |||
float * | t1 | |||
) | const [inline, virtual] |
Implements lux::VolumeRegion.
Definition at line 43 of file exponential.h.
References extent, lux::BBox::IntersectP(), and lux::DensityRegion::WorldToVolume.
virtual BBox lux::ExponentialDensity::WorldBound | ( | ) | const [inline, virtual] |
Implements lux::VolumeRegion.
Definition at line 42 of file exponential.h.
References extent, lux::Transform::GetInverse(), and lux::DensityRegion::WorldToVolume.
float lux::ExponentialDensity::a [private] |
Definition at line 57 of file exponential.h.
Referenced by CreateVolumeRegion(), and Density().
float lux::ExponentialDensity::b [private] |
Definition at line 57 of file exponential.h.
Referenced by CreateVolumeRegion(), and Density().
BBox lux::ExponentialDensity::extent [private] |
Definition at line 56 of file exponential.h.
Referenced by Density(), IntersectP(), and WorldBound().
Vector lux::ExponentialDensity::upDir [private] |
Definition at line 58 of file exponential.h.
Referenced by Density(), and ExponentialDensity().