1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
use crate::core::algebra::Vector2;
use crate::core::color::Color;

#[derive(Clone, Debug, PartialEq)]
pub struct GradientPoint {
    pub stop: f32,
    pub color: Color,
}

#[derive(Clone, Debug, PartialEq)]
pub enum Brush {
    Solid(Color),
    LinearGradient {
        from: Vector2<f32>,
        to: Vector2<f32>,
        stops: Vec<GradientPoint>,
    },
    RadialGradient {
        center: Vector2<f32>,
        stops: Vec<GradientPoint>,
    },
}