Struct palette::Xyz[][src]

#[repr(C)]
pub struct Xyz<Wp = D65, T = f32> where
    T: FloatComponent,
    Wp: WhitePoint
{ pub x: T, pub y: T, pub z: T, pub white_point: PhantomData<Wp>, }

The CIE 1931 XYZ color space.

XYZ links the perceived colors to their wavelengths and simply makes it possible to describe the way we see colors as numbers. It’s often used when converting from one color space to an other, and requires a standard illuminant and a standard observer to be defined.

Conversions and operations on this color space depend on the defined white point

Fields

x: T

X is the scale of what can be seen as a response curve for the cone cells in the human eye. Its range depends on the white point and goes from 0.0 to 0.95047 for the default D65.

y: T

Y is the luminance of the color, where 0.0 is black and 1.0 is white.

z: T

Z is the scale of what can be seen as the blue stimulation. Its range depends on the white point and goes from 0.0 to 1.08883 for the default D65.

white_point: PhantomData<Wp>

The white point associated with the color’s illuminant and observer. D65 for 2 degree observer is used by default.

Implementations

impl<T> Xyz<D65, T> where
    T: FloatComponent
[src]

pub fn new(x: T, y: T, z: T) -> Xyz<D65, T>[src]

CIE XYZ with white point D65.

impl<Wp, T> Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

pub fn with_wp(x: T, y: T, z: T) -> Xyz<Wp, T>[src]

CIE XYZ.

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

Convert to a (X, Y, Z) tuple.

pub fn from_components((x, y, z): (T, T, T)) -> Self[src]

Convert from a (X, Y, Z) tuple.

pub fn min_x() -> T[src]

Return the x value minimum.

pub fn max_x() -> T[src]

Return the x value maximum.

pub fn min_y() -> T[src]

Return the y value minimum.

pub fn max_y() -> T[src]

Return the y value maximum.

pub fn min_z() -> T[src]

Return the z value minimum.

pub fn max_z() -> T[src]

Return the z value maximum.

Trait Implementations

impl<Wp, T> AbsDiffEq<Xyz<Wp, T>> for Xyz<Wp, T> where
    T: FloatComponent + AbsDiffEq,
    T::Epsilon: Copy + FloatComponent,
    Wp: WhitePoint + PartialEq
[src]

type Epsilon = T::Epsilon

Used for specifying relative comparisons.

impl<Wp, T> Add<T> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

type Output = Xyz<Wp, T>

The resulting type after applying the + operator.

impl<Wp, T> Add<Xyz<Wp, T>> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

type Output = Xyz<Wp, T>

The resulting type after applying the + operator.

impl<Wp, T> AddAssign<T> for Xyz<Wp, T> where
    T: FloatComponent + AddAssign,
    Wp: WhitePoint
[src]

impl<Wp, T> AddAssign<Xyz<Wp, T>> for Xyz<Wp, T> where
    T: FloatComponent + AddAssign,
    Wp: WhitePoint
[src]

impl<Wp, T, P: ?Sized> AsMut<P> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    P: RawPixel<T>, 
[src]

impl<Wp, T, P: ?Sized> AsRef<P> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    P: RawPixel<T>, 
[src]

impl<Wp, T> Clamp for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

impl<Wp, T> Clone for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

impl<Wp, T> ComponentWise for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

type Scalar = T

The scalar type for color components.

impl<Wp: Debug, T: Debug> Debug for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

impl<Wp, T> Default for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

impl<Wp, T> Div<T> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

type Output = Xyz<Wp, T>

The resulting type after applying the / operator.

impl<Wp, T> Div<Xyz<Wp, T>> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

type Output = Xyz<Wp, T>

The resulting type after applying the / operator.

impl<Wp, T> DivAssign<T> for Xyz<Wp, T> where
    T: FloatComponent + DivAssign,
    Wp: WhitePoint
[src]

impl<Wp, T> DivAssign<Xyz<Wp, T>> for Xyz<Wp, T> where
    T: FloatComponent + DivAssign,
    Wp: WhitePoint
[src]

impl<Wp: WhitePoint, T: FloatComponent> From<(T, T, T)> for Xyz<Wp, T>[src]

impl<Wp, T, _C, _A> FromColorUnclamped<Alpha<_C, _A>> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    _C: IntoColorUnclamped<Self>,
    _A: Component
[src]

impl<Wp, T, _S> FromColorUnclamped<Hsl<_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> FromColorUnclamped<Hsluv<Wp, T>> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent
[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<Hwb<_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> FromColorUnclamped<Lab<Wp, T>> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

impl<Wp, T> FromColorUnclamped<Lch<Wp, T>> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent
[src]

impl<Wp, T> FromColorUnclamped<Lchuv<Wp, T>> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent
[src]

impl<Wp, T, S> FromColorUnclamped<Luma<S, T>> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    S: LumaStandard<WhitePoint = Wp>, 
[src]

impl<Wp, T> FromColorUnclamped<Luv<Wp, T>> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

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

impl<S, T> FromColorUnclamped<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hsl<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent
[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<Xyz<<<S as RgbStandard>::Space as RgbSpace>::WhitePoint, T>> for Hwb<S, T> where
    T: FloatComponent,
    S: RgbStandard,
    T: FloatComponent,
    T: FloatComponent
[src]

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

impl<S, T> FromColorUnclamped<Xyz<<S as LumaStandard>::WhitePoint, T>> for Luma<S, T> where
    S: LumaStandard,
    T: FloatComponent
[src]

impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Hsluv<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent
[src]

impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Lab<Wp, T> where
    Wp: WhitePoint,
    T: FloatComponent
[src]

impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Lch<Wp, T> where
    Wp: WhitePoint,
    T: FloatComponent
[src]

impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Lchuv<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent,
    Wp: WhitePoint,
    T: FloatComponent
[src]

impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Luv<Wp, T> where
    Wp: WhitePoint,
    T: FloatComponent
[src]

impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Xyz<Wp, T> where
    Wp: WhitePoint,
    T: FloatComponent
[src]

impl<Wp, T> FromColorUnclamped<Xyz<Wp, T>> for Yxy<Wp, T> where
    Wp: WhitePoint,
    T: FloatComponent
[src]

impl<Wp, T> FromColorUnclamped<Yxy<Wp, T>> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

impl<Wp: WhitePoint, T: FloatComponent> Into<(T, T, T)> for Xyz<Wp, T>[src]

impl<Wp, T> Mix for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

type Scalar = T

The type of the mixing factor.

impl<Wp, T> Mul<T> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

type Output = Xyz<Wp, T>

The resulting type after applying the * operator.

impl<Wp, T> Mul<Xyz<Wp, T>> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

type Output = Xyz<Wp, T>

The resulting type after applying the * operator.

impl<Wp, T> MulAssign<T> for Xyz<Wp, T> where
    T: FloatComponent + MulAssign,
    Wp: WhitePoint
[src]

impl<Wp, T> MulAssign<Xyz<Wp, T>> for Xyz<Wp, T> where
    T: FloatComponent + MulAssign,
    Wp: WhitePoint
[src]

impl<Wp, T> PartialEq<Xyz<Wp, T>> for Xyz<Wp, T> where
    T: FloatComponent + PartialEq,
    Wp: WhitePoint
[src]

impl<Wp, T> Pixel<T> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

impl<Wp, T> RelativeContrast for Xyz<Wp, T> where
    Wp: WhitePoint,
    T: FloatComponent
[src]

type Scalar = T

The type of the contrast ratio.

impl<Wp, T> RelativeEq<Xyz<Wp, T>> for Xyz<Wp, T> where
    T: FloatComponent + RelativeEq,
    T::Epsilon: Copy + FloatComponent,
    Wp: WhitePoint + PartialEq
[src]

impl<Wp, T> Shade for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

type Scalar = T

The type of the lighten/darken modifier.

impl<Wp, T> Sub<T> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

type Output = Xyz<Wp, T>

The resulting type after applying the - operator.

impl<Wp, T> Sub<Xyz<Wp, T>> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

type Output = Xyz<Wp, T>

The resulting type after applying the - operator.

impl<Wp, T> SubAssign<T> for Xyz<Wp, T> where
    T: FloatComponent + SubAssign,
    Wp: WhitePoint
[src]

impl<Wp, T> SubAssign<Xyz<Wp, T>> for Xyz<Wp, T> where
    T: FloatComponent + SubAssign,
    Wp: WhitePoint
[src]

impl<Wp, T> UlpsEq<Xyz<Wp, T>> for Xyz<Wp, T> where
    T: FloatComponent + UlpsEq,
    T::Epsilon: Copy + FloatComponent,
    Wp: WhitePoint + PartialEq
[src]

impl<Wp, T, _A> WithAlpha<_A> for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint,
    _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<Wp, T> Copy for Xyz<Wp, T> where
    T: FloatComponent,
    Wp: WhitePoint
[src]

impl<Wp, T> Eq for Xyz<Wp, T> where
    T: FloatComponent + Eq,
    Wp: WhitePoint
[src]

Auto Trait Implementations

impl<Wp, T> RefUnwindSafe for Xyz<Wp, T> where
    T: RefUnwindSafe,
    Wp: RefUnwindSafe

impl<Wp, T> Send for Xyz<Wp, T> where
    T: Send,
    Wp: Send

impl<Wp, T> Sync for Xyz<Wp, T> where
    T: Sync,
    Wp: Sync

impl<Wp, T> Unpin for Xyz<Wp, T> where
    T: Unpin,
    Wp: Unpin

impl<Wp, T> UnwindSafe for Xyz<Wp, T> where
    T: UnwindSafe,
    Wp: 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]