graphitepdf_kit/
pattern.rs1use crate::vector::Color;
2
3#[derive(Clone, Debug)]
4pub enum Pattern {
5 Solid(Color),
6 LinearGradient(LinearGradient),
7 RadialGradient(RadialGradient),
8 Tiling(TilingPattern),
9}
10
11#[derive(Clone, Debug)]
12pub struct LinearGradient {
13 pub x0: f64,
14 pub y0: f64,
15 pub x1: f64,
16 pub y1: f64,
17 pub stops: Vec<GradientStop>,
18}
19
20#[derive(Clone, Debug)]
21pub struct RadialGradient {
22 pub cx0: f64,
23 pub cy0: f64,
24 pub r0: f64,
25 pub cx1: f64,
26 pub cy1: f64,
27 pub r1: f64,
28 pub stops: Vec<GradientStop>,
29}
30
31#[derive(Clone, Debug)]
32pub struct GradientStop {
33 pub offset: f64,
34 pub color: Color,
35}
36
37impl GradientStop {
38 pub fn new(offset: f64, color: Color) -> Self {
39 Self { offset, color }
40 }
41}
42
43#[derive(Clone, Debug)]
44pub struct TilingPattern {
45 pub x_step: f64,
46 pub y_step: f64,
47 pub bbox: (f64, f64, f64, f64),
48}