#include <bxdf.h>
Public Member Functions | |
SingleBSDF (const DifferentialGeometry &dgs, const Normal &ngeom, BxDF *b, float e=1.f) | |
virtual int | NumComponents () const |
virtual int | NumComponents (BxDFType flags) const |
virtual bool | Sample_f (const TsPack *tspack, const Vector &o, Vector *wi, float u1, float u2, float u3, SWCSpectrum *const f, float *pdf, BxDFType flags=BSDF_ALL, BxDFType *sampledType=NULL, float *pdfBack=NULL, bool reverse=false) const |
virtual float | Pdf (const TsPack *tspack, const Vector &wo, const Vector &wi, BxDFType flags=BSDF_ALL) const |
virtual SWCSpectrum | f (const TsPack *tspack, const Vector &woW, const Vector &wiW, BxDFType flags=BSDF_ALL) const |
virtual SWCSpectrum | rho (const TsPack *tspack, BxDFType flags=BSDF_ALL) const |
virtual SWCSpectrum | rho (const TsPack *tspack, const Vector &wo, BxDFType flags=BSDF_ALL) const |
Protected Member Functions | |
virtual | ~SingleBSDF () |
Protected Attributes | |
BxDF * | bxdf |
Definition at line 129 of file bxdf.h.
lux::SingleBSDF::SingleBSDF | ( | const DifferentialGeometry & | dgs, | |
const Normal & | ngeom, | |||
BxDF * | b, | |||
float | e = 1.f | |||
) | [inline] |
virtual lux::SingleBSDF::~SingleBSDF | ( | ) | [inline, protected, virtual] |
SWCSpectrum SingleBSDF::f | ( | const TsPack * | tspack, | |
const Vector & | woW, | |||
const Vector & | wiW, | |||
BxDFType | flags = BSDF_ALL | |||
) | const [virtual] |
Implements lux::BSDF.
Definition at line 262 of file bxdf.cpp.
References lux::BSDF_REFLECTION, lux::BSDF_TRANSMISSION, bxdf, lux::Dot(), lux::BxDF::f(), lux::BxDF::MatchesFlags(), lux::BSDF::ng, and lux::BSDF::WorldToLocal().
Referenced by Pdf(), rho(), and Sample_f().
Implements lux::BSDF.
Definition at line 298 of file bxdf.h.
References bxdf, and lux::BxDF::MatchesFlags().
virtual int lux::SingleBSDF::NumComponents | ( | ) | const [inline, virtual] |
float SingleBSDF::Pdf | ( | const TsPack * | tspack, | |
const Vector & | wo, | |||
const Vector & | wi, | |||
BxDFType | flags = BSDF_ALL | |||
) | const [virtual] |
Implements lux::BSDF.
Definition at line 254 of file bxdf.cpp.
References bxdf, f(), lux::BxDF::MatchesFlags(), lux::BxDF::Pdf(), and lux::BSDF::WorldToLocal().
SWCSpectrum SingleBSDF::rho | ( | const TsPack * | tspack, | |
const Vector & | wo, | |||
BxDFType | flags = BSDF_ALL | |||
) | const [virtual] |
Implements lux::BSDF.
Definition at line 286 of file bxdf.cpp.
References bxdf, f(), lux::BxDF::MatchesFlags(), lux::BxDF::rho(), and lux::BSDF::WorldToLocal().
SWCSpectrum SingleBSDF::rho | ( | const TsPack * | tspack, | |
BxDFType | flags = BSDF_ALL | |||
) | const [virtual] |
Implements lux::BSDF.
Definition at line 280 of file bxdf.cpp.
References bxdf, f(), lux::BxDF::MatchesFlags(), and lux::BxDF::rho().
bool SingleBSDF::Sample_f | ( | const TsPack * | tspack, | |
const Vector & | o, | |||
Vector * | wi, | |||
float | u1, | |||
float | u2, | |||
float | u3, | |||
SWCSpectrum *const | f, | |||
float * | pdf, | |||
BxDFType | flags = BSDF_ALL , |
|||
BxDFType * | sampledType = NULL , |
|||
float * | pdfBack = NULL , |
|||
bool | reverse = false | |||
) | const [virtual] |
Samples the BSDF. Returns the result of the BSDF for the sampled direction in f.
Implements lux::BSDF.
Definition at line 221 of file bxdf.cpp.
References lux::BSDF_REFLECTION, lux::BSDF_TRANSMISSION, bxdf, lux::Dot(), f(), lux::BSDF::LocalToWorld(), lux::BxDF::MatchesFlags(), lux::BSDF::ng, lux::BxDF::Sample_f(), lux::BxDF::type, and lux::BSDF::WorldToLocal().
BxDF* lux::SingleBSDF::bxdf [protected] |
Definition at line 157 of file bxdf.h.
Referenced by f(), NumComponents(), Pdf(), rho(), and Sample_f().