Quaternion
Namespace: Hex1b.Scene.Math
Assembly: Hex1b.dll
A quaternion for 3D rotations (x, y, z, w format). Avoids gimbal lock and enables smooth interpolation (slerp).
[Experimental("HEX1B_SCENE", UrlFormat = "https://github.com/hex1b/hex1b/blob/main/docs/experimental/scene.md")]
public struct Quaternion : IEquatable<Quaternion>Implements
Constructors
Quaternion(float, float, float, float)
Parameters:
public Quaternion(float x = 0, float y = 0, float z = 0, float w = 1)Properties
Conjugate
Returns: Quaternion
public Quaternion Conjugate { get; }Identity
Returns: Quaternion
public static Quaternion Identity { get; }Inverse
Returns: Quaternion
public Quaternion Inverse { get; }Magnitude
Returns: Single
public float Magnitude { get; }Normalized
Returns: Quaternion
public Quaternion Normalized { get; }SqrMagnitude
Returns: Single
public float SqrMagnitude { get; }W
Returns: Single
public float W { readonly get; set; }X
Returns: Single
public float X { readonly get; set; }Y
Returns: Single
public float Y { readonly get; set; }Z
Returns: Single
public float Z { readonly get; set; }Methods
Equals(object?)
Indicates whether this instance and a specified object are equal.
Parameters:
obj(Object): The object to compare with the current instance.
Returns: Boolean
true if obj and this instance are the same type and represent the same value; otherwise, false.
public override bool Equals(object? obj)Equals(Quaternion)
Indicates whether the current object is equal to another object of the same type.
Parameters:
other(Quaternion): An object to compare with this object.
Returns: Boolean
true if the current object is equal to the other parameter; otherwise, false.
public bool Equals(Quaternion other)FromAxisAngle(Vector3, float)
Create a quaternion from an axis and rotation angle (in radians).
Parameters:
Returns: Quaternion
public static Quaternion FromAxisAngle(Vector3 axis, float angleRadians)FromEulerAngles(float, float, float)
Create a quaternion from Euler angles (in radians) using XYZ order.
Parameters:
Returns: Quaternion
public static Quaternion FromEulerAngles(float x, float y, float z)FromEulerAngles(Vector3)
Create a quaternion from Euler angles as a Vector3 (in radians).
Parameters:
angles(Vector3):
Returns: Quaternion
public static Quaternion FromEulerAngles(Vector3 angles)GetHashCode()
Returns the hash code for this instance.
Returns: Int32
A 32-bit signed integer that is the hash code for this instance.
public override int GetHashCode()RotateVector(Vector3)
Rotate a vector by this quaternion.
Parameters:
v(Vector3):
Returns: Vector3
public Vector3 RotateVector(Vector3 v)Slerp(Quaternion, Quaternion, float)
Spherical linear interpolation between two quaternions.
Parameters:
a(Quaternion):b(Quaternion):t(Single):
Returns: Quaternion
public static Quaternion Slerp(Quaternion a, Quaternion b, float t)ToEulerAngles()
Convert quaternion to Euler angles (in radians) as a Vector3.
Returns: Vector3
public Vector3 ToEulerAngles()ToString()
Returns the fully qualified type name of this instance.
Returns: String
The fully qualified type name.
public override string ToString()Members
operator -(Quaternion, Quaternion)
Parameters:
a(Quaternion):b(Quaternion):
Returns: Quaternion
public static Quaternion operator -(Quaternion a, Quaternion b)operator *(Quaternion, float)
Parameters:
q(Quaternion):scalar(Single):
Returns: Quaternion
public static Quaternion operator *(Quaternion q, float scalar)operator *(Quaternion, Quaternion)
Parameters:
a(Quaternion):b(Quaternion):
Returns: Quaternion
public static Quaternion operator *(Quaternion a, Quaternion b)operator /(Quaternion, float)
Parameters:
q(Quaternion):scalar(Single):
Returns: Quaternion
public static Quaternion operator /(Quaternion q, float scalar)operator +(Quaternion, Quaternion)
Parameters:
a(Quaternion):b(Quaternion):
Returns: Quaternion
public static Quaternion operator +(Quaternion a, Quaternion b)