Skip to content

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).

csharp
[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:

csharp
public Quaternion(float x = 0, float y = 0, float z = 0, float w = 1)

Properties

Conjugate

Returns: Quaternion

csharp
public Quaternion Conjugate { get; }

Identity

Returns: Quaternion

csharp
public static Quaternion Identity { get; }

Inverse

Returns: Quaternion

csharp
public Quaternion Inverse { get; }

Magnitude

Returns: Single

csharp
public float Magnitude { get; }

Normalized

Returns: Quaternion

csharp
public Quaternion Normalized { get; }

SqrMagnitude

Returns: Single

csharp
public float SqrMagnitude { get; }

W

Returns: Single

csharp
public float W { readonly get; set; }

X

Returns: Single

csharp
public float X { readonly get; set; }

Y

Returns: Single

csharp
public float Y { readonly get; set; }

Z

Returns: Single

csharp
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.

csharp
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.

csharp
public bool Equals(Quaternion other)

FromAxisAngle(Vector3, float)

Create a quaternion from an axis and rotation angle (in radians).

Parameters:

Returns: Quaternion

csharp
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

csharp
public static Quaternion FromEulerAngles(float x, float y, float z)

FromEulerAngles(Vector3)

Create a quaternion from Euler angles as a Vector3 (in radians).

Parameters:

Returns: Quaternion

csharp
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.

csharp
public override int GetHashCode()

RotateVector(Vector3)

Rotate a vector by this quaternion.

Parameters:

Returns: Vector3

csharp
public Vector3 RotateVector(Vector3 v)

Slerp(Quaternion, Quaternion, float)

Spherical linear interpolation between two quaternions.

Parameters:

Returns: Quaternion

csharp
public static Quaternion Slerp(Quaternion a, Quaternion b, float t)

ToEulerAngles()

Convert quaternion to Euler angles (in radians) as a Vector3.

Returns: Vector3

csharp
public Vector3 ToEulerAngles()

ToString()

Returns the fully qualified type name of this instance.

Returns: String

The fully qualified type name.

csharp
public override string ToString()

Members

operator -(Quaternion, Quaternion)

Parameters:

Returns: Quaternion

csharp
public static Quaternion operator -(Quaternion a, Quaternion b)

operator *(Quaternion, float)

Parameters:

Returns: Quaternion

csharp
public static Quaternion operator *(Quaternion q, float scalar)

operator *(Quaternion, Quaternion)

Parameters:

Returns: Quaternion

csharp
public static Quaternion operator *(Quaternion a, Quaternion b)

operator /(Quaternion, float)

Parameters:

Returns: Quaternion

csharp
public static Quaternion operator /(Quaternion q, float scalar)

operator +(Quaternion, Quaternion)

Parameters:

Returns: Quaternion

csharp
public static Quaternion operator +(Quaternion a, Quaternion b)

Released under the MIT License.