Rearrange graph
Test / Run tests (push) Successful in 15s

This commit is contained in:
2026-08-07 11:49:38 +02:00
parent 4f8c401cae
commit 96bb51807d
4 changed files with 26 additions and 22 deletions
+18 -17
View File
@@ -34,6 +34,7 @@ namespace PamhagenSysCtrl.Helpers {
double wtX = ltg1X - 180;
double wt2Y = 225;
double wt1Y = wt2Y + 135;
double x1X = wtX + 40;
double t1X = 735;
double t2X = t1X + 80;
double t3X = t2X + 80;
@@ -86,9 +87,9 @@ namespace PamhagenSysCtrl.Helpers {
CreatePipe(x2, v3);
var x3 = new PipeJoin(mw1X, mpY + 100);
var x4 = new PipeJoin(mw1X, ltg1Y);
var x4 = new PipeJoin(x1X, ltg1Y);
var x5 = new PipeJoin(mw2X, mpY + 130);
var x6 = new PipeJoin(mw2X, ltg2Y);
var x6 = new PipeJoin(x1X - 30, ltg2Y);
CreatePipe(v1, x3, true);
CreatePipe(v3, x3, true);
@@ -97,14 +98,14 @@ namespace PamhagenSysCtrl.Helpers {
CreatePipe(v4, x5, true);
CreatePipe(x5, x6, true);
var v5 = CreateValve(5, mw1X + 50, ltg1Y);
var v6 = CreateValve(6, mw1X, ltg2Y + 40);
var v7 = CreateValve(7, (mw2X + mw1X) / 2, ltg2Y);
var v8 = CreateValve(8, mw2X, ltg2Y + 40);
var v5 = CreateValve(5, x1X + 30, ltg1Y);
var v6 = CreateValve(6, x1X + 30, ltg2Y + 40);
var v7 = CreateValve(7, x1X + 30, ltg2Y);
var v8 = CreateValve(8, x1X - 30, ltg2Y + 40);
var v9 = CreateValve(9, ltg2X, 500);
CreatePipe(x4, v5);
CreatePipe(x4, v6);
CreatePipe(x4, v6, true);
CreatePipe(x6, v7);
CreatePipe(x6, v8);
CreatePipe(v7, v9);
@@ -346,20 +347,20 @@ namespace PamhagenSysCtrl.Helpers {
var press2 = new Press("Presse 2", pr2X, prY, 15000, () => FillState.Unknown);
var v50 = CreateValve(50, pr2cX + 30, 580);
var v51 = CreateValve(51, pr1cX - 30, 580);
var v52 = CreateValve(52, pr1cX - 30, 640);
var v53 = CreateValve(53, pr2cX + 30, 640);
var v52 = CreateValve(52, pr1cX - 30, 610);
var v53 = CreateValve(53, pr2cX + 30, 610);
var v54 = CreateValve(54, pr2cX + 30, 550);
var v55 = CreateValve(55, pr1cX - 30, 550);
var v56 = CreateValve(56, pr1cX - 30, 610);
var v57 = CreateValve(57, pr2cX + 30, 610);
var v56 = CreateValve(56, pr1cX - 30, 640);
var v57 = CreateValve(57, pr2cX + 30, 640);
var xp1 = new PipeJoin(pr1cX - 70, 580);
var xp2 = new PipeJoin(pr1cX - 70, 640);
var xp2 = new PipeJoin(pr1cX - 70, 610);
var xp3 = new PipeJoin(pr2cX + 70, 550);
var xp4 = new PipeJoin(pr2cX + 70, 610);
var xp4 = new PipeJoin(pr2cX + 70, 640);
var xp5 = new PipeJoin(pr1cX, 580);
var xp6 = new PipeJoin(pr1cX, 640);
var xp6 = new PipeJoin(pr1cX, 610);
var xp7 = new PipeJoin(pr2cX, 550);
var xp8 = new PipeJoin(pr2cX, 610);
var xp8 = new PipeJoin(pr2cX, 640);
CreatePipe(v6, xp1, true);
CreatePipe(v8, xp2, true);
@@ -393,8 +394,8 @@ namespace PamhagenSysCtrl.Helpers {
CreateInlet(zv2, press2, true);
}
protected static Valve CreateValve(int n, double x, double y) {
return new(n, x, y, () => App.Plant?.IsValveOpen(n) ?? false, () => App.Plant?.WantValveOpen(n) ?? false);
protected Valve CreateValve(int n, double x, double y) {
return new(n, x, y, () => App.Plant?.IsValveOpen(n) ?? false, (v) => SelectedPaths.Any(p => p.Hops.Any(h => h.Node == v)));
}
protected static Tank CreateTank(int n, double x, double y, int capacity) {
@@ -48,8 +48,9 @@ namespace PamhagenSysCtrl.Helpers.Pipeline {
Height = DIAMETER,
TextAlignment = TextAlignment.Center,
VerticalAlignment = VerticalAlignment.Center,
SnapsToDevicePixels = true,
};
_text.SetValue(Canvas.LeftProperty, CenterX - DIAMETER / 2);
_text.SetValue(Canvas.LeftProperty, CenterX - DIAMETER / 2 + 0.5);
_text.SetValue(Canvas.TopProperty, CenterY - DIAMETER / 2 + 5.5);
canvas.Children.Add(_circle);
canvas.Children.Add(_text);
@@ -41,6 +41,7 @@ namespace PamhagenSysCtrl.Helpers.Pipeline {
TextAlignment = TextAlignment.Center,
VerticalAlignment = VerticalAlignment.Center,
RenderTransform = new RotateTransform(270),
SnapsToDevicePixels = true,
};
_rect.SetValue(Canvas.LeftProperty, CenterX - WIDTH / 2);
_rect.SetValue(Canvas.TopProperty, CenterY - HEIGHT / 2);
+5 -4
View File
@@ -16,17 +16,17 @@ namespace PamhagenSysCtrl.Helpers.Pipeline {
public bool IsLocked { get; set; }
public bool IsOpen => CallbackIsOpen();
public bool WantOpen => CallbackWantOpen();
public bool WantOpen => CallbackWantOpen(this);
public ISet<IEdge> Inputs { get; init; }
public ISet<IEdge> Outputs { get; init; }
protected Func<bool> CallbackIsOpen;
protected Func<bool> CallbackWantOpen;
protected Func<Valve, bool> CallbackWantOpen;
private Shape? _circle;
private TextBlock? _text;
public Valve(int nr, double x, double y, Func<bool> cbOpen, Func<bool> cbWant) {
public Valve(int nr, double x, double y, Func<bool> cbOpen, Func<Valve, bool> cbWant) {
CenterX = x;
CenterY = y;
Nr = nr;
@@ -53,8 +53,9 @@ namespace PamhagenSysCtrl.Helpers.Pipeline {
Height = DIAMETER,
TextAlignment = TextAlignment.Center,
VerticalAlignment = VerticalAlignment.Center,
SnapsToDevicePixels = true,
};
_text.SetValue(Canvas.LeftProperty, CenterX - DIAMETER / 2);
_text.SetValue(Canvas.LeftProperty, CenterX - DIAMETER / 2 + 0.5);
_text.SetValue(Canvas.TopProperty, CenterY - DIAMETER / 2 + 5.5);
canvas.Children.Add(_circle);
canvas.Children.Add(_text);