mirror of
https://github.com/oliverbooth/X10D
synced 2024-11-22 19:58:49 +00:00
Add RectInt conversions
This commit is contained in:
parent
5d63560146
commit
74af813d78
@ -24,7 +24,10 @@
|
||||
- X10D.Unity: Added `Point.ToUnityVector2Int()`
|
||||
- X10D.Unity: Added `PointF.ToUnityVector2()`
|
||||
- X10D.Unity: Added `Rect.ToSystemRectangleF()`
|
||||
- X10D.Unity: Added `RectInt.ToSystemRectangle()`
|
||||
- X10D.Unity: Added `RectInt.ToSystemRectangleF()`
|
||||
- X10D.Unity: Added `Rectangle.ToUnityRect()`
|
||||
- X10D.Unity: Added `Rectangle.ToUnityRectInt()`
|
||||
- X10D.Unity: Added `RectangleF.ToUnityRect()`
|
||||
- X10D.Unity: Added `Size.ToUnityVector2()`
|
||||
- X10D.Unity: Added `Size.ToUnityVector2Int()`
|
||||
|
43
X10D.Unity.Tests/Assets/Tests/Drawing/RectIntTests.cs
Normal file
43
X10D.Unity.Tests/Assets/Tests/Drawing/RectIntTests.cs
Normal file
@ -0,0 +1,43 @@
|
||||
using System.Collections;
|
||||
using NUnit.Framework;
|
||||
using UnityEngine;
|
||||
using UnityEngine.TestTools;
|
||||
using X10D.Core;
|
||||
using X10D.Unity.Drawing;
|
||||
using Random = System.Random;
|
||||
|
||||
namespace X10D.Unity.Tests.Drawing
|
||||
{
|
||||
public class RectIntTests
|
||||
{
|
||||
[UnityTest]
|
||||
public IEnumerator ToSystemRectangle_ShouldReturnRectangleF_WithEquivalentMembers()
|
||||
{
|
||||
var random = new Random();
|
||||
var rect = new RectInt(random.Next(), random.Next(), random.Next(), random.Next());
|
||||
var rectangle = rect.ToSystemRectangle();
|
||||
|
||||
Assert.AreEqual(rect.x, rectangle.X);
|
||||
Assert.AreEqual(rect.y, rectangle.Y);
|
||||
Assert.AreEqual(rect.width, rectangle.Width);
|
||||
Assert.AreEqual(rect.height, rectangle.Height);
|
||||
|
||||
yield break;
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator ToSystemRectangleF_ShouldReturnRectangleF_WithEquivalentMembers()
|
||||
{
|
||||
var random = new Random();
|
||||
var rect = new RectInt(random.Next(), random.Next(), random.Next(), random.Next());
|
||||
var rectangle = rect.ToSystemRectangleF();
|
||||
|
||||
Assert.AreEqual(rect.x, rectangle.X);
|
||||
Assert.AreEqual(rect.y, rectangle.Y);
|
||||
Assert.AreEqual(rect.width, rectangle.Width);
|
||||
Assert.AreEqual(rect.height, rectangle.Height);
|
||||
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 18f2e8fbc200475ca5fe7857a457a874
|
||||
timeCreated: 1654077768
|
@ -16,7 +16,7 @@ namespace X10D.Unity.Tests.Drawing
|
||||
var random = new Random();
|
||||
var rectangle = new RectangleF(random.NextSingle(), random.NextSingle(), random.NextSingle(), random.NextSingle());
|
||||
var rect = rectangle.ToUnityRect();
|
||||
|
||||
|
||||
Assert.AreEqual(rectangle.X, rect.x, 1e-6f);
|
||||
Assert.AreEqual(rectangle.Y, rect.y, 1e-6f);
|
||||
Assert.AreEqual(rectangle.Width, rect.width, 1e-6f);
|
||||
|
@ -15,7 +15,22 @@ namespace X10D.Unity.Tests.Drawing
|
||||
var random = new Random();
|
||||
var rectangle = new Rectangle(random.Next(), random.Next(), random.Next(), random.Next());
|
||||
var rect = rectangle.ToUnityRect();
|
||||
|
||||
|
||||
Assert.AreEqual(rectangle.X, rect.x);
|
||||
Assert.AreEqual(rectangle.Y, rect.y);
|
||||
Assert.AreEqual(rectangle.Width, rect.width);
|
||||
Assert.AreEqual(rectangle.Height, rect.height);
|
||||
|
||||
yield break;
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator ToUnityRectInt_ShouldReturnRect_WithEquivalentMembers()
|
||||
{
|
||||
var random = new Random();
|
||||
var rectangle = new Rectangle(random.Next(), random.Next(), random.Next(), random.Next());
|
||||
var rect = rectangle.ToUnityRectInt();
|
||||
|
||||
Assert.AreEqual(rectangle.X, rect.x);
|
||||
Assert.AreEqual(rectangle.Y, rect.y);
|
||||
Assert.AreEqual(rectangle.Width, rect.width);
|
||||
|
36
X10D.Unity/src/Drawing/RectIntExtensions.cs
Normal file
36
X10D.Unity/src/Drawing/RectIntExtensions.cs
Normal file
@ -0,0 +1,36 @@
|
||||
using System.Diagnostics.Contracts;
|
||||
using System.Drawing;
|
||||
using System.Runtime.CompilerServices;
|
||||
using UnityEngine;
|
||||
|
||||
namespace X10D.Unity.Drawing;
|
||||
|
||||
/// <summary>
|
||||
/// Drawing-related extension methods for <see cref="RectInt" />.
|
||||
/// </summary>
|
||||
public static class RectIntExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Converts the current <see cref="RectInt" /> to a <see cref="Rectangle" />.
|
||||
/// </summary>
|
||||
/// <param name="rectangle">The rectangle to convert.</param>
|
||||
/// <returns>The converted rectangle.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Rectangle ToSystemRectangle(this RectInt rectangle)
|
||||
{
|
||||
return new Rectangle(rectangle.x, rectangle.y, rectangle.width, rectangle.height);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts the current <see cref="RectInt" /> to a <see cref="RectangleF" />.
|
||||
/// </summary>
|
||||
/// <param name="rectangle">The rectangle to convert.</param>
|
||||
/// <returns>The converted rectangle.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static RectangleF ToSystemRectangleF(this RectInt rectangle)
|
||||
{
|
||||
return new RectangleF(rectangle.x, rectangle.y, rectangle.width, rectangle.height);
|
||||
}
|
||||
}
|
@ -21,4 +21,16 @@ public static class RectangleExtensions
|
||||
{
|
||||
return new Rect(rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts the current <see cref="Rectangle" /> to a <see cref="RectInt" />.
|
||||
/// </summary>
|
||||
/// <param name="rectangle">The rectangle to convert.</param>
|
||||
/// <returns>The converted rectangle.</returns>
|
||||
[Pure]
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static RectInt ToUnityRectInt(this Rectangle rectangle)
|
||||
{
|
||||
return new RectInt(rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user