Trait nannou::color::GetHue

source ·
pub trait GetHue {
    type Hue;

    // Required method
    fn get_hue(&self) -> Option<Self::Hue>;
}
Expand description

A trait for colors where a hue may be calculated.

use palette::{GetHue, LinSrgb};

let red = LinSrgb::new(1.0f32, 0.0, 0.0);
let green = LinSrgb::new(0.0f32, 1.0, 0.0);
let blue = LinSrgb::new(0.0f32, 0.0, 1.0);
let gray = LinSrgb::new(0.5f32, 0.5, 0.5);

assert_eq!(red.get_hue(), Some(0.0.into()));
assert_eq!(green.get_hue(), Some(120.0.into()));
assert_eq!(blue.get_hue(), Some(240.0.into()));
assert_eq!(gray.get_hue(), None);

Required Associated Types§

source

type Hue

The kind of hue unit this color space uses.

The hue is most commonly calculated as an angle around a color circle and may not always be uniform between color spaces. It’s therefore not recommended to take one type of hue and apply it to a color space that expects an other.

Required Methods§

source

fn get_hue(&self) -> Option<Self::Hue>

Calculate a hue if possible.

Colors in the gray scale has no well defined hue and should preferably return None.

Implementors§

source§

impl<C, T> GetHue for Alpha<C, T>
where C: GetHue,

§

type Hue = <C as GetHue>::Hue

source§

impl<S, T> GetHue for Rgb<S, T>
where S: RgbStandard<TransferFn = LinearFn>, T: Component + Float,

§

type Hue = RgbHue<T>

source§

impl<S, T> GetHue for Hsl<S, T>
where T: Component + Float, S: RgbSpace,

§

type Hue = RgbHue<T>

source§

impl<S, T> GetHue for Hsv<S, T>
where T: Component + Float, S: RgbSpace,

§

type Hue = RgbHue<T>

source§

impl<S, T> GetHue for Hwb<S, T>
where T: Component + Float, S: RgbSpace,

§

type Hue = RgbHue<T>

source§

impl<Wp, T> GetHue for Lab<Wp, T>
where T: Component + Float, Wp: WhitePoint,

§

type Hue = LabHue<T>

source§

impl<Wp, T> GetHue for Lch<Wp, T>
where T: Component + Float, Wp: WhitePoint,

§

type Hue = LabHue<T>