[][src]Struct amethyst_rendy::palette::Hsl

#[repr(C)]
pub struct Hsl<S = Srgb, T = f32> where
    S: RgbSpace,
    T: Component + Float
{ pub hue: RgbHue<T>, pub saturation: T, pub lightness: T, pub space: PhantomData<S>, }

Linear HSL color space.

The HSL color space can be seen as a cylindrical version of RGB, where the hue is the angle around the color cylinder, the saturation is the distance from the center, and the lightness is the height from the bottom. Its composition makes it especially good for operations like changing green to red, making a color more gray, or making it darker.

See HSV for a very similar color space, with brightness instead of 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.

lightness: T

Decides how light the color will look. 0.0 will be black, 0.5 will give a clear color, and 1.0 will give white.

space: PhantomData<S>

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

Methods

impl<T> Hsl<Srgb, T> where
    T: Component + Float
[src]

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

HSL for linear sRGB.

impl<S, T> Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

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

Linear HSL.

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

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

pub fn from_components<H>((H, T, T)) -> Hsl<S, T> where
    H: Into<RgbHue<T>>, 
[src]

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

Trait Implementations

impl<S, T> Default for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> Copy for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> Pixel<T> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

fn as_raw<P>(&self) -> &P where
    P: RawPixel<T> + ?Sized
[src]

Cast as a reference to raw color components.

fn as_raw_mut<P>(&mut self) -> &mut P where
    P: RawPixel<T> + ?Sized
[src]

Cast as a mutable reference to raw color components.

fn into_raw<P>(self) -> P where
    P: RawPixelSized<T>, 
[src]

Convert from raw color components.

fn from_raw<P>(pixel: &P) -> &Self where
    P: RawPixel<T> + ?Sized
[src]

Cast from a reference to raw color components.

fn from_raw_mut<P>(pixel: &mut P) -> &mut Self where
    P: RawPixel<T> + ?Sized
[src]

Cast from a mutable reference to raw color components.

Important traits for &'_ [u8]
fn from_raw_slice(slice: &[T]) -> &[Self][src]

Cast a slice of raw color components to a slice of colors. Read more

Important traits for &'_ [u8]
fn from_raw_slice_mut(slice: &mut [T]) -> &mut [Self][src]

Cast a mutable slice of raw color components to a mutable slice of colors. Read more

Important traits for &'_ [u8]
fn into_raw_slice(slice: &[Self]) -> &[T][src]

Cast a slice of colors to a slice of raw color components. Read more

Important traits for &'_ [u8]
fn into_raw_slice_mut(slice: &mut [Self]) -> &mut [T][src]

Cast a mutable slice of colors to a mutable slice of raw color components. Read more

impl<S, T> Clone for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl<'de, S, T> Deserialize<'de> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float + Deserialize<'de>, 
[src]

impl<S, T> PartialEq<Hsl<S, T>> for Hsl<S, T> where
    S: PartialEq<S> + RgbSpace,
    T: PartialEq<T> + Component + Float
[src]

impl<S, T> Add<Hsl<S, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

type Output = Hsl<S, T>

The resulting type after applying the + operator.

impl<S, T> Add<T> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

type Output = Hsl<S, T>

The resulting type after applying the + operator.

impl<S, T> Limited for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T, P> AsMut<P> for Hsl<S, T> where
    P: RawPixel<T> + ?Sized,
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> FromColor<<S as RgbSpace>::WhitePoint, T> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

fn from_yxy(inp: Yxy<Wp, T>) -> Self[src]

Convert from Yxy color space

fn from_lab(inp: Lab<Wp, T>) -> Self[src]

Convert from Lab* color space

fn from_lch(inp: Lch<Wp, T>) -> Self[src]

Convert from LCh° color space

fn from_hwb<S>(inp: Hwb<S, T>) -> Self where
    S: RgbSpace<WhitePoint = Wp>, 
[src]

Convert from HWB color space

fn from_luma(inp: Luma<Linear<Wp>, T>) -> Self[src]

Convert from Luma

impl<S, T> Saturate for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

type Scalar = T

The type of the (de)saturation factor.

fn desaturate(&self, factor: Self::Scalar) -> Self[src]

Decrease the saturation by factor.

impl<S, T> Sub<T> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

type Output = Hsl<S, T>

The resulting type after applying the - operator.

impl<S, T> Sub<Hsl<S, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

type Output = Hsl<S, T>

The resulting type after applying the - operator.

impl<S, Wp, T> IntoColor<Wp, T> for Hsl<S, T> where
    S: RgbSpace<WhitePoint = Wp>,
    T: Component + Float,
    Wp: WhitePoint
[src]

fn into_hwb<S>(self) -> Hwb<S, T> where
    S: RgbSpace<WhitePoint = Wp>, 
[src]

Convert into HWB color space

impl<S, T> Mix for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

type Scalar = T

The type of the mixing factor.

impl<S, T> Into<(RgbHue<T>, T, T)> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> ApproxEq for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float + ApproxEq,
    <T as ApproxEq>::Epsilon: Copy,
    <T as ApproxEq>::Epsilon: Float
[src]

type Epsilon = <T as ApproxEq>::Epsilon

Used for specifying relative comparisons.

fn relative_ne(
    &self,
    other: &Self,
    epsilon: Self::Epsilon,
    max_relative: Self::Epsilon
) -> bool
[src]

The inverse of ApproxEq::relative_eq.

fn ulps_ne(&self, other: &Self, epsilon: Self::Epsilon, max_ulps: u32) -> bool[src]

The inverse of ApproxEq::ulps_eq.

impl<S, T, P> AsRef<P> for Hsl<S, T> where
    P: RawPixel<T> + ?Sized,
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> Debug for Hsl<S, T> where
    S: Debug + RgbSpace,
    T: Debug + Component + Float
[src]

impl<Wp, T, _S> From<Hsl<_S, T>> for Alpha<Xyz<Wp, T>, T> where
    T: Component + Float,
    Wp: WhitePoint,
    _S: RgbSpace<WhitePoint = Wp>, 
[src]

impl<S, T> From<Alpha<Lab<<S as RgbSpace>::WhitePoint, T>, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T, Sp, Wp> From<Hsl<Sp, T>> for Rgb<S, T> where
    S: RgbStandard,
    Sp: RgbSpace<WhitePoint = Wp>,
    T: Component + Float,
    Wp: WhitePoint,
    <S as RgbStandard>::Space: RgbSpace,
    <<S as RgbStandard>::Space as RgbSpace>::WhitePoint == Wp, 
[src]

impl<S, T> From<Lch<<S as RgbSpace>::WhitePoint, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> From<Hsl<S, T>> for Color<S, T> where
    S: RgbSpace,
    T: Float + Component
[src]

impl<S, T> From<Alpha<Hsv<S, T>, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> From<Alpha<Xyz<<S as RgbSpace>::WhitePoint, T>, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T, _S> From<Hsl<_S, T>> for Alpha<Luma<S, T>, T> where
    S: LumaStandard,
    T: Component + Float,
    _S: RgbSpace<WhitePoint = <S as LumaStandard>::WhitePoint>, 
[src]

impl<S, T, _S> From<Luma<_S, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float,
    _S: LumaStandard<WhitePoint = <S as RgbSpace>::WhitePoint>, 
[src]

impl<S, T> From<Alpha<Color<S, T>, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> From<Alpha<Lch<<S as RgbSpace>::WhitePoint, T>, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T, H> From<(H, T, T)> for Hsl<S, T> where
    H: Into<RgbHue<T>>,
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T, _S> From<Rgb<_S, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float,
    _S: RgbStandard<Space = S>, 
[src]

impl<Wp, T, _S> From<Hsl<_S, T>> for Alpha<Lch<Wp, T>, T> where
    T: Component + Float,
    Wp: WhitePoint,
    _S: RgbSpace<WhitePoint = Wp>, 
[src]

impl<S, T> From<Alpha<Hwb<S, T>, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<Wp, T, _S> From<Hsl<_S, T>> for Alpha<Lab<Wp, T>, T> where
    T: Component + Float,
    Wp: WhitePoint,
    _S: RgbSpace<WhitePoint = Wp>, 
[src]

impl<Wp, T, _S> From<Hsl<_S, T>> for Lab<Wp, T> where
    T: Component + Float,
    Wp: WhitePoint,
    _S: RgbSpace<WhitePoint = Wp>, 
[src]

impl<Wp, T, _S> From<Hsl<_S, T>> for Lch<Wp, T> where
    T: Component + Float,
    Wp: WhitePoint,
    _S: RgbSpace<WhitePoint = Wp>, 
[src]

impl<Wp, T, _S> From<Hsl<_S, T>> for Yxy<Wp, T> where
    T: Component + Float,
    Wp: WhitePoint,
    _S: RgbSpace<WhitePoint = Wp>, 
[src]

impl<S, T> From<Alpha<Yxy<<S as RgbSpace>::WhitePoint, T>, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> From<Alpha<Hsl<S, T>, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> From<Hsl<S, T>> for Alpha<Hwb<S, T>, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T, _S> From<Alpha<Luma<_S, T>, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float,
    _S: LumaStandard<WhitePoint = <S as RgbSpace>::WhitePoint>, 
[src]

impl<S, T> From<Hsl<<S as RgbStandard>::Space, T>> for Alpha<Rgb<S, T>, T> where
    S: RgbStandard,
    T: Component + Float
[src]

impl<S, T, _S> From<Hsl<_S, T>> for Luma<S, T> where
    S: LumaStandard,
    T: Component + Float,
    _S: RgbSpace<WhitePoint = <S as LumaStandard>::WhitePoint>, 
[src]

impl<S, Sp, T> From<Hsv<Sp, T>> for Hsl<S, T> where
    S: RgbSpace,
    Sp: RgbSpace<WhitePoint = <S as RgbSpace>::WhitePoint>,
    T: Component + Float
[src]

impl<Wp, T, _S> From<Hsl<_S, T>> for Xyz<Wp, T> where
    T: Component + Float,
    Wp: WhitePoint,
    _S: RgbSpace<WhitePoint = Wp>, 
[src]

impl<S, T> From<Lab<<S as RgbSpace>::WhitePoint, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> From<Xyz<<S as RgbSpace>::WhitePoint, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<Wp, T, _S> From<Hsl<_S, T>> for Alpha<Yxy<Wp, T>, T> where
    T: Component + Float,
    Wp: WhitePoint,
    _S: RgbSpace<WhitePoint = Wp>, 
[src]

impl<S, T> From<Hsl<S, T>> for Alpha<Hsv<S, T>, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, Sp, T> From<Hsl<Sp, T>> for Hsv<S, T> where
    S: RgbSpace,
    Sp: RgbSpace<WhitePoint = <S as RgbSpace>::WhitePoint>,
    T: Component + Float
[src]

impl<S, T> From<Hwb<S, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T, _S> From<Alpha<Rgb<_S, T>, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float,
    _S: RgbStandard<Space = S>, 
[src]

impl<S, T> From<Hsl<S, T>> for Hwb<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> From<Color<S, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> From<Yxy<<S as RgbSpace>::WhitePoint, T>> for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

impl<S, T> Shade for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

type Scalar = T

The type of the lighten/darken amount.

fn darken(&self, amount: Self::Scalar) -> Self[src]

Darken the color by amount.

impl<S, T> Serialize for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float + Serialize
[src]

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

type Hue = RgbHue<T>

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

impl<S, T> Hue for Hsl<S, T> where
    S: RgbSpace,
    T: Component + Float
[src]

Auto Trait Implementations

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

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

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

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

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

Blanket Implementations

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

type Owned = T

The resulting type after obtaining ownership.

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

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

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> 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> Borrow<T> for T where
    T: ?Sized
[src]

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

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

impl<S, D, Swp, Dwp, T> AdaptFrom<S, Swp, Dwp, T> for D where
    D: FromColor<Dwp, T>,
    Dwp: WhitePoint,
    S: IntoColor<Swp, T>,
    Swp: WhitePoint,
    T: Component + Float
[src]

fn adapt_from(color: S) -> Self[src]

Convert the source color to the destination color using the bradford method by default Read more

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

fn adapt_into(self) -> D[src]

Convert the source color to the destination color using the bradford method by default Read more

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]

impl<T> SetParameter for T[src]

fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
    T: Parameter<Self>, 
[src]

Sets value as a parameter of self.

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

impl<T> Erased for T[src]

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

impl<T> Scalar for T where
    T: Copy + PartialEq<T> + Any + Debug
[src]

fn is<T>() -> bool where
    T: Scalar
[src]

Tests if Self the same as the type T Read more

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

type Output = T

Should always be Self

impl<SS, SP> SupersetOf<SS> for SP where
    SS: SubsetOf<SP>, 
[src]

impl<T> Resource for T where
    T: Any + Send + Sync
[src]

impl<T> Any for T where
    T: Any
[src]

impl<T> TryDefault for T where
    T: Default
[src]

fn unwrap_default() -> Self[src]

Calls try_default and panics on an error case.

impl<T> Event for T where
    T: Send + Sync + 'static, 
[src]

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

impl<T> Config for T where
    T: Deserialize<'a> + Serialize + Default
[src]