Enum scarlet::illuminants::Illuminant
source · pub enum Illuminant {
D50,
D55,
D65,
D75,
Custom([f64; 3]),
}
Expand description
A listing of the supported CIE standard illuminants, standards that describe a particular set of lighting conditions. The most common ones for computers are D50 and D65, differing kinds of daylight. Other ones may be added as time goes on, but they won’t be removed and backwards compatibility won’t break without warning.
Variants§
D50
The CIE D50 standard illuminant. See this page for more information. This has a rough color temperature of 5000 K, so it looks the reddest out of all these standard illuminants, matching “horizon light” in eastern North America. Scarlet uses D50 for internal conversions, as many color spaces use it to define their viewing environment.
D55
The CIE D55 illuminant, slightly less red than D50. This is rather uncommon as a choice for most work, but is still fairly widely used.
D65
The CIE D65 illuminant, representing average noon daylight in eastern North America. This is the recommended official standard for “representative daylight” according to the CIE. The most common RGB standard, on which you’re probably reading this, assumes D65 as viewing conditions.
D75
The CIE D75 illuminant. Rarer than the others, this is nontheless included for the occasional place where it might be used.
Custom([f64; 3])
Represents a light of any given hue, as an array [X, Y, Z]
in CIE 1931 space. This does not
allow one to replicate any illuminant, but it does allow for custom illuminants and the
ability to chromatically adapt to unique lighting conditions, like dark shade or colored
light.
Implementations§
source§impl Illuminant
impl Illuminant
sourcepub fn white_point(&self) -> [f64; 3]
pub fn white_point(&self) -> [f64; 3]
Gets the XYZ coordinates of the white point value of the illuminant, normalized so Y = 1.
Example
let wp = Illuminant::D65.white_point(); // [0.95047, 1.00000, 1.08884]
assert!((wp[0] - 0.95047).abs() <= 1e-10);
assert!((wp[1] - 1.00000).abs() <= 1e-10);
assert!((wp[2] - 1.08884).abs() <= 1e-10);
Trait Implementations§
source§impl Clone for Illuminant
impl Clone for Illuminant
source§fn clone(&self) -> Illuminant
fn clone(&self) -> Illuminant
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for Illuminant
impl Debug for Illuminant
source§impl PartialEq<Illuminant> for Illuminant
impl PartialEq<Illuminant> for Illuminant
source§fn eq(&self, other: &Illuminant) -> bool
fn eq(&self, other: &Illuminant) -> bool
self
and other
values to be equal, and is used
by ==
.impl Copy for Illuminant
impl StructuralPartialEq for Illuminant
Auto Trait Implementations§
impl RefUnwindSafe for Illuminant
impl Send for Illuminant
impl Sync for Illuminant
impl Unpin for Illuminant
impl UnwindSafe for Illuminant
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.