This commit is contained in:
@@ -6,8 +6,8 @@ using System.Windows.Shapes;
|
||||
namespace PamhagenSysCtrl.Helpers.Pipeline {
|
||||
public class Switcher : INode {
|
||||
|
||||
public const double WIDTH = 100;
|
||||
public const double HEIGHT = 50;
|
||||
public const double WIDTH = 20;
|
||||
public const double HEIGHT = 10;
|
||||
|
||||
public double CenterX { get; set; }
|
||||
public double CenterY { get; set; }
|
||||
@@ -34,21 +34,15 @@ namespace PamhagenSysCtrl.Helpers.Pipeline {
|
||||
}
|
||||
|
||||
public void Draw(Canvas canvas) {
|
||||
_mainTransform = new RotateTransform(0, CenterX, CenterY);
|
||||
_shadowTransform = new RotateTransform(0, CenterX, CenterY);
|
||||
_mainTransform = new RotateTransform(0);
|
||||
_shadowTransform = new RotateTransform(0);
|
||||
_main = new Line() {
|
||||
X1 = CenterX - WIDTH / 2, Y1 = CenterY,
|
||||
X2 = CenterX + WIDTH / 2, Y2 = CenterY,
|
||||
StrokeThickness = 5,
|
||||
Stroke = Brushes.Black,
|
||||
StrokeStartLineCap = PenLineCap.Square,
|
||||
StrokeEndLineCap = PenLineCap.Square,
|
||||
RenderTransform = _mainTransform,
|
||||
};
|
||||
_shadow = new Line() {
|
||||
X1 = CenterX - WIDTH / 2, Y1 = CenterY,
|
||||
X2 = CenterX + WIDTH / 2, Y2 = CenterY,
|
||||
StrokeThickness = 5,
|
||||
Stroke = Brushes.DarkGray,
|
||||
StrokeStartLineCap = PenLineCap.Square,
|
||||
StrokeEndLineCap = PenLineCap.Square,
|
||||
@@ -58,6 +52,25 @@ namespace PamhagenSysCtrl.Helpers.Pipeline {
|
||||
canvas.Children.Add(_main);
|
||||
}
|
||||
|
||||
public void Scale(double scale) {
|
||||
_mainTransform?.CenterX = CenterX * scale;
|
||||
_mainTransform?.CenterY = CenterY * scale;
|
||||
_shadowTransform?.CenterX = CenterX * scale;
|
||||
_shadowTransform?.CenterY = CenterY * scale;
|
||||
|
||||
_main?.X1 = (CenterX - WIDTH / 2) * scale;
|
||||
_main?.Y1 = CenterY * scale;
|
||||
_main?.X2 = (CenterX + WIDTH / 2) * scale;
|
||||
_main?.Y2 = CenterY * scale;
|
||||
_main?.StrokeThickness = 1 * scale;
|
||||
|
||||
_shadow?.X1 = (CenterX - WIDTH / 2) * scale;
|
||||
_shadow?.Y1 = CenterY * scale;
|
||||
_shadow?.X2 = (CenterX + WIDTH / 2) * scale;
|
||||
_shadow?.Y2 = CenterY * scale;
|
||||
_shadow?.StrokeThickness = 1 * scale;
|
||||
}
|
||||
|
||||
public bool IsInside(double x, double y) {
|
||||
return Math.Abs(x - CenterX) <= WIDTH / 2 && Math.Abs(y - CenterY) <= HEIGHT / 2;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user