diff --git a/Engine.Core/Primitives/Quaternion.cs b/Engine.Core/Primitives/Quaternion.cs
index bdf48cb..2f3c918 100644
--- a/Engine.Core/Primitives/Quaternion.cs
+++ b/Engine.Core/Primitives/Quaternion.cs
@@ -156,6 +156,15 @@ public readonly struct Quaternion(float x, float y, float z, float w) : IEquatab
/// The normalized .
public static Quaternion Normalize(Quaternion quaternion) => quaternion / Length(quaternion);
+ ///
+ /// Rotates a around a axis by the specified angle (in radians).
+ ///
+ /// The to rotate.
+ /// The to rotate around.
+ /// The angle to rotate by, in radians.
+ /// The rotated .
+ public static Quaternion Rotate(Quaternion vector, Vector3D axis, float angleInRadian) => vector * Quaternion.FromAxisAngle(axis, angleInRadian);
+
///
/// Inverts the direction of the .
///
@@ -358,6 +367,9 @@ public static class QuaternionExtensions
///
public static Quaternion Normalize(this Quaternion quaternion) => Quaternion.Normalize(quaternion);
+ ///
+ public static Quaternion Rotate(this Quaternion vector, Vector3D normal, float angleInRadian) => Quaternion.Rotate(vector, normal, angleInRadian);
+
///
public static Quaternion Invert(this Quaternion quaternion) => Quaternion.Invert(quaternion);