lux::MultiBSDF Class Reference

#include <bxdf.h>

Inheritance diagram for lux::MultiBSDF:
[legend]
Collaboration diagram for lux::MultiBSDF:
[legend]

List of all members.

Public Member Functions

 MultiBSDF (const DifferentialGeometry &dgs, const Normal &ngeom, float eta=1.f)
void Add (BxDF *bxdf)
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 ~MultiBSDF ()

Protected Attributes

int nBxDFs
BxDFbxdfs [MAX_BxDFS]

Detailed Description

Definition at line 161 of file bxdf.h.


Constructor & Destructor Documentation

MultiBSDF::MultiBSDF ( const DifferentialGeometry dgs,
const Normal ngeom,
float  eta = 1.f 
)

Definition at line 293 of file bxdf.cpp.

References nBxDFs.

virtual lux::MultiBSDF::~MultiBSDF (  )  [inline, protected, virtual]

Definition at line 188 of file bxdf.h.


Member Function Documentation

void lux::MultiBSDF::Add ( BxDF bxdf  )  [inline]
SWCSpectrum MultiBSDF::f ( const TsPack tspack,
const Vector woW,
const Vector wiW,
BxDFType  flags = BSDF_ALL 
) const [virtual]
int lux::MultiBSDF::NumComponents ( BxDFType  flags  )  const [inline, virtual]

Implements lux::BSDF.

Definition at line 307 of file bxdf.h.

References bxdfs, and nBxDFs.

virtual int lux::MultiBSDF::NumComponents (  )  const [inline, virtual]

Implements lux::BSDF.

Definition at line 167 of file bxdf.h.

References nBxDFs.

float MultiBSDF::Pdf ( const TsPack tspack,
const Vector wo,
const Vector wi,
BxDFType  flags = BSDF_ALL 
) const [virtual]

Implements lux::BSDF.

Definition at line 389 of file bxdf.cpp.

References bxdfs, nBxDFs, lux::BxDF::Pdf(), lux::BxDF::Weight(), and lux::BSDF::WorldToLocal().

SWCSpectrum MultiBSDF::rho ( const TsPack tspack,
const Vector wo,
BxDFType  flags = BSDF_ALL 
) const [virtual]

Implements lux::BSDF.

Definition at line 431 of file bxdf.cpp.

References bxdfs, f(), nBxDFs, lux::BxDF::rho(), and lux::BSDF::WorldToLocal().

SWCSpectrum MultiBSDF::rho ( const TsPack tspack,
BxDFType  flags = BSDF_ALL 
) const [virtual]

Implements lux::BSDF.

Definition at line 423 of file bxdf.cpp.

References bxdfs, f(), nBxDFs, and lux::BxDF::rho().

bool MultiBSDF::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]

Member Data Documentation

BxDF* lux::MultiBSDF::bxdfs[MAX_BxDFS] [protected]

Definition at line 192 of file bxdf.h.

Referenced by Add(), f(), NumComponents(), Pdf(), rho(), and Sample_f().

Definition at line 190 of file bxdf.h.

Referenced by Add(), f(), MultiBSDF(), NumComponents(), Pdf(), rho(), and Sample_f().


The documentation for this class was generated from the following files:
Generated by  doxygen 1.6.2-20100208