org.sunflow.image

Class IrregularSpectralCurve


public class IrregularSpectralCurve
extends SpectralCurve

This class allows spectral curves to be defined from irregularly sampled data. Note that the wavelength array is assumed to be sorted low to high. Any values beyond the defined range will simply be extended to infinity from the end points. Points inside the valid range will be linearly interpolated between the two nearest samples. No explicit error checking is performed, but this class will run into ArrayIndexOutOfBoundsExceptions if the array lengths don't match.

Constructor Summary

IrregularSpectralCurve(float[] wavelengths, float[] amplitudes)
Define an irregular spectral curve from the provided (sorted) wavelengths and amplitude data.

Method Summary

float
sample(float lambda)
This function determines the actual spectral curve data.

Methods inherited from class org.sunflow.image.SpectralCurve

sample, toXYZ

Constructor Details

IrregularSpectralCurve

public IrregularSpectralCurve(float[] wavelengths,
                              float[] amplitudes)
Define an irregular spectral curve from the provided (sorted) wavelengths and amplitude data. The wavelength array is assumed to contain values in nanometers. Array lengths must match.
Parameters:
wavelengths - sampled wavelengths in nm
amplitudes - amplitude of the curve at the sampled points

Method Details

sample

public float sample(float lambda)
This function determines the actual spectral curve data. Note that the lambda parameter is assumed to be in nanometers.
Overrides:
sample in interface SpectralCurve
Parameters:
lambda - wavelength to sample in nanometers
Returns:
the value of the spectral curve at this point