From 681cdee1393ac34ca2f388d1da9e05826feb3f24 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 20 Mar 2025 23:10:03 +0100 Subject: [PATCH] Highlight edges with active flows --- src/algorithms/ford_fulkerson.rs | 2 +- src/layout.rs | 8 +++++--- src/random_generator.rs | 3 +++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/algorithms/ford_fulkerson.rs b/src/algorithms/ford_fulkerson.rs index 698ed59..4ab8b88 100644 --- a/src/algorithms/ford_fulkerson.rs +++ b/src/algorithms/ford_fulkerson.rs @@ -7,7 +7,7 @@ use std::collections::VecDeque; use petgraph::{stable_graph::{EdgeReference, NodeIndex, StableGraph}, visit::{EdgeRef, VisitMap, Visitable}, Direction}; -use crate::random_generator::MaxflowProblem; +//use crate::random_generator::MaxflowProblem; //mod random_generator; fn available_capacity(edge: EdgeReference<'_, (u64, u64)>) -> u64 { diff --git a/src/layout.rs b/src/layout.rs index f60feeb..149223d 100644 --- a/src/layout.rs +++ b/src/layout.rs @@ -1,8 +1,7 @@ use std::f32::consts::PI; use egui::{ - epaint::{CubicBezierShape, QuadraticBezierShape}, - Color32, Pos2, Stroke, Vec2, Shape, FontId, FontFamily, epaint::{TextShape} + epaint::{CubicBezierShape, QuadraticBezierShape, TextShape}, text::LayoutJob, Color32, FontFamily, FontId, Pos2, Shape, Stroke, TextFormat, Vec2 }; use petgraph::{matrix_graph::Nullable, stable_graph::IndexType, EdgeType}; @@ -75,7 +74,10 @@ impl Vec { // fixed properties - let edge_color = Color32::LIGHT_GRAY; + let edge_color = match self.selected { + true => Color32::LIGHT_BLUE, + false => Color32::LIGHT_GRAY + }; let label_color = Color32::DARK_GRAY; //let label_visible = true; //let style = ctx.ctx.style().visuals.widgets.inactive; diff --git a/src/random_generator.rs b/src/random_generator.rs index ca4151a..72ab192 100644 --- a/src/random_generator.rs +++ b/src/random_generator.rs @@ -113,6 +113,9 @@ impl MaxflowProblem { let (flow, capacity): (u64, u64) = *e.payload(); default_edge_transform(e); e.set_label(format!("{flow}:{capacity}")); + if flow > 0 { + e.set_selected(true); + } } ); graph.node_mut(self.s).expect("node index not found").set_label(String::from("s"));