pub struct ColorStop {
pub position: f64,
pub color: Color,
pub name: Option<String>,
}Expand description
A color stop in a gradient (position + color)
Fields§
§position: f64Position along the gradient (0.0 to 1.0)
color: ColorRGB color at this position
name: Option<String>Optional name for documentation/UI purposes
Implementations§
Source§impl ColorStop
impl ColorStop
Sourcepub fn new(position: f64, color: Color) -> Self
pub fn new(position: f64, color: Color) -> Self
Create a new color stop
Examples found in repository?
examples/basic_usage.rs (line 22)
5fn main() {
6 // Load built-in colormap
7 println!("Loading Fire colormap...");
8 let fire = scala_chromatica::io::load_builtin_colormap("Fire")
9 .expect("Failed to load Fire colormap");
10
11 // Sample colors at different positions
12 println!("\nFire gradient samples:");
13 for i in 0..=10 {
14 let position = i as f64 / 10.0;
15 let color = fire.get_color(position);
16 println!(" {:.1}: RGB({}, {}, {})", position, color.r, color.g, color.b);
17 }
18
19 // Create custom gradient
20 println!("\nCreating custom gradient...");
21 let mut custom = ColorMap::new("RedBlue");
22 custom.add_stop(ColorStop::new(0.0, Color::new(255, 0, 0)));
23 custom.add_stop(ColorStop::new(0.5, Color::new(255, 255, 255)));
24 custom.add_stop(ColorStop::new(1.0, Color::new(0, 0, 255)));
25
26 println!("\nCustom gradient samples:");
27 for i in 0..=10 {
28 let position = i as f64 / 10.0;
29 let color = custom.get_color(position);
30 println!(" {:.1}: RGB({}, {}, {})", position, color.r, color.g, color.b);
31 }
32
33 // List all available colormaps
34 println!("\nListing all available colormaps...");
35 match scala_chromatica::io::list_available_colormaps() {
36 Ok(colormaps) => {
37 println!("Found {} colormap(s):", colormaps.len());
38 for info in colormaps {
39 let type_str = if info.is_builtin {
40 "built-in"
41 } else {
42 "custom"
43 };
44 println!(" - {} ({})", info.name, type_str);
45 }
46 }
47 Err(e) => eprintln!("Error listing colormaps: {}", e),
48 }
49
50 // Demonstrate HSV color creation
51 println!("\nHSV color examples:");
52 let red = Color::from_hsv(0.0, 1.0, 1.0);
53 println!(" Red (H=0): RGB({}, {}, {})", red.r, red.g, red.b);
54
55 let green = Color::from_hsv(120.0, 1.0, 1.0);
56 println!(" Green (H=120): RGB({}, {}, {})", green.r, green.g, green.b);
57
58 let blue = Color::from_hsv(240.0, 1.0, 1.0);
59 println!(" Blue (H=240): RGB({}, {}, {})", blue.r, blue.g, blue.b);
60}Trait Implementations§
Source§impl<'de> Deserialize<'de> for ColorStop
impl<'de> Deserialize<'de> for ColorStop
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for ColorStop
Auto Trait Implementations§
impl Freeze for ColorStop
impl RefUnwindSafe for ColorStop
impl Send for ColorStop
impl Sync for ColorStop
impl Unpin for ColorStop
impl UnwindSafe for ColorStop
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