Struct palette::Hsv[][src]

#[repr(C)]
pub struct Hsv<S = Srgb, T = f32> where
    T: FloatComponent,
    S: RgbStandard
{ pub hue: RgbHue<T>, pub saturation: T, pub value: T, pub standard: PhantomData<S>, }

HSV color space.

HSV is a cylindrical version of RGB and it’s very similar to HSL. The difference is that the value component in HSV determines the brightness of the color, and not the lightness. The difference is that, for example, red (100% R, 0% G, 0% B) and white (100% R, 100% G, 100% B) has the same brightness (or value), but not the same lightness.

Fields

hue: RgbHue<T>

The hue of the color, in degrees. Decides if it’s red, blue, purple, etc.

saturation: T

The colorfulness of the color. 0.0 gives gray scale colors and 1.0 will give absolutely clear colors.

value: T

Decides how bright the color will look. 0.0 will be black, and 1.0 will give a bright an clear color that goes towards white when saturation goes towards 0.0.

standard: PhantomData<S>

The white point and RGB primaries this color is adapted to. The default is the sRGB standard.

Implementations

impl<T> Hsv<Srgb, T> where
    T: FloatComponent
[src]

pub fn new<H: Into<RgbHue<T>>>(hue: H, saturation: T, value: T) -> Hsv<Srgb, T>[src]

HSV for linear sRGB.

impl<S, T> Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

pub fn with_wp<H: Into<RgbHue<T>>>(hue: H, saturation: T, value: T) -> Hsv<S, T>[src]

Linear HSV.

pub fn into_components(self) -> (RgbHue<T>, T, T)[src]

Convert to a (hue, saturation, value) tuple.

pub fn from_components<H: Into<RgbHue<T>>>(
    (hue, saturation, value): (H, T, T)
) -> Self
[src]

Convert from a (hue, saturation, value) tuple.

pub fn min_saturation() -> T[src]

Return the saturation value minimum.

pub fn max_saturation() -> T[src]

Return the saturation value maximum.

pub fn min_value() -> T[src]

Return the value value minimum.

pub fn max_value() -> T[src]

Return the value value maximum.

Trait Implementations

impl<S, T> AbsDiffEq<Hsv<S, T>> for Hsv<S, T> where
    T: FloatComponent + AbsDiffEq,
    T::Epsilon: Copy + Float + FromF64,
    S: RgbStandard + PartialEq
[src]

type Epsilon = T::Epsilon

Used for specifying relative comparisons.

impl<S, T> Add<Hsv<S, T>> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

type Output = Hsv<S, T>

The resulting type after applying the + operator.

impl<S, T> Add<T> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

type Output = Hsv<S, T>

The resulting type after applying the + operator.

impl<S, T> AddAssign<Hsv<S, T>> for Hsv<S, T> where
    T: FloatComponent + AddAssign,
    S: RgbStandard
[src]

impl<S, T> AddAssign<T> for Hsv<S, T> where
    T: FloatComponent + AddAssign,
    S: RgbStandard
[src]

impl<S, T, P: ?Sized> AsMut<P> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    P: RawPixel<T>, 
[src]

impl<S, T, P: ?Sized> AsRef<P> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    P: RawPixel<T>, 
[src]

impl<S, T> Clamp for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S, T> Clone for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S: Debug, T: Debug> Debug for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S, T> Default for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S: RgbStandard, T: FloatComponent, H: Into<RgbHue<T>>> From<(H, T, T)> for Hsv<S, T>[src]

impl<S, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    _C: IntoColorUnclamped<Self>,
    _A: Component
[src]

impl<S, T> FromColorUnclamped<Hsl<S, T>> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S, T> FromColorUnclamped<Hsluv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent
[src]

impl<S, T> FromColorUnclamped<Hsv<S, T>> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S, T> FromColorUnclamped<Hsv<S, T>> for Hwb<S, T> where
    S: RgbStandard,
    T: FloatComponent
[src]

impl<S, T> FromColorUnclamped<Hsv<S, T>> for Rgb<S, T> where
    S: RgbStandard,
    T: FloatComponent
[src]

impl<S1, S2, T> FromColorUnclamped<Hsv<S1, T>> for Hsv<S2, T> where
    T: FloatComponent,
    S1: RgbStandard,
    S2: RgbStandard,
    S1::Space: RgbSpace<WhitePoint = <S2::Space as RgbSpace>::WhitePoint>, 
[src]

impl<Wp, T, _S> FromColorUnclamped<Hsv<_S, T>> for Hsluv<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    _S: RgbStandard,
    _S::Space: RgbSpace<WhitePoint = Wp>, 
[src]

impl<Wp, T, _S> FromColorUnclamped<Hsv<_S, T>> for Lab<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    _S: RgbStandard,
    _S::Space: RgbSpace<WhitePoint = Wp>, 
[src]

impl<Wp, T, _S> FromColorUnclamped<Hsv<_S, T>> for Lch<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    _S: RgbStandard,
    _S::Space: RgbSpace<WhitePoint = Wp>, 
[src]

impl<Wp, T, _S> FromColorUnclamped<Hsv<_S, T>> for Lchuv<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    _S: RgbStandard,
    _S::Space: RgbSpace<WhitePoint = Wp>, 
[src]

impl<S, T, _S> FromColorUnclamped<Hsv<_S, T>> for Luma<S, T> where
    T: Component,
    S: LumaStandard,
    T: FloatComponent,
    T: FloatComponent,
    _S: RgbStandard,
    _S::Space: RgbSpace<WhitePoint = S::WhitePoint>, 
[src]

impl<Wp, T, _S> FromColorUnclamped<Hsv<_S, T>> for Luv<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    _S: RgbStandard,
    _S::Space: RgbSpace<WhitePoint = Wp>, 
[src]

impl<Wp, T, _S> FromColorUnclamped<Hsv<_S, T>> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    _S: RgbStandard,
    _S::Space: RgbSpace<WhitePoint = Wp>, 
[src]

impl<Wp, T, _S> FromColorUnclamped<Hsv<_S, T>> for Yxy<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    _S: RgbStandard,
    _S::Space: RgbSpace<WhitePoint = Wp>, 
[src]

impl<S, T> FromColorUnclamped<Hwb<S, T>> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S, T> FromColorUnclamped<Lab<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent
[src]

impl<S, T> FromColorUnclamped<Lch<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent
[src]

impl<S, T> FromColorUnclamped<Lchuv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent
[src]

impl<S, T, _S> FromColorUnclamped<Luma<_S, T>> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent,
    _S: LumaStandard<WhitePoint = <S::Space as RgbSpace>::WhitePoint>, 
[src]

impl<S, T> FromColorUnclamped<Luv<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent
[src]

impl<S, T> FromColorUnclamped<Rgb<S, T>> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent
[src]

impl<S, T> FromColorUnclamped<Yxy<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent
[src]

impl<S, T> GetHue for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

type Hue = RgbHue<T>

The kind of hue unit this color space uses. Read more

impl<S, T> Hue for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S: RgbStandard, T: FloatComponent> Into<(RgbHue<T>, T, T)> for Hsv<S, T>[src]

impl<S, T> Mix for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

type Scalar = T

The type of the mixing factor.

impl<S, T> PartialEq<Hsv<S, T>> for Hsv<S, T> where
    T: FloatComponent + PartialEq,
    S: RgbStandard
[src]

impl<S, T> Pixel<T> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S, T> RelativeContrast for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

type Scalar = T

The type of the contrast ratio.

impl<S, T> RelativeEq<Hsv<S, T>> for Hsv<S, T> where
    T: FloatComponent + RelativeEq,
    T::Epsilon: Copy + Float + FromF64,
    S: RgbStandard + PartialEq
[src]

impl<S, T> Saturate for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

type Scalar = T

The type of the (de)saturation modifier.

impl<S, T> Shade for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

type Scalar = T

The type of the lighten/darken modifier.

impl<S, T> Sub<Hsv<S, T>> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

type Output = Hsv<S, T>

The resulting type after applying the - operator.

impl<S, T> Sub<T> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

type Output = Hsv<S, T>

The resulting type after applying the - operator.

impl<S, T> SubAssign<Hsv<S, T>> for Hsv<S, T> where
    T: FloatComponent + SubAssign,
    S: RgbStandard
[src]

impl<S, T> SubAssign<T> for Hsv<S, T> where
    T: FloatComponent + SubAssign,
    S: RgbStandard
[src]

impl<S, T> UlpsEq<Hsv<S, T>> for Hsv<S, T> where
    T: FloatComponent + UlpsEq,
    T::Epsilon: Copy + Float + FromF64,
    S: RgbStandard + PartialEq
[src]

impl<S, T, _A> WithAlpha<_A> for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    _A: Component
[src]

type Color = Self

The opaque color type, without any transparency. Read more

type WithAlpha = Alpha<Self, _A>

The color type with transparency applied. Read more

impl<S, T> Copy for Hsv<S, T> where
    T: FloatComponent,
    S: RgbStandard
[src]

impl<S, T> Eq for Hsv<S, T> where
    T: FloatComponent + Eq,
    S: RgbStandard
[src]

Auto Trait Implementations

impl<S, T> RefUnwindSafe for Hsv<S, T> where
    S: RefUnwindSafe,
    T: RefUnwindSafe

impl<S, T> Send for Hsv<S, T> where
    S: Send,
    T: Send

impl<S, T> Sync for Hsv<S, T> where
    S: Sync,
    T: Sync

impl<S, T> Unpin for Hsv<S, T> where
    S: Unpin,
    T: Unpin

impl<S, T> UnwindSafe for Hsv<S, T> where
    S: UnwindSafe,
    T: UnwindSafe

Blanket Implementations

impl<S, D, Swp, Dwp, T> AdaptFrom<S, Swp, Dwp, T> for D where
    T: FloatComponent,
    S: IntoColorUnclamped<Xyz<Swp, T>>,
    Swp: WhitePoint,
    Dwp: WhitePoint,
    D: FromColorUnclamped<Xyz<Dwp, T>>, 
[src]

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S where
    T: FloatComponent,
    Swp: WhitePoint,
    Dwp: WhitePoint,
    D: AdaptFrom<S, Swp, Dwp, T>, 
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> FromColor<T> for U where
    U: FromColorUnclamped<T> + Clamp
[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> IntoColor<U> for T where
    U: FromColor<T>, 
[src]

impl<T, U> IntoColorUnclamped<U> for T where
    U: FromColorUnclamped<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryFromColor<T> for U where
    U: FromColorUnclamped<T> + Clamp
[src]

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T, U> TryIntoColor<U> for T where
    U: TryFromColor<T>, 
[src]