Common/Matrix: Add equality operators to TVec2/3/4.

This commit is contained in:
Admiral H. Curtiss 2022-09-24 00:47:41 +02:00
parent 3fa9fdf57a
commit 70485472b1
No known key found for this signature in database
GPG Key ID: F051B4C4044F33FB
1 changed files with 12 additions and 0 deletions

View File

@ -24,6 +24,11 @@ union TVec3
{
}
constexpr bool operator==(const TVec3& other) const
{
return x == other.x && y == other.y && z == other.z;
}
constexpr TVec3 Cross(const TVec3& rhs) const
{
return {(y * rhs.z) - (rhs.y * z), (z * rhs.x) - (rhs.z * x), (x * rhs.y) - (rhs.x * y)};
@ -153,6 +158,11 @@ union TVec4
constexpr TVec4(TVec3<T> _vec, T _w) : TVec4{_vec.x, _vec.y, _vec.z, _w} {}
constexpr TVec4(T _x, T _y, T _z, T _w) : data{_x, _y, _z, _w} {}
constexpr bool operator==(const TVec4& other) const
{
return x == other.x && y == other.y && z == other.z && w == other.w;
}
constexpr T Dot(const TVec4& other) const
{
return x * other.x + y * other.y + z * other.z + w * other.w;
@ -216,6 +226,8 @@ union TVec2
{
}
constexpr bool operator==(const TVec2& other) const { return x == other.x && y == other.y; }
constexpr T Cross(const TVec2& rhs) const { return (x * rhs.y) - (y * rhs.x); }
constexpr T Dot(const TVec2& rhs) const { return (x * rhs.x) + (y * rhs.y); }
constexpr T LengthSquared() const { return Dot(*this); }