lux::Light Class Reference

#include <light.h>

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

List of all members.

Public Member Functions

virtual ~Light ()
 Light (const Transform &l2w, int ns=1)
virtual SWCSpectrum Power (const TsPack *tspack, const Scene *) const =0
virtual bool IsDeltaLight () const =0
virtual bool IsEnvironmental () const =0
virtual SWCSpectrum Le (const TsPack *tspack, const RayDifferential &r) const
virtual SWCSpectrum Le (const TsPack *tspack, const Scene *scene, const Ray &r, const Normal &n, BSDF **bsdf, float *pdf, float *pdfDirect) const
virtual SWCSpectrum Sample_L (const TsPack *tspack, 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 TsPack *tspack, 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 float Pdf (const Point &p, const Normal &n, const Point &po, const Normal &ns) const =0
virtual SWCSpectrum Sample_L (const TsPack *tspack, const Scene *scene, float u1, float u2, float u3, float u4, Ray *ray, float *pdf) const =0
virtual bool Sample_L (const TsPack *tspack, const Scene *scene, float u1, float u2, float u3, BSDF **bsdf, float *pdf, SWCSpectrum *L) 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 *L) const
void AddPortalShape (boost::shared_ptr< Primitive > shape)

Public Attributes

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

Protected Attributes

const Transform LightToWorld
const Transform WorldToLight
bool warnOnce

Detailed Description

Definition at line 37 of file light.h.


Constructor & Destructor Documentation

Light::~Light (  )  [virtual]

Definition at line 32 of file light.cpp.

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

Member Function Documentation

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

Definition at line 83 of file light.cpp.

References havePortalShape, nrPortalShapes, PortalArea, and PortalShapes.

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

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

Reimplemented in lux::InfiniteAreaLight, lux::PointLight, lux::SkyLight, lux::SpotLight, and lux::SunLight.

Definition at line 77 of file light.cpp.

SWCSpectrum Light::Le ( const TsPack tspack,
const RayDifferential r 
) const [virtual]

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

Definition at line 74 of file light.cpp.

Referenced by getEnvironmentLight().

virtual float lux::Light::Pdf ( const Point p,
const Normal n,
const Point po,
const Normal ns 
) const [pure virtual]
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 67 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 TsPack tspack,
const Scene  
) const [pure virtual]
virtual bool lux::Light::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 L 
) const [inline, virtual]
virtual bool lux::Light::Sample_L ( const TsPack tspack,
const Scene scene,
float  u1,
float  u2,
float  u3,
BSDF **  bsdf,
float *  pdf,
SWCSpectrum L 
) const [inline, virtual]
virtual SWCSpectrum lux::Light::Sample_L ( const TsPack tspack,
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 TsPack tspack,
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 62 of file light.h.

References Sample_L().

virtual SWCSpectrum lux::Light::Sample_L ( const TsPack tspack,
const Point p,
float  u1,
float  u2,
float  u3,
Vector wi,
float *  pdf,
VisibilityTester vis 
) const [pure virtual]

Member Data Documentation

Definition at line 96 of file light.h.

Referenced by AddPortalShape(), Light(), lux::SunLight::Power(), and lux::SkyLight::Power().

vector<boost::shared_ptr<Primitive> > lux::Light::PortalShapes
bool lux::Light::warnOnce [mutable, protected]

Definition at line 101 of file light.h.

Referenced by Light(), and Sample_L().


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