From 3ff67c709dc943c94c793eac6bcf859d795efd7c Mon Sep 17 00:00:00 2001 From: goaaats Date: Fri, 27 May 2022 22:34:42 +0200 Subject: [PATCH] feat: add VectorExtensions(WithX, WithY,...) --- Dalamud/Utility/Numerics/VectorExtensions.cs | 56 ++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 Dalamud/Utility/Numerics/VectorExtensions.cs diff --git a/Dalamud/Utility/Numerics/VectorExtensions.cs b/Dalamud/Utility/Numerics/VectorExtensions.cs new file mode 100644 index 000000000..e6cf2e408 --- /dev/null +++ b/Dalamud/Utility/Numerics/VectorExtensions.cs @@ -0,0 +1,56 @@ +using System.Diagnostics.CodeAnalysis; +using System.Numerics; + +namespace Dalamud.Utility.Numerics; + +/// +/// Extension methods for vectors. +/// +[SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1600:Elements should be documented", Justification = "Redundant.")] +public static class VectorExtensions +{ + public static Vector4 WithX(this Vector4 v, float x) + { + return new Vector4(x, v.Y, v.Z, v.W); + } + + public static Vector4 WithY(this Vector4 v, float y) + { + return new Vector4(v.X, y, v.Z, v.W); + } + + public static Vector4 WithZ(this Vector4 v, float z) + { + return new Vector4(v.X, v.Y, z, v.W); + } + + public static Vector4 WithW(this Vector4 v, float w) + { + return new Vector4(v.X, v.Y, v.Z, w); + } + + public static Vector3 WithX(this Vector3 v, float x) + { + return new Vector3(x, v.Y, v.Z); + } + + public static Vector3 WithY(this Vector3 v, float y) + { + return new Vector3(v.X, y, v.Z); + } + + public static Vector3 WithZ(this Vector3 v, float z) + { + return new Vector3(v.X, v.Y, z); + } + + public static Vector2 WithX(this Vector2 v, float x) + { + return new Vector2(x, v.Y); + } + + public static Vector2 WithY(this Vector2 v, float y) + { + return new Vector2(v.X, y); + } +}