From 1dfac5728cef8e042b71b2383b1edaa211d19bf5 Mon Sep 17 00:00:00 2001 From: Ruben van de Ven Date: Fri, 25 Apr 2025 22:13:50 +0200 Subject: [PATCH] Draw distinct lines --- src/bin/render_lines_gui.rs | 30 +++++++++++++++--------------- src/trap/tracks.rs | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/bin/render_lines_gui.rs b/src/bin/render_lines_gui.rs index abdcaed..7c7cb7e 100644 --- a/src/bin/render_lines_gui.rs +++ b/src/bin/render_lines_gui.rs @@ -513,22 +513,22 @@ fn view_line_canvas(app: &App, model: &Model, frame: Frame) { let thickness = 2.0; // let hz = ((app.mouse.x + win.right()) / win.w()).powi(4) * 1000.0; - // TODO draw distinct lines, using euclid for scale - let points: LaserPoints = (&model.current_lines).into(); + // TODO refactor to using euclid::point2D for scale + + for line in &model.current_lines.lines{ + let vertices = line.points.iter().map(|p| { + let color = srgba(p.color.red, p.color.green, p.color.blue, p.color.alpha); + + let pos = [p.position[0] * scale, p.position[1] * -scale]; + (pos, color) + }); - let vertices = points.iter().map(|p| { - let color = srgba(p.color[0], p.color[1], p.color[2], 1.0); - - let pos = [p.position[0] * scale, p.position[1] * -scale]; - (pos, color) - }); - - // Draw the polyline as a stroked path. - draw.polyline() - .weight(thickness) - .join_round() - .points_colored(vertices); - // model.current_points + draw.polyline() + .weight(thickness) + .join_round() + .points_colored(vertices); + } + // put everything on the frame draw.to_frame(app, &frame).unwrap(); diff --git a/src/trap/tracks.rs b/src/trap/tracks.rs index 58215cc..970bbe8 100644 --- a/src/trap/tracks.rs +++ b/src/trap/tracks.rs @@ -49,7 +49,7 @@ pub struct RenderablePoint{ #[derive(Clone, Debug, Serialize, Deserialize)] pub struct RenderableLine{ - points: Vec + pub points: Vec } #[derive(Clone, Debug, Serialize, Deserialize)]