Abstract continous spectral power distribution data type, which supports evaluation at arbitrary wavelengths. More...
#include <mitsuba/core/spectrum.h>
Public Member Functions | |
virtual Float | eval (Float lambda) const =0 |
virtual Float | average (Float lambdaMin, Float lambdaMax) const |
Integrate the spectral power distribution over a given interval and return the average value. More... | |
virtual std::string | toString () const =0 |
Return a string representation. More... | |
virtual | ~ContinuousSpectrum () |
Virtual destructor. More... | |
Abstract continous spectral power distribution data type, which supports evaluation at arbitrary wavelengths.
Here, the term 'continous' doesn't necessarily mean that the underlying spectrum is continous, but rather emphasizes the fact that it is a function over the reals (as opposed to the discrete spectrum, which only stores samples for a discrete set of wavelengths).
|
inlinevirtual |
Virtual destructor.
|
virtual |
Integrate the spectral power distribution over a given interval and return the average value.
Unless overridden in a subclass, the integration is done using adaptive Gauss-Lobatto quadrature.
lambdaMin | The lower interval bound in nanometers |
lambdaMax | The upper interval bound in nanometers |
lambdaMin
>= lambdaMax
, the implementation will return zero. Reimplemented in mitsuba::InterpolatedSpectrum.
Evaluate the value of the spectral power distribution at the given wavelength.
lambda | A wavelength in nanometers |
Implemented in mitsuba::InterpolatedSpectrum, mitsuba::ProductSpectrum, mitsuba::RayleighSpectrum, and mitsuba::BlackBodySpectrum.
|
pure virtual |
Return a string representation.
Implemented in mitsuba::InterpolatedSpectrum, mitsuba::ProductSpectrum, mitsuba::RayleighSpectrum, and mitsuba::BlackBodySpectrum.