# Struct palette::LabHue
[−]
[src]

pub struct LabHue<T: Float = f32>(_);

A hue type for the CIE L*a*b* family of color spaces.

It's measured in degrees and it's based on the four physiological
elementary colors *red*, *yellow*, *green* and *blue*. This makes it
different from the hue of RGB based color spaces.

The hue is a circular type, where `0`

and `360`

is the same, and
it's normalized to `(-180, 180]`

when it's converted to a linear
number (like `f32`

). This makes many calculations easier, but may
also have some surprising effects if it's expected to act as a
linear number.

## Methods

`impl<T: Float> LabHue<T>`

[src]

`fn from_radians(radians: T) -> LabHue<T>`

Create a new hue from radians, instead of degrees.

`fn to_degrees(self) -> T`

Get the hue as degrees, in the range `(-180, 180]`

.

`fn to_radians(self) -> T`

Convert the hue to radians, in the range `(-π, π]`

.

`fn to_positive_degrees(self) -> T`

Convert the hue to positive degrees, in the range `[0, 360)`

.

`fn to_positive_radians(self) -> T`

Convert the hue to positive radians, in the range `[0, 2π)`

.

## Trait Implementations

`impl<T: Clone + Float> Clone for LabHue<T>`

[src]

`fn clone(&self) -> LabHue<T>`

Returns a copy of the value. Read more

`fn clone_from(&mut self, source: &Self)`

1.0.0

Performs copy-assignment from `source`

. Read more

`impl<T: Copy + Float> Copy for LabHue<T>`

[src]

`impl<T: Debug + Float> Debug for LabHue<T>`

[src]

`impl<T: Default + Float> Default for LabHue<T>`

[src]

`impl<T: Float> From<T> for LabHue<T>`

[src]

`impl Into<f64> for LabHue<f64>`

[src]

`impl Into<f32> for LabHue<f32>`

[src]

`impl Into<f32> for LabHue<f64>`

[src]

`impl<T: Float> PartialEq for LabHue<T>`

[src]

`fn eq(&self, other: &LabHue<T>) -> bool`

This method tests for `self`

and `other`

values to be equal, and is used by `==`

. Read more

`fn ne(&self, other: &Rhs) -> bool`

1.0.0

This method tests for `!=`

.

`impl<T: Float> PartialEq<T> for LabHue<T>`

[src]

`fn eq(&self, other: &T) -> bool`

This method tests for `self`

and `other`

values to be equal, and is used by `==`

. Read more

`fn ne(&self, other: &Rhs) -> bool`

1.0.0

This method tests for `!=`

.

`impl<T: Float> Add<LabHue<T>> for LabHue<T>`

[src]

`type Output = LabHue<T>`

The resulting type after applying the `+`

operator

`fn add(self, other: LabHue<T>) -> LabHue<T>`

The method for the `+`

operator

`impl<T: Float> Add<T> for LabHue<T>`

[src]

`type Output = LabHue<T>`

The resulting type after applying the `+`

operator

`fn add(self, other: T) -> LabHue<T>`

The method for the `+`

operator

`impl<T: Float> Sub<LabHue<T>> for LabHue<T>`

[src]

`type Output = LabHue<T>`

The resulting type after applying the `-`

operator

`fn sub(self, other: LabHue<T>) -> LabHue<T>`

The method for the `-`

operator

`impl<T: Float> Sub<T> for LabHue<T>`

[src]

`type Output = LabHue<T>`

The resulting type after applying the `-`

operator

`fn sub(self, other: T) -> LabHue<T>`

The method for the `-`

operator

`impl<T: Float + ApproxEq> ApproxEq for LabHue<T> where`

<T as ApproxEq>::Epsilon: Float,

[src]

<T as ApproxEq>::Epsilon: Float,

`type Epsilon = <T as ApproxEq>::Epsilon`

Used for specifying relative comparisons.

`fn default_epsilon() -> Self::Epsilon`

The default tolerance to use when testing values that are close together. Read more

`fn default_max_relative() -> Self::Epsilon`

The default relative tolerance for testing values that are far-apart. Read more

`fn default_max_ulps() -> u32`

The default ULPs to tolerate when testing values that are far-apart. Read more

`fn relative_eq(`

&self,

other: &Self,

epsilon: Self::Epsilon,

max_relative: Self::Epsilon

) -> bool

&self,

other: &Self,

epsilon: Self::Epsilon,

max_relative: Self::Epsilon

) -> bool

A test for equality that uses a relative comparison if the values are far apart.

`fn ulps_eq(&self, other: &Self, epsilon: Self::Epsilon, max_ulps: u32) -> bool`

A test for equality that uses units in the last place (ULP) if the values are far apart.

`fn relative_ne(`

&self,

other: &Self,

epsilon: Self::Epsilon,

max_relative: Self::Epsilon

) -> bool

&self,

other: &Self,

epsilon: Self::Epsilon,

max_relative: Self::Epsilon

) -> bool

The inverse of `ApproxEq::relative_eq`

.

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

The inverse of `ApproxEq::ulps_eq`

.