From 73294a385fd6c4777210a95299f75cd24a5b8bd9 Mon Sep 17 00:00:00 2001
From: Lisowolf <minebuilder445@gmail.com>
Date: Sat, 22 Jul 2023 00:54:53 +0600
Subject: [PATCH 1/3] start of adding missing this keyword in ToSystem and
 ToGeneric parameters for Vector4D<T>


From 7bc9c891d7a24594b2d94f7fe2c153133fb27b38 Mon Sep 17 00:00:00 2001
From: Lisowolf <minebuilder445@gmail.com>
Date: Sat, 22 Jul 2023 02:09:22 +0600
Subject: [PATCH 2/3] Added missed "this" keyword in SystemNumericsExtensions

---
 src/Maths/Silk.NET.Maths/SystemNumericsExtensions.cs | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/Maths/Silk.NET.Maths/SystemNumericsExtensions.cs b/src/Maths/Silk.NET.Maths/SystemNumericsExtensions.cs
index c82b409d65..3c15e8a89b 100644
--- a/src/Maths/Silk.NET.Maths/SystemNumericsExtensions.cs
+++ b/src/Maths/Silk.NET.Maths/SystemNumericsExtensions.cs
@@ -66,7 +66,7 @@ public static System.Numerics.Vector3 ToSystem(this Vector3D<float> value)
         /// </summary>
         /// <param name="value">The source vector</param>
         /// <returns>The converted vector</returns>
-        public static System.Numerics.Vector4 ToSystem(Vector4D<float> value)
+        public static System.Numerics.Vector4 ToSystem(this Vector4D<float> value)
             => new(value.X, value.Y, value.Z, value.W);
 
         /// <summary>
@@ -127,7 +127,7 @@ public static Vector3D<float> ToGeneric(this System.Numerics.Vector3 value)
         /// </summary>
         /// <param name="value">The source vector</param>
         /// <returns>The converted vector</returns>
-        public static Vector4D<float> ToGeneric(System.Numerics.Vector4 value)
+        public static Vector4D<float> ToGeneric(this System.Numerics.Vector4 value)
             => new(value.X, value.Y, value.Z, value.W);
     }
-}
\ No newline at end of file
+}

From 6890d79126b7121cfaf0922059c5d0bea0a2a289 Mon Sep 17 00:00:00 2001
From: Lisowolf <minebuilder445@gmail.com>
Date: Sat, 22 Jul 2023 02:29:03 +0600
Subject: [PATCH 3/3] Added ToSystem and ToGeneric methods to public api for
 Vector4 and Vector4D<T>

---
 src/Maths/Silk.NET.Maths/PublicAPI/net5.0/PublicAPI.Shipped.txt | 2 ++
 .../PublicAPI/net6.0-android/PublicAPI.Shipped.txt              | 2 ++
 .../Silk.NET.Maths/PublicAPI/net6.0-ios/PublicAPI.Shipped.txt   | 2 ++
 .../PublicAPI/netcoreapp3.1/PublicAPI.Shipped.txt               | 2 ++
 .../PublicAPI/netstandard2.0/PublicAPI.Shipped.txt              | 2 ++
 .../PublicAPI/netstandard2.1/PublicAPI.Shipped.txt              | 2 ++
 6 files changed, 12 insertions(+)

diff --git a/src/Maths/Silk.NET.Maths/PublicAPI/net5.0/PublicAPI.Shipped.txt b/src/Maths/Silk.NET.Maths/PublicAPI/net5.0/PublicAPI.Shipped.txt
index 703364ae3e..0f725026db 100644
--- a/src/Maths/Silk.NET.Maths/PublicAPI/net5.0/PublicAPI.Shipped.txt
+++ b/src/Maths/Silk.NET.Maths/PublicAPI/net5.0/PublicAPI.Shipped.txt
@@ -1246,6 +1246,7 @@ static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Pl
 static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Quaternion value) -> Silk.NET.Maths.Quaternion<float>
 static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Vector2 value) -> Silk.NET.Maths.Vector2D<float>
 static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Vector3 value) -> Silk.NET.Maths.Vector3D<float>
+static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Vector4 value) -> Silk.NET.Maths.Vector4D<float>
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(Silk.NET.Maths.Vector4D<float> value) -> System.Numerics.Vector4
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Matrix3X2<float> value) -> System.Numerics.Matrix3x2
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Matrix4X4<float> value) -> System.Numerics.Matrix4x4
@@ -1253,6 +1254,7 @@ static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Plan
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Quaternion<float> value) -> System.Numerics.Quaternion
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Vector2D<float> value) -> System.Numerics.Vector2
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Vector3D<float> value) -> System.Numerics.Vector3
+static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Vector4D<float> value) -> System.Numerics.Vector4
 static Silk.NET.Maths.Vector2D.Abs<T>(Silk.NET.Maths.Vector2D<T> value) -> Silk.NET.Maths.Vector2D<T>
 static Silk.NET.Maths.Vector2D.Add<T>(Silk.NET.Maths.Vector2D<T> left, Silk.NET.Maths.Vector2D<T> right) -> Silk.NET.Maths.Vector2D<T>
 static Silk.NET.Maths.Vector2D.Clamp<T>(Silk.NET.Maths.Vector2D<T> value1, Silk.NET.Maths.Vector2D<T> min, Silk.NET.Maths.Vector2D<T> max) -> Silk.NET.Maths.Vector2D<T>
diff --git a/src/Maths/Silk.NET.Maths/PublicAPI/net6.0-android/PublicAPI.Shipped.txt b/src/Maths/Silk.NET.Maths/PublicAPI/net6.0-android/PublicAPI.Shipped.txt
index 703364ae3e..0f725026db 100644
--- a/src/Maths/Silk.NET.Maths/PublicAPI/net6.0-android/PublicAPI.Shipped.txt
+++ b/src/Maths/Silk.NET.Maths/PublicAPI/net6.0-android/PublicAPI.Shipped.txt
@@ -1246,6 +1246,7 @@ static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Pl
 static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Quaternion value) -> Silk.NET.Maths.Quaternion<float>
 static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Vector2 value) -> Silk.NET.Maths.Vector2D<float>
 static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Vector3 value) -> Silk.NET.Maths.Vector3D<float>
+static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Vector4 value) -> Silk.NET.Maths.Vector4D<float>
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(Silk.NET.Maths.Vector4D<float> value) -> System.Numerics.Vector4
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Matrix3X2<float> value) -> System.Numerics.Matrix3x2
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Matrix4X4<float> value) -> System.Numerics.Matrix4x4
@@ -1253,6 +1254,7 @@ static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Plan
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Quaternion<float> value) -> System.Numerics.Quaternion
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Vector2D<float> value) -> System.Numerics.Vector2
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Vector3D<float> value) -> System.Numerics.Vector3
+static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Vector4D<float> value) -> System.Numerics.Vector4
 static Silk.NET.Maths.Vector2D.Abs<T>(Silk.NET.Maths.Vector2D<T> value) -> Silk.NET.Maths.Vector2D<T>
 static Silk.NET.Maths.Vector2D.Add<T>(Silk.NET.Maths.Vector2D<T> left, Silk.NET.Maths.Vector2D<T> right) -> Silk.NET.Maths.Vector2D<T>
 static Silk.NET.Maths.Vector2D.Clamp<T>(Silk.NET.Maths.Vector2D<T> value1, Silk.NET.Maths.Vector2D<T> min, Silk.NET.Maths.Vector2D<T> max) -> Silk.NET.Maths.Vector2D<T>
diff --git a/src/Maths/Silk.NET.Maths/PublicAPI/net6.0-ios/PublicAPI.Shipped.txt b/src/Maths/Silk.NET.Maths/PublicAPI/net6.0-ios/PublicAPI.Shipped.txt
index 703364ae3e..0f725026db 100644
--- a/src/Maths/Silk.NET.Maths/PublicAPI/net6.0-ios/PublicAPI.Shipped.txt
+++ b/src/Maths/Silk.NET.Maths/PublicAPI/net6.0-ios/PublicAPI.Shipped.txt
@@ -1246,6 +1246,7 @@ static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Pl
 static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Quaternion value) -> Silk.NET.Maths.Quaternion<float>
 static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Vector2 value) -> Silk.NET.Maths.Vector2D<float>
 static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Vector3 value) -> Silk.NET.Maths.Vector3D<float>
+static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Vector4 value) -> Silk.NET.Maths.Vector4D<float>
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(Silk.NET.Maths.Vector4D<float> value) -> System.Numerics.Vector4
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Matrix3X2<float> value) -> System.Numerics.Matrix3x2
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Matrix4X4<float> value) -> System.Numerics.Matrix4x4
@@ -1253,6 +1254,7 @@ static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Plan
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Quaternion<float> value) -> System.Numerics.Quaternion
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Vector2D<float> value) -> System.Numerics.Vector2
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Vector3D<float> value) -> System.Numerics.Vector3
+static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Vector4D<float> value) -> System.Numerics.Vector4
 static Silk.NET.Maths.Vector2D.Abs<T>(Silk.NET.Maths.Vector2D<T> value) -> Silk.NET.Maths.Vector2D<T>
 static Silk.NET.Maths.Vector2D.Add<T>(Silk.NET.Maths.Vector2D<T> left, Silk.NET.Maths.Vector2D<T> right) -> Silk.NET.Maths.Vector2D<T>
 static Silk.NET.Maths.Vector2D.Clamp<T>(Silk.NET.Maths.Vector2D<T> value1, Silk.NET.Maths.Vector2D<T> min, Silk.NET.Maths.Vector2D<T> max) -> Silk.NET.Maths.Vector2D<T>
diff --git a/src/Maths/Silk.NET.Maths/PublicAPI/netcoreapp3.1/PublicAPI.Shipped.txt b/src/Maths/Silk.NET.Maths/PublicAPI/netcoreapp3.1/PublicAPI.Shipped.txt
index 703364ae3e..0f725026db 100644
--- a/src/Maths/Silk.NET.Maths/PublicAPI/netcoreapp3.1/PublicAPI.Shipped.txt
+++ b/src/Maths/Silk.NET.Maths/PublicAPI/netcoreapp3.1/PublicAPI.Shipped.txt
@@ -1246,6 +1246,7 @@ static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Pl
 static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Quaternion value) -> Silk.NET.Maths.Quaternion<float>
 static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Vector2 value) -> Silk.NET.Maths.Vector2D<float>
 static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Vector3 value) -> Silk.NET.Maths.Vector3D<float>
+static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Vector4 value) -> Silk.NET.Maths.Vector4D<float>
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(Silk.NET.Maths.Vector4D<float> value) -> System.Numerics.Vector4
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Matrix3X2<float> value) -> System.Numerics.Matrix3x2
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Matrix4X4<float> value) -> System.Numerics.Matrix4x4
@@ -1253,6 +1254,7 @@ static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Plan
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Quaternion<float> value) -> System.Numerics.Quaternion
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Vector2D<float> value) -> System.Numerics.Vector2
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Vector3D<float> value) -> System.Numerics.Vector3
+static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Vector4D<float> value) -> System.Numerics.Vector4
 static Silk.NET.Maths.Vector2D.Abs<T>(Silk.NET.Maths.Vector2D<T> value) -> Silk.NET.Maths.Vector2D<T>
 static Silk.NET.Maths.Vector2D.Add<T>(Silk.NET.Maths.Vector2D<T> left, Silk.NET.Maths.Vector2D<T> right) -> Silk.NET.Maths.Vector2D<T>
 static Silk.NET.Maths.Vector2D.Clamp<T>(Silk.NET.Maths.Vector2D<T> value1, Silk.NET.Maths.Vector2D<T> min, Silk.NET.Maths.Vector2D<T> max) -> Silk.NET.Maths.Vector2D<T>
diff --git a/src/Maths/Silk.NET.Maths/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt b/src/Maths/Silk.NET.Maths/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt
index 703364ae3e..0f725026db 100644
--- a/src/Maths/Silk.NET.Maths/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt
+++ b/src/Maths/Silk.NET.Maths/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt
@@ -1246,6 +1246,7 @@ static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Pl
 static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Quaternion value) -> Silk.NET.Maths.Quaternion<float>
 static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Vector2 value) -> Silk.NET.Maths.Vector2D<float>
 static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Vector3 value) -> Silk.NET.Maths.Vector3D<float>
+static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Vector4 value) -> Silk.NET.Maths.Vector4D<float>
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(Silk.NET.Maths.Vector4D<float> value) -> System.Numerics.Vector4
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Matrix3X2<float> value) -> System.Numerics.Matrix3x2
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Matrix4X4<float> value) -> System.Numerics.Matrix4x4
@@ -1253,6 +1254,7 @@ static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Plan
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Quaternion<float> value) -> System.Numerics.Quaternion
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Vector2D<float> value) -> System.Numerics.Vector2
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Vector3D<float> value) -> System.Numerics.Vector3
+static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Vector4D<float> value) -> System.Numerics.Vector4
 static Silk.NET.Maths.Vector2D.Abs<T>(Silk.NET.Maths.Vector2D<T> value) -> Silk.NET.Maths.Vector2D<T>
 static Silk.NET.Maths.Vector2D.Add<T>(Silk.NET.Maths.Vector2D<T> left, Silk.NET.Maths.Vector2D<T> right) -> Silk.NET.Maths.Vector2D<T>
 static Silk.NET.Maths.Vector2D.Clamp<T>(Silk.NET.Maths.Vector2D<T> value1, Silk.NET.Maths.Vector2D<T> min, Silk.NET.Maths.Vector2D<T> max) -> Silk.NET.Maths.Vector2D<T>
diff --git a/src/Maths/Silk.NET.Maths/PublicAPI/netstandard2.1/PublicAPI.Shipped.txt b/src/Maths/Silk.NET.Maths/PublicAPI/netstandard2.1/PublicAPI.Shipped.txt
index 703364ae3e..0f725026db 100644
--- a/src/Maths/Silk.NET.Maths/PublicAPI/netstandard2.1/PublicAPI.Shipped.txt
+++ b/src/Maths/Silk.NET.Maths/PublicAPI/netstandard2.1/PublicAPI.Shipped.txt
@@ -1246,6 +1246,7 @@ static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Pl
 static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Quaternion value) -> Silk.NET.Maths.Quaternion<float>
 static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Vector2 value) -> Silk.NET.Maths.Vector2D<float>
 static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Vector3 value) -> Silk.NET.Maths.Vector3D<float>
+static Silk.NET.Maths.SystemNumericsExtensions.ToGeneric(this System.Numerics.Vector4 value) -> Silk.NET.Maths.Vector4D<float>
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(Silk.NET.Maths.Vector4D<float> value) -> System.Numerics.Vector4
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Matrix3X2<float> value) -> System.Numerics.Matrix3x2
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Matrix4X4<float> value) -> System.Numerics.Matrix4x4
@@ -1253,6 +1254,7 @@ static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Plan
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Quaternion<float> value) -> System.Numerics.Quaternion
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Vector2D<float> value) -> System.Numerics.Vector2
 static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Vector3D<float> value) -> System.Numerics.Vector3
+static Silk.NET.Maths.SystemNumericsExtensions.ToSystem(this Silk.NET.Maths.Vector4D<float> value) -> System.Numerics.Vector4
 static Silk.NET.Maths.Vector2D.Abs<T>(Silk.NET.Maths.Vector2D<T> value) -> Silk.NET.Maths.Vector2D<T>
 static Silk.NET.Maths.Vector2D.Add<T>(Silk.NET.Maths.Vector2D<T> left, Silk.NET.Maths.Vector2D<T> right) -> Silk.NET.Maths.Vector2D<T>
 static Silk.NET.Maths.Vector2D.Clamp<T>(Silk.NET.Maths.Vector2D<T> value1, Silk.NET.Maths.Vector2D<T> min, Silk.NET.Maths.Vector2D<T> max) -> Silk.NET.Maths.Vector2D<T>