org.sunflow.image

## Class IrregularSpectralCurve

- java.lang.Object
- - org.sunflow.image.SpectralCurve
  - - org.sunflow.image.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 `ArrayIndexOutOfBoundsException`s if the array lengths don't match.

- - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `float` | `sample(float lambda)` This function determines the actual spectral curve data.

    - ### Methods inherited from class org.sunflow.image.SpectralCurve

      `toXYZ`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### 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 Detail

    - #### sample

          public float sample(float lambda)

      Description copied from class: `SpectralCurve`
      This function determines the actual spectral curve data. Note that the lambda parameter is assumed to be in nanometers.
      Specified by:
        `sample` in class `SpectralCurve`
      Parameters:
        `lambda` - wavelength to sample in nanometers
      Returns:
        the value of the spectral curve at this point