Files
pamhagen-sysctrl/PamhagenSysCtrl/Helpers/Pipeline/Pipe.cs
T

61 lines
2.1 KiB
C#

using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Shapes;
namespace PamhagenSysCtrl.Helpers.Pipeline {
public class Pipe : IEdge {
public INode Start { get; set; }
public INode End { get; set; }
public bool Orientation { get; set; }
public Pipe(INode start, INode end, bool orientation = false) {
Start = start;
End = end;
Orientation = orientation;
}
public void Draw(Canvas canvas) {
var x1 = Start.CenterX;
var y1 = Start.CenterY;
var x2 = Orientation ? Start.CenterX : End.CenterX;
var y2 = Orientation ? End.CenterY : Start.CenterY;
var x3 = End.CenterX;
var y3 = End.CenterY;
var a1 = new Line() {
X1 = x1, Y1 = y1, X2 = x2, Y2 = y2,
StrokeThickness = 10,
Stroke = Brushes.Black,
StrokeStartLineCap = PenLineCap.Square,
StrokeEndLineCap = PenLineCap.Square,
};
var a2 = new Line() {
X1 = x1, Y1 = y1, X2 = x2, Y2 = y2,
StrokeThickness = 6,
Stroke = Brushes.Gray,
StrokeStartLineCap = PenLineCap.Square,
StrokeEndLineCap = PenLineCap.Square,
};
var b1 = new Line() {
X1 = x2, Y1 = y2, X2 = x3, Y2 = y3,
StrokeThickness = 10,
Stroke = Brushes.Black,
StrokeStartLineCap = PenLineCap.Square,
StrokeEndLineCap = PenLineCap.Square,
};
var b2 = new Line() {
X1 = x2, Y1 = y2, X2 = x3, Y2 = y3,
StrokeThickness = 6,
Stroke = Brushes.Gray,
StrokeStartLineCap = PenLineCap.Square,
StrokeEndLineCap = PenLineCap.Square,
};
canvas.Children.Add(a1);
canvas.Children.Add(b1);
canvas.Children.Add(a2);
canvas.Children.Add(b2);
}
}
}