pub struct DiscreteColorScale { /* private fields */ }Expand description
A discrete color scale that maps value ranges to colors.
The scale works by finding the highest threshold that the input value exceeds, and returning the corresponding color. Levels are automatically sorted from highest to lowest threshold during construction.
§Example
use nexrad_render::{ColorScaleLevel, DiscreteColorScale, Color};
let scale = DiscreteColorScale::new(vec![
ColorScaleLevel::new(0.0, Color::BLACK),
ColorScaleLevel::new(30.0, Color::rgb(0.0, 1.0, 0.0)),
ColorScaleLevel::new(50.0, Color::rgb(1.0, 0.0, 0.0)),
]);
// Values >= 50 return red, >= 30 return green, >= 0 return blackImplementations§
Source§impl DiscreteColorScale
impl DiscreteColorScale
Sourcepub fn new(levels: Vec<ColorScaleLevel>) -> Self
pub fn new(levels: Vec<ColorScaleLevel>) -> Self
Creates a new discrete color scale from the given levels.
Levels are automatically sorted from highest to lowest threshold.
Sourcepub fn color(&self, value: f32) -> Color
pub fn color(&self, value: f32) -> Color
Returns the color for the given value.
Finds the highest threshold that the value exceeds and returns its color. If the value is below all thresholds, returns the color of the lowest threshold.
Sourcepub fn levels(&self) -> &[ColorScaleLevel]
pub fn levels(&self) -> &[ColorScaleLevel]
Returns the levels in this color scale (sorted highest to lowest).
Trait Implementations§
Source§impl Clone for DiscreteColorScale
impl Clone for DiscreteColorScale
Source§fn clone(&self) -> DiscreteColorScale
fn clone(&self) -> DiscreteColorScale
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DiscreteColorScale
impl Debug for DiscreteColorScale
Source§impl From<DiscreteColorScale> for ColorScale
impl From<DiscreteColorScale> for ColorScale
Source§fn from(scale: DiscreteColorScale) -> Self
fn from(scale: DiscreteColorScale) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for DiscreteColorScale
impl RefUnwindSafe for DiscreteColorScale
impl Send for DiscreteColorScale
impl Sync for DiscreteColorScale
impl Unpin for DiscreteColorScale
impl UnsafeUnpin for DiscreteColorScale
impl UnwindSafe for DiscreteColorScale
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 more