using PamhagenSysCtrl.Helpers; using PamhagenSysCtrl.Helpers.Pipeline; using System.Windows; using System.Windows.Input; using System.Windows.Media; namespace PamhagenSysCtrl.Windows { public partial class PlantSchemeWindow : Window { private readonly PamhagenGraph Graph; public PlantSchemeWindow() { InitializeComponent(); App.Plant?.Update += OnUpdate; Graph = new(); Graph.Draw(SchemeCanvas); } private void SchemeCanvas_MouseMove(object sender, MouseEventArgs evt) { var p = evt.GetPosition(SchemeCanvas); foreach (var e in Graph.Edges) { e.Highlight = null; } var hover = Graph.Update(p.X, p.Y); if (hover.Count > 0) { var path = Graph.GetPath(Graph.MW1, hover.First(), (n) => n is not ISink); if (path != null) { foreach (var (edge, node) in path.Value.Hops) { edge.Highlight = Brushes.Green; } } Graph.Update(p.X, p.Y); } } public void OnUpdate(object? sender, PlantEventArgs evt) { if (sender is not PamhagenPlant plant) return; } } }