egui: paint currently probed edges in bold yellow

This commit is contained in:
Mikolaj Wielgus 2024-05-06 11:58:40 +02:00
parent eaecb99146
commit 4efc2d482b
2 changed files with 33 additions and 8 deletions

View File

@ -328,7 +328,11 @@ impl eframe::App for App {
.unwrap() .unwrap()
.pos; .pos;
painter.paint_edge(from, to, egui::Color32::from_rgb(90, 90, 200)); painter.paint_edge(
from,
to,
egui::Stroke::new(1.0, egui::Color32::from_rgb(90, 90, 200)),
);
} }
if let Some(navmesh) = &shared_data.navmesh { if let Some(navmesh) = &shared_data.navmesh {
@ -336,11 +340,32 @@ impl eframe::App for App {
let from = let from =
edge.source().primitive(layout.drawing()).shape().center(); edge.source().primitive(layout.drawing()).shape().center();
let to = edge.target().primitive(layout.drawing()).shape().center(); let to = edge.target().primitive(layout.drawing()).shape().center();
painter.paint_edge(
from, let stroke = 'blk: {
to, if let (Some(source_pos), Some(target_pos)) = (
egui::Color32::from_rgb(125, 125, 125), shared_data
); .path
.iter()
.position(|node| *node == edge.source()),
shared_data
.path
.iter()
.position(|node| *node == edge.target()),
) {
if target_pos == source_pos + 1
|| source_pos == target_pos + 1
{
break 'blk egui::Stroke::new(
5.0,
egui::Color32::from_rgb(250, 250, 0),
);
}
}
egui::Stroke::new(1.0, egui::Color32::from_rgb(125, 125, 125))
};
painter.paint_edge(from, to, stroke);
} }
} }

View File

@ -79,7 +79,7 @@ impl<'a> Painter<'a> {
)); ));
} }
pub fn paint_edge(&mut self, from: Point, to: Point, color: egui::epaint::Color32) { pub fn paint_edge(&mut self, from: Point, to: Point, stroke: egui::Stroke) {
self.ui.painter().add(egui::Shape::line_segment( self.ui.painter().add(egui::Shape::line_segment(
[ [
self.transform self.transform
@ -87,7 +87,7 @@ impl<'a> Painter<'a> {
self.transform self.transform
.transform_pos([to.x() as f32, -to.y() as f32].into()), .transform_pos([to.x() as f32, -to.y() as f32].into()),
], ],
egui::Stroke::new(1.0, color), stroke,
)); ));
} }
} }