pub struct SpectralLocus { /* private fields */ }Expand description
Represents the spectral locus, which includes:
- An observer for spectral data.
- A vector of tuples where each tuple contains:
- A wavelength (usize).
- A chromaticity coordinate ([f64; 2]).
Implementations§
Source§impl SpectralLocus
impl SpectralLocus
pub fn new(observer: Observer) -> Self
pub fn contains(&self, point: [f64; 2]) -> bool
pub fn observer(&self) -> Observer
Sourcepub fn iter_range_with_slope<'a>(
&'a self,
range: impl RangeBounds<usize>,
step: usize,
) -> SpectralLocusSlopeIterator<'a>
pub fn iter_range_with_slope<'a>( &'a self, range: impl RangeBounds<usize>, step: usize, ) -> SpectralLocusSlopeIterator<'a>
Iterate over the spectral locus points over a given wavelength range and step size producing the spectral locus coordinates (f64, f64) and slope angles f64 in radians. The slope is calculated using a quadratic curve fit for interior points, and a simple difference for the endpoints.
This iterator is useful for applications that require not only the locus points, but also the direction of the locus at each point, for example when plotting tick marks along the spectral locus in plots, to find its boundaries.
§Item
Each iteration yields a tuple:
((f64, f64), f64)- The chromaticity coordinate (x, y) of the locus point.
- The slope angle (in radians) at that point.
pub fn polygon(&self) -> &Polygon
Trait Implementations§
Source§impl<'a> IntoIterator for &'a SpectralLocus
impl<'a> IntoIterator for &'a SpectralLocus
Auto Trait Implementations§
impl Freeze for SpectralLocus
impl RefUnwindSafe for SpectralLocus
impl Send for SpectralLocus
impl Sync for SpectralLocus
impl Unpin for SpectralLocus
impl UnwindSafe for SpectralLocus
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
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.