diff --git a/Engine.Core/Extensions/Abstract/TransformExtensions.cs b/Engine.Core/Extensions/Abstract/TransformExtensions.cs
deleted file mode 100644
index af477e1..0000000
--- a/Engine.Core/Extensions/Abstract/TransformExtensions.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-namespace Syntriax.Engine.Core.Abstract;
-
-public static class TransformExtensions
-{
- public static Vector2D TransformVector2D(this ITransform2D transform, Vector2D vector)
- => vector.Scale(transform.Scale)
- .Rotate(transform.Rotation * Math.DegreeToRadian)
- .Add(transform.Position);
-}
diff --git a/Engine.Core/Primitives/Circle.cs b/Engine.Core/Primitives/Circle.cs
index ae99589..7925c85 100644
--- a/Engine.Core/Primitives/Circle.cs
+++ b/Engine.Core/Primitives/Circle.cs
@@ -1,4 +1,5 @@
using System.Diagnostics;
+
using Syntriax.Engine.Core.Abstract;
namespace Syntriax.Engine.Core;
@@ -66,8 +67,8 @@ public readonly struct Circle(Vector2D center, float radius)
///
/// Transforms the by the specified .
///
- public static Circle TransformCircle(ITransform2D transform, Circle circle)
- => new(transform.TransformVector2D(circle.Center), circle.Radius * (transform.Scale.Magnitude / Vector2D.One.Magnitude));
+ public static Circle Transform(ITransform2D transform, Circle circle)
+ => new(transform.Transform(circle.Center), circle.Radius * (transform.Scale.Magnitude / Vector2D.One.Magnitude));
///
/// Checks if two s are approximately equal.
@@ -97,8 +98,8 @@ public static class CircleExtensions
///
public static Projection1D ToProjection(this Circle circle, Vector2D projectionVector) => Circle.Project(circle, projectionVector);
- ///
- public static Circle TransformCircle(this ITransform2D transform, Circle circle) => Circle.TransformCircle(transform, circle);
+ ///
+ public static Circle Transform(this ITransform2D transform, Circle circle) => Circle.Transform(transform, circle);
///
public static bool ApproximatelyEquals(this Circle left, Circle right, float epsilon = float.Epsilon) => Circle.ApproximatelyEquals(left, right, epsilon);
diff --git a/Engine.Core/Primitives/Shape2D.cs b/Engine.Core/Primitives/Shape2D.cs
index 4a0e011..9ab193c 100644
--- a/Engine.Core/Primitives/Shape2D.cs
+++ b/Engine.Core/Primitives/Shape2D.cs
@@ -192,13 +192,13 @@ public readonly struct Shape2D(List vertices) : IEnumerable
/// The to transform.
/// The to apply.
/// The transformed .
- public static Shape2D TransformShape(Shape2D shape, ITransform2D transform)
+ public static Shape2D Transform(Shape2D shape, ITransform2D transform)
{
List vertices = new(shape.Vertices.Count);
int count = shape.Vertices.Count;
for (int i = 0; i < count; i++)
- vertices.Add(transform.TransformVector2D(shape[i]));
+ vertices.Add(transform.Transform(shape[i]));
return new Shape2D(vertices);
}
@@ -209,13 +209,13 @@ public readonly struct Shape2D(List vertices) : IEnumerable
/// The to transform.
/// The to apply.
/// The transformed .
- public static void TransformShape(Shape2D from, ITransform2D transform, ref Shape2D to)
+ public static void Transform(Shape2D from, ITransform2D transform, ref Shape2D to)
{
to._verticesList.Clear();
int count = from._verticesList.Count;
for (int i = 0; i < count; i++)
- to._verticesList.Add(transform.TransformVector2D(from[i]));
+ to._verticesList.Add(transform.Transform(from[i]));
}
///
@@ -273,17 +273,17 @@ public static class Shape2DExtensions
///
public static Projection1D ToProjection(this Shape2D shape, Vector2D projectionVector) => Shape2D.Project(shape, projectionVector);
- ///
- public static Shape2D TransformShape(this ITransform2D transform, Shape2D shape) => Shape2D.TransformShape(shape, transform);
+ ///
+ public static Shape2D Transform(this ITransform2D transform, Shape2D shape) => Shape2D.Transform(shape, transform);
- ///
- public static void TransformShape(this ITransform2D transform, Shape2D from, ref Shape2D to) => Shape2D.TransformShape(from, transform, ref to);
+ ///
+ public static void Transform(this ITransform2D transform, Shape2D from, ref Shape2D to) => Shape2D.Transform(from, transform, ref to);
- ///
- public static Shape2D Transform(this Shape2D shape, ITransform2D transform) => Shape2D.TransformShape(shape, transform);
+ ///
+ public static Shape2D Transform(this Shape2D shape, ITransform2D transform) => Shape2D.Transform(shape, transform);
- ///
- public static void Transform(this Shape2D from, ITransform2D transform, ref Shape2D to) => Shape2D.TransformShape(from, transform, ref to);
+ ///
+ public static void Transform(this Shape2D from, ITransform2D transform, ref Shape2D to) => Shape2D.Transform(from, transform, ref to);
///
public static bool ApproximatelyEquals(this Shape2D left, Shape2D right, float epsilon = float.Epsilon) => Shape2D.ApproximatelyEquals(left, right, epsilon);
diff --git a/Engine.Core/Primitives/Vector2D.cs b/Engine.Core/Primitives/Vector2D.cs
index e005e24..3f84163 100644
--- a/Engine.Core/Primitives/Vector2D.cs
+++ b/Engine.Core/Primitives/Vector2D.cs
@@ -1,4 +1,5 @@
using System;
+using Syntriax.Engine.Core.Abstract;
namespace Syntriax.Engine.Core;
@@ -278,6 +279,17 @@ public readonly struct Vector2D(float x, float y)
return 0;
}
+ ///
+ /// Transforms the using the specified .
+ ///
+ /// The to transform.
+ /// The to apply.
+ /// The transformed .
+ public static Vector2D Transform(Vector2D vector, ITransform2D transform)
+ => vector.Scale(transform.Scale)
+ .Rotate(transform.Rotation * Math.DegreeToRadian)
+ .Add(transform.Position);
+
///
/// Checks if two s are approximately equal within a specified epsilon range.
///
@@ -379,6 +391,12 @@ public static class Vector2DExtensions
///
public static float Dot(this Vector2D left, Vector2D right) => Vector2D.Dot(left, right);
+ ///
+ public static Vector2D Transform(this Vector2D vector, ITransform2D transform) => Vector2D.Transform(vector, transform);
+
+ ///
+ public static Vector2D Transform(this ITransform2D transform, Vector2D vector) => Vector2D.Transform(vector, transform);
+
///
public static bool ApproximatelyEquals(this Vector2D left, Vector2D right, float epsilon = float.Epsilon) => Vector2D.ApproximatelyEquals(left, right, epsilon);
}