Skip to main content

cranpose_ui_graphics/
brush.rs

1//! Brush definitions for painting (solid colors, gradients, etc.)
2
3use crate::color::Color;
4use crate::geometry::Point;
5
6#[derive(Clone, Debug, PartialEq)]
7pub enum Brush {
8    Solid(Color),
9    LinearGradient(Vec<Color>),
10    RadialGradient {
11        colors: Vec<Color>,
12        center: Point,
13        radius: f32,
14    },
15}
16
17impl Brush {
18    pub fn solid(color: Color) -> Self {
19        Brush::Solid(color)
20    }
21
22    pub fn linear_gradient(colors: Vec<Color>) -> Self {
23        Brush::LinearGradient(colors)
24    }
25
26    pub fn radial_gradient(colors: Vec<Color>, center: Point, radius: f32) -> Self {
27        Brush::RadialGradient {
28            colors,
29            center,
30            radius,
31        }
32    }
33}