diff --git a/src/colour/colour_xyz.rs b/src/colour/colour_xyz.rs index b6ded3d..50829c8 100644 --- a/src/colour/colour_xyz.rs +++ b/src/colour/colour_xyz.rs @@ -1,6 +1,6 @@ use crate::math::{Mat3, Vec3}; -use super::ColourRgbF; +use super::{ColourRgbF, Photon}; /// A CIE XYZ Colour Value #[derive(Clone, Debug, Default, PartialEq)] @@ -28,6 +28,12 @@ impl ColourXyz { ColourXyz { values } } + pub fn from_photon(photon: &Photon) -> ColourXyz { + let mut result = Self::for_wavelength(photon.wavelength); + result.values *= photon.intensity; + result + } + pub fn x(&self) -> f64 { self.values.x() }