pub trait Illuminant: 'static {
const WHITE_POINT_XY: [f32; 2];
const WHITE_POINT_XYZ: [f32; 3];
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct D65;
impl Illuminant for D65 {
const WHITE_POINT_XY: [f32; 2] = [0.3127, 0.3290];
const WHITE_POINT_XYZ: [f32; 3] = [0.95047, 1.00000, 1.08883];
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct D60;
impl Illuminant for D60 {
const WHITE_POINT_XY: [f32; 2] = [0.32163, 0.33774];
const WHITE_POINT_XYZ: [f32; 3] = [0.95230, 1.00000, 1.00856];
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct D50;
impl Illuminant for D50 {
const WHITE_POINT_XY: [f32; 2] = [0.3457, 0.3585];
const WHITE_POINT_XYZ: [f32; 3] = [0.96422, 1.00000, 0.82521];
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct DciWhite;
impl Illuminant for DciWhite {
const WHITE_POINT_XY: [f32; 2] = [0.3140, 0.3510];
const WHITE_POINT_XYZ: [f32; 3] = [0.89459, 1.00000, 0.95442];
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct AcesWhitePoint;
impl Illuminant for AcesWhitePoint {
const WHITE_POINT_XY: [f32; 2] = [0.32168, 0.33767];
const WHITE_POINT_XYZ: [f32; 3] = [0.95265, 1.00000, 1.00883];
}