diff --git a/PamhagenSysCtrl/Helpers/Pipeline/ControlledValve.cs b/PamhagenSysCtrl/Helpers/Pipeline/ControlledValve.cs index f4e663d..e57ecf6 100644 --- a/PamhagenSysCtrl/Helpers/Pipeline/ControlledValve.cs +++ b/PamhagenSysCtrl/Helpers/Pipeline/ControlledValve.cs @@ -39,6 +39,13 @@ namespace PamhagenSysCtrl.Helpers.Pipeline { IsLocked && WantOpen && IsOpen ? PamhagenBrushes.Green : Highlight ?? (isHovering ? Brushes.LightGray : Brushes.DarkGray); } + if (IsOpen) { + _topLine?.Points[1] = _middlePoints.Open.Top; + _bottomLine?.Points[1] = _middlePoints.Open.Bottom; + } else { + _topLine?.Points[1] = _middlePoints.Closed.Top; + _bottomLine?.Points[1] = _middlePoints.Closed.Bottom; + } } } } diff --git a/PamhagenSysCtrl/Helpers/Pipeline/ExternalValve.cs b/PamhagenSysCtrl/Helpers/Pipeline/ExternalValve.cs index eff2ff2..b3e2f28 100644 --- a/PamhagenSysCtrl/Helpers/Pipeline/ExternalValve.cs +++ b/PamhagenSysCtrl/Helpers/Pipeline/ExternalValve.cs @@ -17,6 +17,13 @@ namespace PamhagenSysCtrl.Helpers.Pipeline { !IsOpen ? PamhagenBrushes.Red : IsOpen ? PamhagenBrushes.Green : Highlight ?? Brushes.DarkGray; + if (IsOpen) { + _topLine?.Points[1] = _middlePoints.Open.Top; + _bottomLine?.Points[1] = _middlePoints.Open.Bottom; + } else { + _topLine?.Points[1] = _middlePoints.Closed.Top; + _bottomLine?.Points[1] = _middlePoints.Closed.Bottom; + } } } } diff --git a/PamhagenSysCtrl/Helpers/Pipeline/Valve.cs b/PamhagenSysCtrl/Helpers/Pipeline/Valve.cs index f2b79b1..bf3e98b 100644 --- a/PamhagenSysCtrl/Helpers/Pipeline/Valve.cs +++ b/PamhagenSysCtrl/Helpers/Pipeline/Valve.cs @@ -26,6 +26,7 @@ namespace PamhagenSysCtrl.Helpers.Pipeline { protected Polygon? _triangles; protected Polyline? _topLine; protected Polyline? _bottomLine; + protected ((Point Top, Point Bottom) Closed, (Point Top, Point Bottom) Open) _middlePoints; protected TextBlock? _text; public Valve(double x, double y, int orientation, Func cbOpen) { @@ -83,6 +84,9 @@ namespace PamhagenSysCtrl.Helpers.Pipeline { Graph.ToPx(CenterX + WIDTH / 4, CenterY, scale), Graph.ToPx(CenterX + WIDTH / 2, CenterY + LENGTH / 4, scale), ]; + if (_topLine != null && _bottomLine != null) + _middlePoints = ((_topLine.Points[1], _bottomLine.Points[1]), + (Graph.ToPx(CenterX - WIDTH / 3, CenterY, scale), Graph.ToPx(CenterX + WIDTH / 3, CenterY, scale))); } else { Graph.SetCenter(_background, CenterX, CenterY, LENGTH, LENGTH / 2, scale); _triangles?.Points = [ @@ -101,6 +105,9 @@ namespace PamhagenSysCtrl.Helpers.Pipeline { Graph.ToPx(CenterX, CenterY + WIDTH / 4, scale), Graph.ToPx(CenterX + LENGTH / 4, CenterY + WIDTH / 2, scale), ]; + if (_topLine != null && _bottomLine != null) + _middlePoints = ((_topLine.Points[1], _bottomLine.Points[1]), + (Graph.ToPx(CenterX, CenterY - WIDTH / 3, scale), Graph.ToPx(CenterX, CenterY + WIDTH / 3, scale))); } _triangles?.StrokeThickness = border; _topLine?.StrokeThickness = border;