#include <lafortune.h>
Public Member Functions | |
Lafortune (const SWCSpectrum &x, const SWCSpectrum &y, const SWCSpectrum &z, const SWCSpectrum &e, BxDFType t) | |
virtual | ~Lafortune () |
virtual void | f (const TsPack *tspack, const Vector &wo, const Vector &wi, SWCSpectrum *const f) const |
virtual bool | Sample_f (const TsPack *tspack, const Vector &wi, Vector *sampled_f, float u1, float u2, SWCSpectrum *const f, float *pdf, float *pdfBack=NULL, bool reverse=false) const |
virtual float | Pdf (const TsPack *tspack, const Vector &wi, const Vector &wo) const |
Private Attributes | |
const SWCSpectrum | x |
const SWCSpectrum | y |
const SWCSpectrum | z |
const SWCSpectrum | exponent |
Definition at line 33 of file lafortune.h.
Lafortune::Lafortune | ( | const SWCSpectrum & | x, | |
const SWCSpectrum & | y, | |||
const SWCSpectrum & | z, | |||
const SWCSpectrum & | e, | |||
BxDFType | t | |||
) |
Definition at line 30 of file lafortune.cpp.
virtual lux::Lafortune::~Lafortune | ( | ) | [inline, virtual] |
Definition at line 38 of file lafortune.h.
void Lafortune::f | ( | const TsPack * | tspack, | |
const Vector & | wo, | |||
const Vector & | wi, | |||
SWCSpectrum *const | f | |||
) | const [virtual] |
Evaluates the BxDF. Accumulates the result in the f parameter.
Implements lux::BxDF.
Definition at line 35 of file lafortune.cpp.
References exponent, lux::SWCSpectrum::Pow(), lux::Vector::x, x, lux::Vector::y, y, lux::Vector::z, and z.
Referenced by Pdf(), and Sample_f().
float Lafortune::Pdf | ( | const TsPack * | tspack, | |
const Vector & | wi, | |||
const Vector & | wo | |||
) | const [virtual] |
Reimplemented from lux::BxDF.
Definition at line 67 of file lafortune.cpp.
References lux::Dot(), exponent, f(), cimg_library::cimg::max(), lux::Normalize(), lux::SameHemisphere(), lux::Vector::x, x, lux::Vector::y, y, lux::SWCSpectrum::Y(), lux::Vector::z, and z.
Referenced by Sample_f().
bool Lafortune::Sample_f | ( | const TsPack * | tspack, | |
const Vector & | wo, | |||
Vector * | wi, | |||
float | u1, | |||
float | u2, | |||
SWCSpectrum *const | f, | |||
float * | pdf, | |||
float * | pdfBack = NULL , |
|||
bool | reverse = false | |||
) | const [virtual] |
Samples the BxDF. Returns the result of the BxDF for the sampled direction in f.
Reimplemented from lux::BxDF.
Definition at line 40 of file lafortune.cpp.
References lux::CoordinateSystem(), exponent, f(), lux::SWCSpectrum::Filter(), M_PI, cimg_library::cimg::max(), lux::Normalize(), Pdf(), lux::SameHemisphere(), lux::SphericalDirection(), lux::Vector::x, x, lux::Vector::y, y, lux::SWCSpectrum::Y(), lux::Vector::z, and z.
const SWCSpectrum lux::Lafortune::exponent [private] |
Definition at line 45 of file lafortune.h.
Referenced by f(), Pdf(), and Sample_f().
const SWCSpectrum lux::Lafortune::x [private] |
Definition at line 45 of file lafortune.h.
Referenced by f(), Pdf(), and Sample_f().
const SWCSpectrum lux::Lafortune::y [private] |
Definition at line 45 of file lafortune.h.
Referenced by f(), Pdf(), and Sample_f().
const SWCSpectrum lux::Lafortune::z [private] |
Definition at line 45 of file lafortune.h.
Referenced by f(), Pdf(), and Sample_f().