org.sunflow.image

## Class SpectralCurve

- java.lang.Object
- - org.sunflow.image.SpectralCurve

- Direct Known Subclasses:
    BlackbodySpectrum, ChromaticitySpectrum, ConstantSpectralCurve, IrregularSpectralCurve, RegularSpectralCurve

      public abstract class SpectralCurve
      extends java.lang.Object

  This class is an abstract interface to sampled or analytic spectral data.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SpectralCurve()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract float` | `sample(float lambda)` This function determines the actual spectral curve data.
    `XYZColor` | `toXYZ()` Convert this curve to a tristimulus CIE XYZ color by integrating against the CIE color matching functions.

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

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

- - ### Constructor Detail

    - #### SpectralCurve

          public SpectralCurve()

  - ### Method Detail

    - #### sample

          public abstract float sample(float lambda)

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

    - #### toXYZ

          public final XYZColor toXYZ()

      Convert this curve to a tristimulus CIE XYZ color by integrating against the CIE color matching functions.
      Returns:
        XYZColor that represents this spectra