use super::Cielch;
use crate::{
Cielab,
Ciexyz,
Srgb,
};
impl From<Cielab> for Cielch {
fn from(cielab: Cielab) -> Self {
let l = cielab.lightness();
let a = cielab.a();
let b = cielab.b();
let c = f32::sqrt(a * a + b * b);
let h = f32::atan2(b, a);
Self(l, c, h)
}
}
impl From<Ciexyz> for Cielch {
fn from(ciexyz: Ciexyz) -> Self {
let cielab: Cielab = ciexyz.into();
Self::from(cielab)
}
}
impl From<Srgb> for Cielch {
fn from(srgb: Srgb) -> Self {
let cielab: Cielab = srgb.into();
Self::from(cielab)
}
}