lux::BSDF Class Reference

#include <bxdf.h>

List of all members.

Public Member Functions

SWCSpectrum Sample_f (const Vector &o, Vector *wi, float u1, float u2, float u3, float *pdf, BxDFType flags=BSDF_ALL, BxDFType *sampledType=NULL, float *pdfBack=NULL) const
SWCSpectrum Sample_f (const Vector &wo, Vector *wi, BxDFType flags=BSDF_ALL, BxDFType *sampledType=NULL) const
float Pdf (const Vector &wo, const Vector &wi, BxDFType flags=BSDF_ALL) const
 BSDF (const DifferentialGeometry &dgs, const Normal &ngeom, float eta=1.f)
void Add (BxDF *bxdf)
int NumComponents () const
int NumComponents (BxDFType flags) const
bool HasShadingGeometry () const
Vector WorldToLocal (const Vector &v) const
Vector LocalToWorld (const Vector &v) const
SWCSpectrum f (const Vector &woW, const Vector &wiW, BxDFType flags=BSDF_ALL) const
SWCSpectrum rho (BxDFType flags=BSDF_ALL) const
SWCSpectrum rho (const Vector &wo, BxDFType flags=BSDF_ALL) const

Static Public Member Functions

static void * Alloc (u_int sz)
static void FreeAll ()

Public Attributes

const DifferentialGeometry dgShading
const float eta

Private Member Functions

 ~BSDF ()

Private Attributes

Normal nn
Normal ng
Vector sn
Vector tn
int nBxDFs
BxDFbxdfs [MAX_BxDFS]

Static Private Attributes

static
boost::thread_specific_ptr
< MemoryArena
arena

Friends

class RenderThread
class Scene
class NoSuchClass


Detailed Description

Definition at line 70 of file bxdf.h.


Constructor & Destructor Documentation

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

lux::BSDF::~BSDF (  )  [inline, private]

Definition at line 115 of file bxdf.h.


Member Function Documentation

void lux::BSDF::Add ( BxDF bxdf  )  [inline]

static void* lux::BSDF::Alloc ( u_int  sz  )  [inline, static]

Definition at line 104 of file bxdf.h.

References arena.

Referenced by lux::CarPaint::GetBSDF().

SWCSpectrum BSDF::f ( const Vector woW,
const Vector wiW,
BxDFType  flags = BSDF_ALL 
) const

static void lux::BSDF::FreeAll (  )  [inline, static]

Definition at line 105 of file bxdf.h.

References arena.

Referenced by lux::ExPhotonIntegrator::Preprocess(), and lux::RenderThread::render().

bool lux::BSDF::HasShadingGeometry (  )  const [inline]

Definition at line 88 of file bxdf.h.

References ng, nn, lux::Normal::x, lux::Normal::y, and lux::Normal::z.

Vector lux::BSDF::LocalToWorld ( const Vector v  )  const [inline]

int lux::BSDF::NumComponents ( BxDFType  flags  )  const [inline]

Definition at line 180 of file bxdf.h.

References bxdfs, and nBxDFs.

int lux::BSDF::NumComponents (  )  const [inline]

float BSDF::Pdf ( const Vector wo,
const Vector wi,
BxDFType  flags = BSDF_ALL 
) const

SWCSpectrum BSDF::rho ( const Vector wo,
BxDFType  flags = BSDF_ALL 
) const

Definition at line 218 of file bxdf.cpp.

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

SWCSpectrum BSDF::rho ( BxDFType  flags = BSDF_ALL  )  const

SWCSpectrum BSDF::Sample_f ( const Vector wo,
Vector wi,
BxDFType  flags = BSDF_ALL,
BxDFType sampledType = NULL 
) const

Definition at line 103 of file bxdf.cpp.

References lux::SWCSpectrum::Black(), f(), lux::random::floatValue(), and Sample_f().

SWCSpectrum BSDF::Sample_f ( const Vector o,
Vector wi,
float  u1,
float  u2,
float  u3,
float *  pdf,
BxDFType  flags = BSDF_ALL,
BxDFType sampledType = NULL,
float *  pdfBack = NULL 
) const

Vector lux::BSDF::WorldToLocal ( const Vector v  )  const [inline]

Definition at line 91 of file bxdf.h.

References lux::Dot(), nn, sn, and tn.

Referenced by f(), Pdf(), and Sample_f().


Friends And Related Function Documentation

friend class NoSuchClass [friend]

Definition at line 116 of file bxdf.h.

friend class RenderThread [friend]

Definition at line 110 of file bxdf.h.

friend class Scene [friend]

Definition at line 111 of file bxdf.h.


Member Data Documentation

boost::thread_specific_ptr< MemoryArena > BSDF::arena [static, private]

Definition at line 123 of file bxdf.h.

Referenced by Alloc(), FreeAll(), lux::Scene::Render(), and lux::RenderThread::render().

BxDF* lux::BSDF::bxdfs[MAX_BxDFS] [private]

Definition at line 122 of file bxdf.h.

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

const float lux::BSDF::eta

int lux::BSDF::nBxDFs [private]

Definition at line 120 of file bxdf.h.

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

Normal lux::BSDF::ng [private]

Definition at line 118 of file bxdf.h.

Referenced by BSDF(), f(), HasShadingGeometry(), and Sample_f().

Normal lux::BSDF::nn [private]

Definition at line 118 of file bxdf.h.

Referenced by BSDF(), HasShadingGeometry(), LocalToWorld(), and WorldToLocal().

Vector lux::BSDF::sn [private]

Definition at line 119 of file bxdf.h.

Referenced by BSDF(), LocalToWorld(), and WorldToLocal().

Vector lux::BSDF::tn [private]

Definition at line 119 of file bxdf.h.

Referenced by BSDF(), LocalToWorld(), and WorldToLocal().


The documentation for this class was generated from the following files:

Generated on Fri Jul 24 11:46:57 2009 for lux by  doxygen 1.5.9