lux::SunLight Class Reference

#include <sun.h>

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

List of all members.

Public Member Functions

 SunLight (const Transform &light2world, const float sunscale, const Vector &dir, float turb, float relSize, int ns)
virtual ~SunLight ()
virtual bool IsDeltaLight () const
virtual bool IsEnvironmental () const
virtual SWCSpectrum Power (const TsPack *tspack, const Scene *scene) const
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 *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 float Pdf (const Point &, const Vector &) const
virtual float Pdf (const Point &p, const Normal &n, const Point &po, const Normal &ns) 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 LightCreateLight (const Transform &light2world, const ParamSet &paramSet, const TextureParams &tp)

Private Member Functions

bool checkPortals (Ray portalRay) const

Private Attributes

Vector sundir
Vector x
Vector y
float turbidity
float thetaS
float phiS
float V
float cosThetaMax
float sin2ThetaMax
SPDLSPD

Detailed Description

Definition at line 34 of file sun.h.


Constructor & Destructor Documentation

SunLight::SunLight ( const Transform light2world,
const float  sunscale,
const Vector dir,
float  turb,
float  relSize,
int  ns 
)
virtual lux::SunLight::~SunLight (  )  [inline, virtual]

Definition at line 38 of file sun.h.

References LSPD.


Member Function Documentation

bool SunLight::checkPortals ( Ray  portalRay  )  const [private]
Light * SunLight::CreateLight ( const Transform light2world,
const ParamSet paramSet,
const TextureParams tp 
) [static]
virtual bool lux::SunLight::IsDeltaLight (  )  const [inline, virtual]

Implements lux::Light.

Definition at line 39 of file sun.h.

References cosThetaMax.

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

Implements lux::Light.

Definition at line 40 of file sun.h.

SWCSpectrum SunLight::Le ( const TsPack tspack,
const Scene scene,
const Ray r,
const Normal n,
BSDF **  bsdf,
float *  pdf,
float *  pdfDirect 
) const [virtual]
SWCSpectrum SunLight::Le ( const TsPack tspack,
const RayDifferential r 
) const [virtual]

Reimplemented from lux::Light.

Definition at line 138 of file sun.cpp.

References cosThetaMax, lux::Ray::d, lux::Dot(), LSPD, and sundir.

float SunLight::Pdf ( const Point p,
const Normal n,
const Point po,
const Normal ns 
) const [virtual]

Implements lux::Light.

Definition at line 233 of file sun.cpp.

References lux::AbsDot(), cosThetaMax, lux::DistanceSquared(), lux::Normalize(), and lux::UniformConePdf().

float SunLight::Pdf ( const Point ,
const Vector  
) const [virtual]

Implements lux::Light.

Definition at line 227 of file sun.cpp.

References cosThetaMax, and lux::UniformConePdf().

virtual SWCSpectrum lux::SunLight::Power ( const TsPack tspack,
const Scene scene 
) const [inline, virtual]
bool SunLight::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 SunLight::Sample_L ( const TsPack tspack,
const Scene scene,
float  u1,
float  u2,
float  u3,
BSDF **  bsdf,
float *  pdf,
SWCSpectrum Le 
) const [virtual]
SWCSpectrum SunLight::Sample_L ( const TsPack tspack,
const Scene scene,
float  u1,
float  u2,
float  u3,
float  u4,
Ray ray,
float *  pdf 
) const [virtual]
SWCSpectrum SunLight::Sample_L ( const TsPack tspack,
const Point P,
float  u1,
float  u2,
float  u3,
Vector wo,
float *  pdf,
VisibilityTester visibility 
) const [virtual]

Member Data Documentation

float lux::SunLight::cosThetaMax [private]

Definition at line 74 of file sun.h.

Referenced by IsDeltaLight(), Le(), Pdf(), Power(), Sample_L(), and SunLight().

Definition at line 75 of file sun.h.

Referenced by Le(), Power(), Sample_L(), SunLight(), and ~SunLight().

float lux::SunLight::phiS [private]

Definition at line 73 of file sun.h.

Referenced by SunLight().

float lux::SunLight::sin2ThetaMax [private]

Definition at line 74 of file sun.h.

Referenced by Le(), Sample_L(), and SunLight().

Definition at line 69 of file sun.h.

Referenced by CreateLight(), Le(), Sample_L(), and SunLight().

float lux::SunLight::thetaS [private]

Definition at line 73 of file sun.h.

Referenced by SunLight().

float lux::SunLight::turbidity [private]

Definition at line 72 of file sun.h.

Referenced by SunLight().

float lux::SunLight::V [private]

Definition at line 73 of file sun.h.

Definition at line 71 of file sun.h.

Referenced by Le(), Sample_L(), and SunLight().

Definition at line 71 of file sun.h.

Referenced by Le(), Sample_L(), and SunLight().


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