From 0359bacf477d61ce6ee9b6a059c09ccd4d99ac5d Mon Sep 17 00:00:00 2001 From: Sebastian Lindemeier Date: Mon, 15 Dec 2025 10:21:43 +0100 Subject: [PATCH] Add subtraction and scalar multiplication operators to `Coordinate` and `Coordinate3d` --- AdventOfCode.HelperClasses/Coordinate.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/AdventOfCode.HelperClasses/Coordinate.cs b/AdventOfCode.HelperClasses/Coordinate.cs index 30d3463..499517b 100644 --- a/AdventOfCode.HelperClasses/Coordinate.cs +++ b/AdventOfCode.HelperClasses/Coordinate.cs @@ -10,6 +10,12 @@ public record Coordinate(long X, long Y) public static Coordinate operator +(Coordinate left, Coordinate right) => new(left.X + right.X, left.Y + right.Y); + + public static Coordinate operator -(Coordinate left, Coordinate right) => + new(left.X - right.X, left.Y - right.Y); + + public static Coordinate operator *(Coordinate coord, int amount) => + new(coord.X * amount, coord.Y * amount); } public record Coordinate3d(long X, long Y, long Z) @@ -22,4 +28,10 @@ public record Coordinate3d(long X, long Y, long Z) public static Coordinate3d operator +(Coordinate3d left, Coordinate3d right) => new(left.X + right.X, left.Y + right.Y, left.Z + right.Z); + + public static Coordinate3d operator -(Coordinate3d left, Coordinate3d right) => + new(left.X - right.X, left.Y - right.Y, left.Z - right.Z); + + public static Coordinate3d operator *(Coordinate3d coord, int amount) => + new(coord.X * amount, coord.Y * amount, coord.Z * amount); } \ No newline at end of file