aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Audio/Renderer/Utils/Math/Vector6.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Audio/Renderer/Utils/Math/Vector6.cs')
-rw-r--r--Ryujinx.Audio/Renderer/Utils/Math/Vector6.cs56
1 files changed, 56 insertions, 0 deletions
diff --git a/Ryujinx.Audio/Renderer/Utils/Math/Vector6.cs b/Ryujinx.Audio/Renderer/Utils/Math/Vector6.cs
new file mode 100644
index 00000000..b2cd481b
--- /dev/null
+++ b/Ryujinx.Audio/Renderer/Utils/Math/Vector6.cs
@@ -0,0 +1,56 @@
+using System.Runtime.CompilerServices;
+
+namespace Ryujinx.Audio.Renderer.Utils.Math
+{
+ record struct Vector6
+ {
+ public float X;
+ public float Y;
+ public float Z;
+ public float W;
+ public float V;
+ public float U;
+
+ public Vector6(float value) : this(value, value, value, value, value, value)
+ {
+ }
+
+ public Vector6(float x, float y, float z, float w, float v, float u)
+ {
+ X = x;
+ Y = y;
+ Z = z;
+ W = w;
+ V = v;
+ U = u;
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector6 operator +(Vector6 left, Vector6 right)
+ {
+ return new Vector6(left.X + right.X,
+ left.Y + right.Y,
+ left.Z + right.Z,
+ left.W + right.W,
+ left.V + right.V,
+ left.U + right.U);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector6 operator *(Vector6 left, Vector6 right)
+ {
+ return new Vector6(left.X * right.X,
+ left.Y * right.Y,
+ left.Z * right.Z,
+ left.W * right.W,
+ left.V * right.V,
+ left.U * right.U);
+ }
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static Vector6 operator *(Vector6 left, float right)
+ {
+ return left * new Vector6(right);
+ }
+ }
+}