lux::Light Class Reference

#include <light.h>

Inheritance diagram for lux::Light:
lux::AreaLight lux::DistantLight lux::GonioPhotometricLight lux::InfiniteAreaLight lux::InfiniteAreaLightIS lux::PointLight lux::ProjectionLight lux::SkyLight lux::SpotLight lux::SunLight

List of all members.

Public Member Functions

virtual ~Light ()
 Light (const Transform &l2w, int ns=1)
virtual SWCSpectrum Sample_L (const Point &p, Vector *wi, VisibilityTester *vis) const =0
virtual SWCSpectrum Power (const Scene *) const =0
virtual bool IsDeltaLight () const =0
virtual SWCSpectrum Le (const RayDifferential &r) const
virtual SWCSpectrum Le (const Scene *scene, const Ray &r, const Normal &n, BSDF **bsdf, float *pdf, float *pdfDirect) const
virtual SWCSpectrum Sample_L (const Point &p, float u1, float u2, float u3, Vector *wi, float *pdf, VisibilityTester *vis) const =0
virtual float Pdf (const Point &p, const Vector &wi) const =0
virtual SWCSpectrum Sample_L (const Point &p, const Normal &n, float u1, float u2, float u3, Vector *wi, float *pdf, VisibilityTester *visibility) const
virtual float Pdf (const Point &p, const Normal &n, const Vector &wi) const
virtual SWCSpectrum Sample_L (const Scene *scene, float u1, float u2, float u3, float u4, Ray *ray, float *pdf) const =0
virtual SWCSpectrum Sample_L (const Scene *scene, float u1, float u2, BSDF **bsdf, float *pdf) const
virtual SWCSpectrum Sample_L (const Scene *scene, const Point &p, const Normal &n, float u1, float u2, float u3, BSDF **bsdf, float *pdf, float *pdfDirect, VisibilityTester *visibility) const
virtual float Pdf (const Scene *scene, const Point &p) const
void AddPortalShape (boost::shared_ptr< Shape > shape)
virtual void SamplePosition (float u1, float u2, Point *p, Normal *n, float *pdf) const
virtual void SampleDirection (float u1, float u2, const Normal &nn, Vector *wo, float *pdf) const
virtual float EvalPositionPdf (const Point p, const Normal &n, const Vector &w) const
virtual float EvalDirectionPdf (const Point p, const Normal &n, const Vector &w) const
virtual SWCSpectrum Eval (const Normal &n, const Vector &w) const

Public Attributes

const int nSamples
bool havePortalShape
int nrPortalShapes
vector< boost::shared_ptr
< Shape > > 
PortalShapes
float PortalArea

Protected Attributes

const Transform LightToWorld
const Transform WorldToLight

Detailed Description

Definition at line 36 of file light.h.


Constructor & Destructor Documentation

Light::~Light (  )  [virtual]

Definition at line 31 of file light.cpp.

lux::Light::Light ( const Transform l2w,
int  ns = 1 
) [inline]

Member Function Documentation

void Light::AddPortalShape ( boost::shared_ptr< Shape shape  ) 

Definition at line 72 of file light.cpp.

References havePortalShape, nrPortalShapes, PortalArea, and PortalShapes.

Referenced by lux::Context::portalShape().

virtual SWCSpectrum lux::Light::Eval ( const Normal n,
const Vector w 
) const [inline, virtual]

Reimplemented in lux::AreaLight.

Definition at line 97 of file light.h.

References LUX_BUG, LUX_SEVERE, and luxError.

Referenced by lux::ParticleTracingIntegrator::Li().

virtual float lux::Light::EvalDirectionPdf ( const Point  p,
const Normal n,
const Vector w 
) const [inline, virtual]

Reimplemented in lux::AreaLight.

Definition at line 92 of file light.h.

References LUX_BUG, LUX_SEVERE, and luxError.

virtual float lux::Light::EvalPositionPdf ( const Point  p,
const Normal n,
const Vector w 
) const [inline, virtual]

Reimplemented in lux::AreaLight.

Definition at line 87 of file light.h.

References LUX_BUG, LUX_SEVERE, and luxError.

virtual bool lux::Light::IsDeltaLight (  )  const [pure virtual]
SWCSpectrum Light::Le ( const Scene scene,
const Ray r,
const Normal n,
BSDF **  bsdf,
float *  pdf,
float *  pdfDirect 
) const [virtual]

Reimplemented in lux::SkyLight, and lux::SunLight.

Definition at line 66 of file light.cpp.

SWCSpectrum Light::Le ( const RayDifferential r  )  const [virtual]
virtual float lux::Light::Pdf ( const Scene scene,
const Point p 
) const [inline, virtual]

Reimplemented in lux::AreaLight.

Definition at line 75 of file light.h.

References LUX_BUG, LUX_SEVERE, and luxError.

virtual float lux::Light::Pdf ( const Point p,
const Normal n,
const Vector wi 
) const [inline, virtual]

Reimplemented in lux::AreaLight, lux::InfiniteAreaLight, and lux::SkyLight.

Definition at line 66 of file light.h.

References Pdf().

virtual float lux::Light::Pdf ( const Point p,
const Vector wi 
) const [pure virtual]
virtual SWCSpectrum lux::Light::Power ( const Scene  )  const [pure virtual]
virtual SWCSpectrum lux::Light::Sample_L ( const Scene scene,
const Point p,
const Normal n,
float  u1,
float  u2,
float  u3,
BSDF **  bsdf,
float *  pdf,
float *  pdfDirect,
VisibilityTester visibility 
) const [inline, virtual]

Reimplemented in lux::AreaLight, lux::SkyLight, and lux::SunLight.

Definition at line 74 of file light.h.

References LUX_BUG, LUX_SEVERE, and luxError.

virtual SWCSpectrum lux::Light::Sample_L ( const Scene scene,
float  u1,
float  u2,
BSDF **  bsdf,
float *  pdf 
) const [inline, virtual]

Reimplemented in lux::AreaLight, lux::SkyLight, and lux::SunLight.

Definition at line 73 of file light.h.

References LUX_BUG, LUX_SEVERE, and luxError.

virtual SWCSpectrum lux::Light::Sample_L ( const Scene scene,
float  u1,
float  u2,
float  u3,
float  u4,
Ray ray,
float *  pdf 
) const [pure virtual]
virtual SWCSpectrum lux::Light::Sample_L ( const Point p,
const Normal n,
float  u1,
float  u2,
float  u3,
Vector wi,
float *  pdf,
VisibilityTester visibility 
) const [inline, virtual]

Reimplemented in lux::AreaLight, lux::InfiniteAreaLight, and lux::SkyLight.

Definition at line 61 of file light.h.

References Sample_L().

virtual SWCSpectrum lux::Light::Sample_L ( const Point p,
float  u1,
float  u2,
float  u3,
Vector wi,
float *  pdf,
VisibilityTester vis 
) const [pure virtual]
virtual SWCSpectrum lux::Light::Sample_L ( const Point p,
Vector wi,
VisibilityTester vis 
) const [pure virtual]
virtual void lux::Light::SampleDirection ( float  u1,
float  u2,
const Normal nn,
Vector wo,
float *  pdf 
) const [inline, virtual]

Reimplemented in lux::AreaLight.

Definition at line 83 of file light.h.

References LUX_BUG, LUX_SEVERE, and luxError.

Referenced by lux::ParticleTracingIntegrator::Li().

virtual void lux::Light::SamplePosition ( float  u1,
float  u2,
Point p,
Normal n,
float *  pdf 
) const [inline, virtual]

Reimplemented in lux::AreaLight.

Definition at line 79 of file light.h.

References LUX_BUG, LUX_SEVERE, and luxError.

Referenced by lux::ParticleTracingIntegrator::Li().


Member Data Documentation

Definition at line 108 of file light.h.

Referenced by AddPortalShape(), and Light().

vector<boost::shared_ptr<Shape> > lux::Light::PortalShapes

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

Generated on 22 Jan 2010 for lux by  doxygen 1.6.1