lux::AreaLight Class Reference

#include <light.h>

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

List of all members.

Public Member Functions

 AreaLight (const Transform &light2world, boost::shared_ptr< Texture< SWCSpectrum > > Le, float g, float pow, float e, SampleableSphericalFunction *ssf, int ns, const boost::shared_ptr< Primitive > &prim)
virtual ~AreaLight ()
virtual SWCSpectrum L (const TsPack *tspack, const DifferentialGeometry &dg, const Vector &w) const
virtual SWCSpectrum L (const TsPack *tspack, const Ray &ray, const DifferentialGeometry &dg, const Normal &n, BSDF **bsdf, float *pdf, float *pdfDirect) const
SWCSpectrum Power (const TsPack *tspack, const Scene *) const
virtual bool IsDeltaLight () const
virtual bool IsEnvironmental () const
virtual float Pdf (const Point &, const Vector &) const
virtual float Pdf (const Point &, const Normal &, const Vector &) const
virtual float Pdf (const Point &p, const Normal &n, const Point &po, const Normal &ns) const
virtual SWCSpectrum Sample_L (const TsPack *tspack, const Point &P, const Normal &N, float u1, float u2, float u3, Vector *wo, float *pdf, VisibilityTester *visibility) const
virtual SWCSpectrum Sample_L (const TsPack *tspack, const Point &P, float u1, float u2, float u3, Vector *wo, float *pdf, VisibilityTester *visibility) const
virtual SWCSpectrum Sample_L (const TsPack *tspack, const Scene *scene, float u1, float u2, float u3, float u4, Ray *ray, float *pdf) const
virtual bool Sample_L (const TsPack *tspack, const Scene *scene, float u1, float u2, float u3, BSDF **bsdf, float *pdf, SWCSpectrum *Le) const
virtual bool Sample_L (const TsPack *tspack, const Scene *scene, const Point &p, const Normal &n, float u1, float u2, float u3, BSDF **bsdf, float *pdf, float *pdfDirect, VisibilityTester *visibility, SWCSpectrum *Le) const

Static Public Member Functions

static AreaLightCreateAreaLight (const Transform &light2world, const ParamSet &paramSet, const TextureParams &tp, const boost::shared_ptr< Primitive > &prim)

Protected Attributes

boost::shared_ptr< Texture
< SWCSpectrum > > 
Le
DifferentialGeometry dummydg
boost::shared_ptr< Primitiveprim
float gain
float power
float efficacy
float area
SampleableSphericalFunctionfunc

Detailed Description

Definition at line 130 of file light.h.


Constructor & Destructor Documentation

AreaLight::AreaLight ( const Transform light2world,
boost::shared_ptr< Texture< SWCSpectrum > >  Le,
float  g,
float  pow,
float  e,
SampleableSphericalFunction ssf,
int  ns,
const boost::shared_ptr< Primitive > &  prim 
)

Definition at line 51 of file area.cpp.

References area, efficacy, func, gain, Le, power, and prim.

Referenced by CreateAreaLight().

AreaLight::~AreaLight (  )  [virtual]

Definition at line 79 of file area.cpp.

References func.


Member Function Documentation

AreaLight * AreaLight::CreateAreaLight ( const Transform light2world,
const ParamSet paramSet,
const TextureParams tp,
const boost::shared_ptr< Primitive > &  prim 
) [static]
virtual bool lux::AreaLight::IsDeltaLight (  )  const [inline, virtual]

Implements lux::Light.

Definition at line 158 of file light.h.

virtual bool lux::AreaLight::IsEnvironmental (  )  const [inline, virtual]

Implements lux::Light.

Definition at line 159 of file light.h.

SWCSpectrum AreaLight::L ( const TsPack tspack,
const Ray ray,
const DifferentialGeometry dg,
const Normal n,
BSDF **  bsdf,
float *  pdf,
float *  pdfDirect 
) const [virtual]
virtual SWCSpectrum lux::AreaLight::L ( const TsPack tspack,
const DifferentialGeometry dg,
const Vector w 
) const [inline, virtual]
float AreaLight::Pdf ( const Point p,
const Normal n,
const Point po,
const Normal ns 
) const [virtual]

Implements lux::Light.

Definition at line 100 of file area.cpp.

References prim.

float AreaLight::Pdf ( const Point p,
const Normal N,
const Vector wi 
) const [virtual]

Reimplemented from lux::Light.

Definition at line 96 of file area.cpp.

References prim.

float AreaLight::Pdf ( const Point P,
const Vector w 
) const [virtual]

Implements lux::Light.

Definition at line 128 of file area.cpp.

References prim.

SWCSpectrum lux::AreaLight::Power ( const TsPack tspack,
const Scene  
) const [inline, virtual]
bool AreaLight::Sample_L ( const TsPack tspack,
const Scene scene,
const Point p,
const Normal n,
float  u1,
float  u2,
float  u3,
BSDF **  bsdf,
float *  pdf,
float *  pdfDirect,
VisibilityTester visibility,
SWCSpectrum Le 
) const [virtual]
bool AreaLight::Sample_L ( const TsPack tspack,
const Scene scene,
float  u1,
float  u2,
float  u3,
BSDF **  bsdf,
float *  pdf,
SWCSpectrum Le 
) const [virtual]
SWCSpectrum AreaLight::Sample_L ( const TsPack tspack,
const Scene scene,
float  u1,
float  u2,
float  u3,
float  u4,
Ray ray,
float *  pdf 
) const [virtual]
SWCSpectrum AreaLight::Sample_L ( const TsPack tspack,
const Point P,
float  u1,
float  u2,
float  u3,
Vector wo,
float *  pdf,
VisibilityTester visibility 
) const [virtual]
SWCSpectrum AreaLight::Sample_L ( const TsPack tspack,
const Point P,
const Normal N,
float  u1,
float  u2,
float  u3,
Vector wo,
float *  pdf,
VisibilityTester visibility 
) const [virtual]

Member Data Documentation

float lux::AreaLight::area [protected]

Definition at line 180 of file light.h.

Referenced by AreaLight(), and Power().

Definition at line 178 of file light.h.

Referenced by Power().

float lux::AreaLight::efficacy [protected]

Definition at line 180 of file light.h.

Referenced by AreaLight().

Definition at line 181 of file light.h.

Referenced by AreaLight(), L(), Power(), Sample_L(), and ~AreaLight().

float lux::AreaLight::gain [protected]

Definition at line 180 of file light.h.

Referenced by AreaLight(), L(), Power(), and Sample_L().

boost::shared_ptr<Texture<SWCSpectrum> > lux::AreaLight::Le [protected]

Definition at line 177 of file light.h.

Referenced by AreaLight(), L(), and Power().

float lux::AreaLight::power [protected]

Definition at line 180 of file light.h.

Referenced by AreaLight().

boost::shared_ptr<Primitive> lux::AreaLight::prim [protected]

Definition at line 179 of file light.h.

Referenced by AreaLight(), L(), Pdf(), and Sample_L().


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