This commit is contained in:
Pascal Serrarens 2025-06-04 09:43:13 +02:00
commit 620b7e5273
5 changed files with 39 additions and 14 deletions

View File

@ -24,15 +24,11 @@ namespace LinearAlgebra {
horizontal = 0; horizontal = 0;
vertical = 0; vertical = 0;
} }
// public Direction(Angle horizontal, Angle vertical) { public Direction(Angle horizontal, Angle vertical) {
// this.horizontal = horizontal.inDegrees; this.horizontal = horizontal.inDegrees;
this.vertical = vertical.inDegrees;
// } this.Normalize();
// public Direction(float horizontal, float vertical) { }
// this.horizontal = horizontal;
// this.vertical = vertical;
// //Normalize();
// }
public static Direction Degrees(float horizontal, float vertical) { public static Direction Degrees(float horizontal, float vertical) {
Direction d = new() { Direction d = new() {
@ -82,6 +78,33 @@ namespace LinearAlgebra {
Vector3Float v = new(x, y, z); Vector3Float v = new(x, y, z);
return v; return v;
} }
public static bool operator ==(Direction d1, Direction d2) {
bool horizontalEq = d1.horizontal == d2.horizontal;
bool verticalEq = d1.vertical == d2.vertical;
return horizontalEq && verticalEq;
}
public static bool operator !=(Direction d1, Direction d2) {
bool horizontalNEq = d1.horizontal != d2.horizontal;
bool verticalNEq = d1.vertical != d2.vertical;
return horizontalNEq || verticalNEq;
}
public override bool Equals(object obj) {
if (obj is not Direction d)
return false;
bool horizontalEq = this.horizontal == d.horizontal;
bool verticalEq = this.vertical == d.vertical;
return horizontalEq && verticalEq;
}
public override int GetHashCode() {
return (this.horizontal, this.vertical).GetHashCode();
}
} }
} }

View File

@ -35,7 +35,7 @@ namespace LinearAlgebra.Test {
angle = (float)Math.PI * 1.5f; angle = (float)Math.PI * 1.5f;
a = Angle.Radians(angle); a = Angle.Radians(angle);
Assert.AreEqual(-Math.PI * 0.5f, a.inRadians); Assert.AreEqual(-Math.PI * 0.5f, a.inRadians, 1.0E-05F);
// Revolutions // Revolutions
angle = 0.0f; angle = 0.0f;

View File

@ -9,10 +9,12 @@ namespace LinearAlgebra.Test {
[Test] [Test]
public void Compare() { public void Compare() {
Direction d = Direction.Degrees(45, 135); Direction d1 = Direction.Degrees(45, 135);
Direction d2 = new(Angle.Degrees(45), Angle.Degrees(135));
bool r; bool r;
r = d == new Direction(Angle.Degrees(45), Angle.Degrees(135)); r = d1 == d2;
Assert.True(r); Assert.True(r);
Assert.AreEqual(d1, d2);
} }
}; };
} }

View File

@ -46,7 +46,7 @@ namespace LinearAlgebra.Test {
r = v1 + v2; r = v1 + v2;
Assert.AreEqual(Math.Sqrt(2), r.distance, 1.0E-05F, "Addition(1 0 90)"); Assert.AreEqual(Math.Sqrt(2), r.distance, 1.0E-05F, "Addition(1 0 90)");
Assert.AreEqual(45.0f, r.direction.horizontal, "Addition(1 0 90)"); Assert.AreEqual(45.0f, r.direction.horizontal, "Addition(1 0 90)");
Assert.AreEqual(45.0f, r.direction.vertical, "Addition(1 0 90)"); Assert.AreEqual(45.0f, r.direction.vertical, 1.0E-05F, "Addition(1 0 90)");
} }
} }
} }

View File

@ -70,7 +70,7 @@ namespace RoboidControl {
touchUpdated = false; touchUpdated = false;
return bytes; return bytes;
#else #else
return 0; return Array.Empty<byte>();
#endif #endif
} }