#include <spd.h>
Public Member Functions | |
SPD () | |
virtual | ~SPD () |
float | sample (const float lambda) const |
void | sample (u_int n, const float lambda[], float *p) const |
float | Y () const |
XYZColor | ToXYZ () const |
void | AllocateSamples (int n) |
void | FreeSamples () |
void | Normalize () |
void | Clamp () |
void | Scale (float s) |
void | Whitepoint (float temp) |
Protected Attributes | |
int | nSamples |
float | lambdaMin |
float | lambdaMax |
float | delta |
float | invDelta |
float * | samples |
Definition at line 30 of file spd.h.
lux::SPD::SPD | ( | ) | [inline] |
virtual lux::SPD::~SPD | ( | ) | [inline, virtual] |
Definition at line 37 of file spd.h.
References FreeSamples().
void SPD::AllocateSamples | ( | int | n | ) |
Definition at line 32 of file spd.cpp.
References samples.
Referenced by lux::RGBReflSPD::init(), lux::RGBIllumSPD::init(), lux::RegularSPD::init(), lux::IrregularSPD::init(), lux::GaussianSPD::init(), lux::FrequencySPD::init(), lux::EqualSPD::init(), and lux::BlackbodySPD::init().
void SPD::Clamp | ( | ) |
Definition at line 56 of file spd.cpp.
References nSamples, and samples.
Referenced by lux::RGBReflSPD::init(), lux::RGBIllumSPD::init(), lux::GaussianSPD::init(), lux::FrequencySPD::init(), lux::EqualSPD::init(), and lux::BlackbodySPD::init().
void SPD::FreeSamples | ( | ) |
Definition at line 37 of file spd.cpp.
References lux::FreeAligned(), and samples.
Referenced by ~SPD().
void SPD::Normalize | ( | ) |
Definition at line 43 of file spd.cpp.
References cimg_library::cimg::max(), nSamples, and samples.
Referenced by lux::BlackbodySPD::init().
void lux::SPD::sample | ( | u_int | n, | |
const float | lambda[], | |||
float * | p | |||
) | const [inline] |
Definition at line 52 of file spd.h.
References Floor2Int(), invDelta, lambdaMax, lambdaMin, Lerp(), cimg_library::cimg::min(), nSamples, and samples.
float lux::SPD::sample | ( | const float | lambda | ) | const [inline] |
Definition at line 40 of file spd.h.
References Floor2Int(), invDelta, lambdaMax, lambdaMin, Lerp(), cimg_library::cimg::min(), nSamples, and samples.
Referenced by lux::SkyLight::ChromaticityToSpectrum(), lux::SpectrumWavelengths::Sample(), lux::SunLight::SunLight(), lux::SWCSpectrum::SWCSpectrum(), ToXYZ(), and Y().
void SPD::Scale | ( | float | s | ) |
Definition at line 63 of file spd.cpp.
References nSamples, and samples.
Referenced by lux::RGBReflSPD::init(), lux::RGBIllumSPD::init(), lux::GaussianSpectrumTexture< T >::SetPower(), lux::FrequencySpectrumTexture< T >::SetPower(), lux::ConstantRGBColorTexture< T >::SetPower(), lux::BlackBodySpectrumTexture< T >::SetPower(), lux::SpectrumWavelengths::SpectrumWavelengths(), and lux::SunLight::SunLight().
XYZColor SPD::ToXYZ | ( | ) | const |
Definition at line 102 of file spd.cpp.
References lux::Color::c, lux::CIE_X, lux::CIE_Y, lux::CIE_Z, lux::CIEstart, lux::nCIE, and sample().
void SPD::Whitepoint | ( | float | temp | ) |
float SPD::Y | ( | ) | const |
Definition at line 95 of file spd.cpp.
References lux::CIE_Y, lux::CIEstart, lux::nCIE, and sample().
Referenced by lux::GaussianSpectrumTexture< T >::SetPower(), lux::FrequencySpectrumTexture< T >::SetPower(), lux::ConstantRGBColorTexture< T >::SetPower(), and lux::BlackBodySpectrumTexture< T >::SetPower().
float lux::SPD::delta [protected] |
Definition at line 81 of file spd.h.
Referenced by lux::RGBReflSPD::init(), lux::RGBIllumSPD::init(), lux::RegularSPD::init(), lux::IrregularSPD::init(), lux::GaussianSPD::init(), lux::FrequencySPD::init(), lux::EqualSPD::init(), lux::BlackbodySPD::init(), SPD(), and Whitepoint().
float lux::SPD::invDelta [protected] |
Definition at line 81 of file spd.h.
Referenced by lux::RGBReflSPD::init(), lux::RGBIllumSPD::init(), lux::RegularSPD::init(), lux::IrregularSPD::init(), lux::GaussianSPD::init(), lux::FrequencySPD::init(), lux::EqualSPD::init(), lux::BlackbodySPD::init(), sample(), and SPD().
float lux::SPD::lambdaMax [protected] |
Definition at line 80 of file spd.h.
Referenced by lux::RGBReflSPD::init(), lux::RGBIllumSPD::init(), lux::RegularSPD::init(), lux::IrregularSPD::init(), lux::GaussianSPD::init(), lux::FrequencySPD::init(), lux::EqualSPD::init(), lux::BlackbodySPD::init(), lux::IrregularSPD::IrregularSPD(), sample(), and SPD().
float lux::SPD::lambdaMin [protected] |
Definition at line 80 of file spd.h.
Referenced by lux::RGBReflSPD::init(), lux::RGBIllumSPD::init(), lux::RegularSPD::init(), lux::IrregularSPD::init(), lux::GaussianSPD::init(), lux::FrequencySPD::init(), lux::EqualSPD::init(), lux::BlackbodySPD::init(), lux::IrregularSPD::IrregularSPD(), sample(), SPD(), and Whitepoint().
int lux::SPD::nSamples [protected] |
Definition at line 79 of file spd.h.
Referenced by lux::RGBReflSPD::AddWeighted(), lux::RGBIllumSPD::AddWeighted(), Clamp(), lux::RGBReflSPD::init(), lux::RGBIllumSPD::init(), lux::RegularSPD::init(), lux::IrregularSPD::init(), lux::GaussianSPD::init(), lux::FrequencySPD::init(), lux::EqualSPD::init(), lux::BlackbodySPD::init(), Normalize(), sample(), Scale(), SPD(), and Whitepoint().
float* lux::SPD::samples [protected] |
Definition at line 82 of file spd.h.
Referenced by lux::RGBReflSPD::AddWeighted(), lux::RGBIllumSPD::AddWeighted(), AllocateSamples(), Clamp(), FreeSamples(), lux::RGBReflSPD::init(), lux::RGBIllumSPD::init(), lux::RegularSPD::init(), lux::IrregularSPD::init(), lux::GaussianSPD::init(), lux::FrequencySPD::init(), lux::EqualSPD::init(), lux::BlackbodySPD::init(), Normalize(), sample(), Scale(), SPD(), and Whitepoint().