1use anchor2d::Anchor2D;
2use glam::DVec2;
3use palette::Srgba;
4
5pub mod renderers;
6
7pub trait Renderer {
8 fn render_line(&mut self, start: DVec2, end: DVec2, thickness: f64, color: Srgba);
9 fn render_circle(&mut self, position: DVec2, radius: f64, color: Srgba);
10 fn render_circle_lines(&mut self, position: DVec2, radius: f64, thickness: f64, color: Srgba);
11
12 fn render_arc(
13 &mut self,
14 position: DVec2,
15 radius: f64,
16 rotation: f64,
17 arc: f64,
18 thickness: f64,
19 color: Srgba,
20 );
21
22 fn render_text(
23 &mut self,
24 text: &str,
25 position: DVec2,
26 anchor: Anchor2D,
27 size: f64,
28 color: Srgba,
29 );
30
31 fn render_rectangle(
32 &mut self,
33 position: DVec2,
34 width: f64,
35 height: f64,
36 offset: DVec2,
37 rotation: f64,
38 color: Srgba,
39 );
40
41 fn render_rectangle_lines(
42 &mut self,
43 position: DVec2,
44 width: f64,
45 height: f64,
46 offset: DVec2,
47 rotation: f64,
48 thickness: f64,
49 color: Srgba,
50 );
51
52 fn render_equilateral_triangle(
53 &mut self,
54 position: DVec2,
55 radius: f64,
56 rotation: f64,
57 color: Srgba,
58 );
59
60 fn render_equilateral_triangle_lines(
61 &mut self,
62 position: DVec2,
63 radius: f64,
64 rotation: f64,
65 thickness: f64,
66 color: Srgba,
67 );
68}