feat: quaternion rotate method added
This commit is contained in:
@@ -156,6 +156,15 @@ public readonly struct Quaternion(float x, float y, float z, float w) : IEquatab
|
||||
/// <returns>The normalized <see cref="Quaternion"/>.</returns>
|
||||
public static Quaternion Normalize(Quaternion quaternion) => quaternion / Length(quaternion);
|
||||
|
||||
/// <summary>
|
||||
/// Rotates a <see cref="Quaternion"/> around a axis by the specified angle (in radians).
|
||||
/// </summary>
|
||||
/// <param name="vector">The <see cref="Quaternion"/> to rotate.</param>
|
||||
/// <param name="axis">The <see cref="Quaternion"/> to rotate around.</param>
|
||||
/// <param name="angleInRadian">The angle to rotate by, in radians.</param>
|
||||
/// <returns>The rotated <see cref="Quaternion"/>.</returns>
|
||||
public static Quaternion Rotate(Quaternion vector, Vector3D axis, float angleInRadian) => vector * Quaternion.FromAxisAngle(axis, angleInRadian);
|
||||
|
||||
/// <summary>
|
||||
/// Inverts the direction of the <see cref="Quaternion"/>.
|
||||
/// </summary>
|
||||
@@ -358,6 +367,9 @@ public static class QuaternionExtensions
|
||||
/// <inheritdoc cref="Quaternion.Normalize(Quaternion)" />
|
||||
public static Quaternion Normalize(this Quaternion quaternion) => Quaternion.Normalize(quaternion);
|
||||
|
||||
/// <inheritdoc cref="Quaternion.Rotate(Quaternion, Vector3D, float)" />
|
||||
public static Quaternion Rotate(this Quaternion vector, Vector3D normal, float angleInRadian) => Quaternion.Rotate(vector, normal, angleInRadian);
|
||||
|
||||
/// <inheritdoc cref="Quaternion.Invert(Quaternion)" />
|
||||
public static Quaternion Invert(this Quaternion quaternion) => Quaternion.Invert(quaternion);
|
||||
|
||||
|
Reference in New Issue
Block a user