mirror of
https://github.com/oliverbooth/X10D
synced 2024-11-23 00:18:47 +00:00
Add System.Numerics/UnityEngine vector/quaternion conversions
This commit is contained in:
parent
d17e1670de
commit
1428618ca9
@ -44,6 +44,8 @@
|
|||||||
- X10D.Unity: Added `GameObject.SetLayerRecursively(int)`
|
- X10D.Unity: Added `GameObject.SetLayerRecursively(int)`
|
||||||
- X10D.Unity: Added `GameObject.SetParent(GameObject[, bool])`
|
- X10D.Unity: Added `GameObject.SetParent(GameObject[, bool])`
|
||||||
- X10D.Unity: Added `GameObject.SetParent(Transform[, bool])`
|
- X10D.Unity: Added `GameObject.SetParent(Transform[, bool])`
|
||||||
|
- X10D.Unity: Added `System.Numerics.Quaternion.ToUnityQuaternion()`
|
||||||
|
- X10D.Unity: Added `Quaternion.ToSystemQuaternion()`
|
||||||
- X10D.Unity: Added `Random.NextColorArgb()`
|
- X10D.Unity: Added `Random.NextColorArgb()`
|
||||||
- X10D.Unity: Added `Random.NextColor32Argb()`
|
- X10D.Unity: Added `Random.NextColor32Argb()`
|
||||||
- X10D.Unity: Added `Random.NextColorRgb()`
|
- X10D.Unity: Added `Random.NextColorRgb()`
|
||||||
@ -54,6 +56,12 @@
|
|||||||
- X10D.Unity: Added `Random.NextUnitVector3()`
|
- X10D.Unity: Added `Random.NextUnitVector3()`
|
||||||
- X10D.Unity: Added `Transform.LookAt(GameObject[, Vector3])`
|
- X10D.Unity: Added `Transform.LookAt(GameObject[, Vector3])`
|
||||||
- X10D.Unity: Added `Transform.SetParent(GameObject[, bool])`
|
- X10D.Unity: Added `Transform.SetParent(GameObject[, bool])`
|
||||||
|
- X10D.Unity: Added `System.Numerics.Vector2.ToUnityVector()`
|
||||||
|
- X10D.Unity: Added `System.Numerics.Vector3.ToUnityVector()`
|
||||||
|
- X10D.Unity: Added `System.Numerics.Vector4.ToUnityVector()`
|
||||||
|
- X10D.Unity: Added `Vector2.ToSystemVector()`
|
||||||
|
- X10D.Unity: Added `Vector3.ToSystemVector()`
|
||||||
|
- X10D.Unity: Added `Vector4.ToSystemVector()`
|
||||||
- X10D.Unity: Added `Vector2.WithX()`
|
- X10D.Unity: Added `Vector2.WithX()`
|
||||||
- X10D.Unity: Added `Vector2.WithY()`
|
- X10D.Unity: Added `Vector2.WithY()`
|
||||||
- X10D.Unity: Added `Vector3.WithX()`
|
- X10D.Unity: Added `Vector3.WithX()`
|
||||||
|
53
X10D.Unity.Tests/Assets/Tests/Numerics/QuaternionTests.cs
Normal file
53
X10D.Unity.Tests/Assets/Tests/Numerics/QuaternionTests.cs
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.TestTools;
|
||||||
|
using X10D.Core;
|
||||||
|
using X10D.Unity.Numerics;
|
||||||
|
using Random = System.Random;
|
||||||
|
|
||||||
|
namespace X10D.Unity.Tests.Numerics
|
||||||
|
{
|
||||||
|
public class QuaternionTests
|
||||||
|
{
|
||||||
|
[UnityTest]
|
||||||
|
public IEnumerator ToSystemQuaternion_ShouldReturnQuaternion_WithEqualComponents()
|
||||||
|
{
|
||||||
|
var random = new Random();
|
||||||
|
float x = random.NextSingle();
|
||||||
|
float y = random.NextSingle();
|
||||||
|
float z = random.NextSingle();
|
||||||
|
float w = random.NextSingle();
|
||||||
|
|
||||||
|
var quaternion = new Quaternion(x, y, z, w);
|
||||||
|
var systemQuaternion = quaternion.ToSystemQuaternion();
|
||||||
|
|
||||||
|
Assert.AreEqual(quaternion.x, systemQuaternion.X, 1e-6f);
|
||||||
|
Assert.AreEqual(quaternion.y, systemQuaternion.Y, 1e-6f);
|
||||||
|
Assert.AreEqual(quaternion.z, systemQuaternion.Z, 1e-6f);
|
||||||
|
Assert.AreEqual(quaternion.w, systemQuaternion.W, 1e-6f);
|
||||||
|
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
[UnityTest]
|
||||||
|
public IEnumerator ToUnityQuaternion_ShouldReturnQuaternion_WithEqualComponents()
|
||||||
|
{
|
||||||
|
var random = new Random();
|
||||||
|
float x = random.NextSingle();
|
||||||
|
float y = random.NextSingle();
|
||||||
|
float z = random.NextSingle();
|
||||||
|
float w = random.NextSingle();
|
||||||
|
|
||||||
|
var quaternion = new System.Numerics.Quaternion(x, y, z, w);
|
||||||
|
var unityQuaternion = quaternion.ToUnityQuaternion();
|
||||||
|
|
||||||
|
Assert.AreEqual(quaternion.X, unityQuaternion.x, 1e-6f);
|
||||||
|
Assert.AreEqual(quaternion.Y, unityQuaternion.y, 1e-6f);
|
||||||
|
Assert.AreEqual(quaternion.Z, unityQuaternion.z, 1e-6f);
|
||||||
|
Assert.AreEqual(quaternion.W, unityQuaternion.w, 1e-6f);
|
||||||
|
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a395fec41c5a4e9d9ffb05324e8159b0
|
||||||
|
timeCreated: 1652124913
|
@ -2,12 +2,48 @@
|
|||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.TestTools;
|
using UnityEngine.TestTools;
|
||||||
|
using X10D.Core;
|
||||||
using X10D.Unity.Numerics;
|
using X10D.Unity.Numerics;
|
||||||
|
using Random = System.Random;
|
||||||
|
|
||||||
namespace X10D.Unity.Tests.Numerics
|
namespace X10D.Unity.Tests.Numerics
|
||||||
{
|
{
|
||||||
public class Vector2Tests
|
public class Vector2Tests
|
||||||
{
|
{
|
||||||
|
[UnityTest]
|
||||||
|
public IEnumerator ToSystemVector_ShouldReturnVector_WithEqualComponents()
|
||||||
|
{
|
||||||
|
var random = new Random();
|
||||||
|
float x = random.NextSingle();
|
||||||
|
float y = random.NextSingle();
|
||||||
|
|
||||||
|
var vector = new Vector2(x, y);
|
||||||
|
var systemVector = vector.ToSystemVector();
|
||||||
|
|
||||||
|
Assert.AreEqual(vector.magnitude, systemVector.Length(), 1e-6f);
|
||||||
|
Assert.AreEqual(vector.x, systemVector.X, 1e-6f);
|
||||||
|
Assert.AreEqual(vector.y, systemVector.Y, 1e-6f);
|
||||||
|
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
[UnityTest]
|
||||||
|
public IEnumerator ToUnityVector_ShouldReturnVector_WithEqualComponents()
|
||||||
|
{
|
||||||
|
var random = new Random();
|
||||||
|
float x = random.NextSingle();
|
||||||
|
float y = random.NextSingle();
|
||||||
|
|
||||||
|
var vector = new System.Numerics.Vector2(x, y);
|
||||||
|
var unityVector = vector.ToUnityVector();
|
||||||
|
|
||||||
|
Assert.AreEqual(vector.Length(), unityVector.magnitude, 1e-6f);
|
||||||
|
Assert.AreEqual(vector.X, unityVector.x, 1e-6f);
|
||||||
|
Assert.AreEqual(vector.Y, unityVector.y, 1e-6f);
|
||||||
|
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
[UnityTest]
|
[UnityTest]
|
||||||
public IEnumerator WithX_ShouldReturnVectorWithNewX_GivenVector()
|
public IEnumerator WithX_ShouldReturnVectorWithNewX_GivenVector()
|
||||||
{
|
{
|
||||||
|
@ -2,12 +2,52 @@
|
|||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.TestTools;
|
using UnityEngine.TestTools;
|
||||||
|
using X10D.Core;
|
||||||
using X10D.Unity.Numerics;
|
using X10D.Unity.Numerics;
|
||||||
|
using Random = System.Random;
|
||||||
|
|
||||||
namespace X10D.Unity.Tests.Numerics
|
namespace X10D.Unity.Tests.Numerics
|
||||||
{
|
{
|
||||||
public class Vector3Tests
|
public class Vector3Tests
|
||||||
{
|
{
|
||||||
|
[UnityTest]
|
||||||
|
public IEnumerator ToSystemVector_ShouldReturnVector_WithEqualComponents()
|
||||||
|
{
|
||||||
|
var random = new Random();
|
||||||
|
float x = random.NextSingle();
|
||||||
|
float y = random.NextSingle();
|
||||||
|
float z = random.NextSingle();
|
||||||
|
|
||||||
|
var vector = new Vector3(x, y, z);
|
||||||
|
var systemVector = vector.ToSystemVector();
|
||||||
|
|
||||||
|
Assert.AreEqual(vector.magnitude, systemVector.Length(), 1e-6f);
|
||||||
|
Assert.AreEqual(vector.x, systemVector.X, 1e-6f);
|
||||||
|
Assert.AreEqual(vector.y, systemVector.Y, 1e-6f);
|
||||||
|
Assert.AreEqual(vector.z, systemVector.Z, 1e-6f);
|
||||||
|
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
[UnityTest]
|
||||||
|
public IEnumerator ToUnityVector_ShouldReturnVector_WithEqualComponents()
|
||||||
|
{
|
||||||
|
var random = new Random();
|
||||||
|
float x = random.NextSingle();
|
||||||
|
float y = random.NextSingle();
|
||||||
|
float z = random.NextSingle();
|
||||||
|
|
||||||
|
var vector = new System.Numerics.Vector3(x, y, z);
|
||||||
|
var unityVector = vector.ToUnityVector();
|
||||||
|
|
||||||
|
Assert.AreEqual(vector.Length(), unityVector.magnitude, 1e-6f);
|
||||||
|
Assert.AreEqual(vector.X, unityVector.x, 1e-6f);
|
||||||
|
Assert.AreEqual(vector.Y, unityVector.y, 1e-6f);
|
||||||
|
Assert.AreEqual(vector.Z, unityVector.z, 1e-6f);
|
||||||
|
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
[UnityTest]
|
[UnityTest]
|
||||||
public IEnumerator WithX_ShouldReturnVectorWithNewX_GivenVector()
|
public IEnumerator WithX_ShouldReturnVectorWithNewX_GivenVector()
|
||||||
{
|
{
|
||||||
|
@ -2,12 +2,56 @@
|
|||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.TestTools;
|
using UnityEngine.TestTools;
|
||||||
|
using X10D.Core;
|
||||||
using X10D.Unity.Numerics;
|
using X10D.Unity.Numerics;
|
||||||
|
using Random = System.Random;
|
||||||
|
|
||||||
namespace X10D.Unity.Tests.Numerics
|
namespace X10D.Unity.Tests.Numerics
|
||||||
{
|
{
|
||||||
public class Vector4Tests
|
public class Vector4Tests
|
||||||
{
|
{
|
||||||
|
[UnityTest]
|
||||||
|
public IEnumerator ToSystemVector_ShouldReturnVector_WithEqualComponents()
|
||||||
|
{
|
||||||
|
var random = new Random();
|
||||||
|
float x = random.NextSingle();
|
||||||
|
float y = random.NextSingle();
|
||||||
|
float z = random.NextSingle();
|
||||||
|
float w = random.NextSingle();
|
||||||
|
|
||||||
|
var vector = new Vector4(x, y, z, w);
|
||||||
|
var systemVector = vector.ToSystemVector();
|
||||||
|
|
||||||
|
Assert.AreEqual(vector.magnitude, systemVector.Length(), 1e-6f);
|
||||||
|
Assert.AreEqual(vector.x, systemVector.X, 1e-6f);
|
||||||
|
Assert.AreEqual(vector.y, systemVector.Y, 1e-6f);
|
||||||
|
Assert.AreEqual(vector.z, systemVector.Z, 1e-6f);
|
||||||
|
Assert.AreEqual(vector.w, systemVector.W, 1e-6f);
|
||||||
|
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
[UnityTest]
|
||||||
|
public IEnumerator ToUnityVector_ShouldReturnVector_WithEqualComponents()
|
||||||
|
{
|
||||||
|
var random = new Random();
|
||||||
|
float x = random.NextSingle();
|
||||||
|
float y = random.NextSingle();
|
||||||
|
float z = random.NextSingle();
|
||||||
|
float w = random.NextSingle();
|
||||||
|
|
||||||
|
var vector = new System.Numerics.Vector4(x, y, z, w);
|
||||||
|
var unityVector = vector.ToUnityVector();
|
||||||
|
|
||||||
|
Assert.AreEqual(vector.Length(), unityVector.magnitude, 1e-6f);
|
||||||
|
Assert.AreEqual(vector.X, unityVector.x, 1e-6f);
|
||||||
|
Assert.AreEqual(vector.Y, unityVector.y, 1e-6f);
|
||||||
|
Assert.AreEqual(vector.Z, unityVector.z, 1e-6f);
|
||||||
|
Assert.AreEqual(vector.W, unityVector.w, 1e-6f);
|
||||||
|
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
[UnityTest]
|
[UnityTest]
|
||||||
public IEnumerator WithW_ShouldReturnVectorWithNewW_GivenVector()
|
public IEnumerator WithW_ShouldReturnVectorWithNewW_GivenVector()
|
||||||
{
|
{
|
||||||
@ -24,7 +68,7 @@ namespace X10D.Unity.Tests.Numerics
|
|||||||
Assert.AreEqual(new Vector4(1, 0, 0, 1), new Vector4(1, 0, 0, 0).WithW(1));
|
Assert.AreEqual(new Vector4(1, 0, 0, 1), new Vector4(1, 0, 0, 0).WithW(1));
|
||||||
Assert.AreEqual(new Vector4(0, 1, 0, 1), new Vector4(0, 1, 0, 0).WithW(1));
|
Assert.AreEqual(new Vector4(0, 1, 0, 1), new Vector4(0, 1, 0, 0).WithW(1));
|
||||||
Assert.AreEqual(new Vector4(0, 0, 1, 1), new Vector4(0, 0, 1, 0).WithW(1));
|
Assert.AreEqual(new Vector4(0, 0, 1, 1), new Vector4(0, 0, 1, 0).WithW(1));
|
||||||
|
|
||||||
yield break;
|
yield break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,7 +88,7 @@ namespace X10D.Unity.Tests.Numerics
|
|||||||
Assert.AreEqual(new Vector4(1, 0, 0, 0), new Vector4(1, 0, 0, 0).WithX(1));
|
Assert.AreEqual(new Vector4(1, 0, 0, 0), new Vector4(1, 0, 0, 0).WithX(1));
|
||||||
Assert.AreEqual(new Vector4(1, 1, 0, 0), new Vector4(0, 1, 0, 0).WithX(1));
|
Assert.AreEqual(new Vector4(1, 1, 0, 0), new Vector4(0, 1, 0, 0).WithX(1));
|
||||||
Assert.AreEqual(new Vector4(1, 0, 1, 0), new Vector4(0, 0, 1, 0).WithX(1));
|
Assert.AreEqual(new Vector4(1, 0, 1, 0), new Vector4(0, 0, 1, 0).WithX(1));
|
||||||
|
|
||||||
yield break;
|
yield break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -64,7 +108,7 @@ namespace X10D.Unity.Tests.Numerics
|
|||||||
Assert.AreEqual(new Vector4(1, 1, 0, 0), new Vector4(1, 0, 0, 0).WithY(1));
|
Assert.AreEqual(new Vector4(1, 1, 0, 0), new Vector4(1, 0, 0, 0).WithY(1));
|
||||||
Assert.AreEqual(new Vector4(0, 1, 0, 0), new Vector4(0, 1, 0, 0).WithY(1));
|
Assert.AreEqual(new Vector4(0, 1, 0, 0), new Vector4(0, 1, 0, 0).WithY(1));
|
||||||
Assert.AreEqual(new Vector4(0, 1, 1, 0), new Vector4(0, 0, 1, 0).WithY(1));
|
Assert.AreEqual(new Vector4(0, 1, 1, 0), new Vector4(0, 0, 1, 0).WithY(1));
|
||||||
|
|
||||||
yield break;
|
yield break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,7 +128,7 @@ namespace X10D.Unity.Tests.Numerics
|
|||||||
Assert.AreEqual(new Vector4(1, 0, 1, 0), new Vector4(1, 0, 0, 0).WithZ(1));
|
Assert.AreEqual(new Vector4(1, 0, 1, 0), new Vector4(1, 0, 0, 0).WithZ(1));
|
||||||
Assert.AreEqual(new Vector4(0, 1, 1, 0), new Vector4(0, 1, 0, 0).WithZ(1));
|
Assert.AreEqual(new Vector4(0, 1, 1, 0), new Vector4(0, 1, 0, 0).WithZ(1));
|
||||||
Assert.AreEqual(new Vector4(0, 0, 1, 0), new Vector4(0, 0, 1, 0).WithZ(1));
|
Assert.AreEqual(new Vector4(0, 0, 1, 0), new Vector4(0, 0, 1, 0).WithZ(1));
|
||||||
|
|
||||||
yield break;
|
yield break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
35
X10D.Unity/src/Numerics/QuaternionExtensions.cs
Normal file
35
X10D.Unity/src/Numerics/QuaternionExtensions.cs
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
using System.Diagnostics.Contracts;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace X10D.Unity.Numerics;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Numeric-extensions for <see cref="Quaternion" />.
|
||||||
|
/// </summary>
|
||||||
|
public static class QuaternionExtensions
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Converts the current quaternion to a <see cref="System.Numerics.Quaternion" />.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="quaternion">The quaternion to convert.</param>
|
||||||
|
/// <returns>The converted quaternion.</returns>
|
||||||
|
[Pure]
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
|
public static System.Numerics.Quaternion ToSystemQuaternion(this Quaternion quaternion)
|
||||||
|
{
|
||||||
|
return new System.Numerics.Quaternion(quaternion.x, quaternion.y, quaternion.z, quaternion.w);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Converts the current quaternion to a <see cref="Quaternion" />.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="quaternion">The quaternion to convert.</param>
|
||||||
|
/// <returns>The converted quaternion.</returns>
|
||||||
|
[Pure]
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
|
public static Quaternion ToUnityQuaternion(this System.Numerics.Quaternion quaternion)
|
||||||
|
{
|
||||||
|
return new Quaternion(quaternion.X, quaternion.Y, quaternion.Z, quaternion.W);
|
||||||
|
}
|
||||||
|
}
|
@ -9,6 +9,30 @@ namespace X10D.Unity.Numerics;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static class Vector2Extensions
|
public static class Vector2Extensions
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Converts the current vector to a <see cref="System.Numerics.Vector2" />.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="vector">The vector to convert.</param>
|
||||||
|
/// <returns>The converted vector.</returns>
|
||||||
|
[Pure]
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
|
public static System.Numerics.Vector2 ToSystemVector(this Vector2 vector)
|
||||||
|
{
|
||||||
|
return new System.Numerics.Vector2(vector.x, vector.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Converts the current vector to a <see cref="Vector2" />.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="vector">The vector to convert.</param>
|
||||||
|
/// <returns>The converted vector.</returns>
|
||||||
|
[Pure]
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
|
public static Vector2 ToUnityVector(this System.Numerics.Vector2 vector)
|
||||||
|
{
|
||||||
|
return new Vector2(vector.X, vector.Y);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns a vector whose Y component is the same as the specified vector, and whose X component is a new value.
|
/// Returns a vector whose Y component is the same as the specified vector, and whose X component is a new value.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -9,6 +9,30 @@ namespace X10D.Unity.Numerics;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static class Vector3Extensions
|
public static class Vector3Extensions
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Converts the current vector to a <see cref="System.Numerics.Vector3" />.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="vector">The vector to convert.</param>
|
||||||
|
/// <returns>The converted vector.</returns>
|
||||||
|
[Pure]
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
|
public static System.Numerics.Vector3 ToSystemVector(this Vector3 vector)
|
||||||
|
{
|
||||||
|
return new System.Numerics.Vector3(vector.x, vector.y, vector.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Converts the current vector to a <see cref="Vector3" />.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="vector">The vector to convert.</param>
|
||||||
|
/// <returns>The converted vector.</returns>
|
||||||
|
[Pure]
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
|
public static Vector3 ToUnityVector(this System.Numerics.Vector3 vector)
|
||||||
|
{
|
||||||
|
return new Vector3(vector.X, vector.Y, vector.Z);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns a vector whose Y and Z components are the same as the specified vector, and whose X component is a new value.
|
/// Returns a vector whose Y and Z components are the same as the specified vector, and whose X component is a new value.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -9,6 +9,30 @@ namespace X10D.Unity.Numerics;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static class Vector4Extensions
|
public static class Vector4Extensions
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Converts the current vector to a <see cref="System.Numerics.Vector4" />.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="vector">The vector to convert.</param>
|
||||||
|
/// <returns>The converted vector.</returns>
|
||||||
|
[Pure]
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
|
public static System.Numerics.Vector4 ToSystemVector(this Vector4 vector)
|
||||||
|
{
|
||||||
|
return new System.Numerics.Vector4(vector.x, vector.y, vector.z, vector.w);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Converts the current vector to a <see cref="Vector4" />.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="vector">The vector to convert.</param>
|
||||||
|
/// <returns>The converted vector.</returns>
|
||||||
|
[Pure]
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
|
public static Vector4 ToUnityVector(this System.Numerics.Vector4 vector)
|
||||||
|
{
|
||||||
|
return new Vector4(vector.X, vector.Y, vector.Z, vector.W);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns a vector whose Y, Z, and W components are the same as the specified vector, and whose X component is a new
|
/// Returns a vector whose Y, Z, and W components are the same as the specified vector, and whose X component is a new
|
||||||
/// value.
|
/// value.
|
||||||
|
Loading…
Reference in New Issue
Block a user