render_agnostic/
lib.rs

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}