63 Quaternion(
const float&
w,
const float&
x,
const float&
y,
const float&
z);
Provides a collection of mathematical utility functions and constants.
Defines a 2D vector and various related operations.
Defines a 3D vector and various related operations.
Implements a generic Kalman Filter for 1D data.
A mathematical construct representing a rotation in 3D space.
Vector3D GetBiVector() const
Retrieves the bi-vector (X, Y, Z) portion of the quaternion (with W=0).
float DotProduct(const Quaternion &q) const
Computes the dot product between this quaternion and another.
Quaternion Power(const Quaternion &exponent) const
Raises this quaternion to the power of another quaternion (component-wise).
bool IsFinite() const
Checks if all components are finite.
Quaternion Divide(const Quaternion &quaternion) const
Divides this quaternion by another quaternion component-wise (not a typical quaternion operation).
static Quaternion SphericalInterpolation(const Quaternion &q1, const Quaternion &q2, const float &ratio)
Performs spherical linear interpolation (slerp) between two quaternions.
Quaternion Conjugate() const
Returns the conjugate of this quaternion (W stays the same, X/Y/Z get negated).
bool IsInfinite() const
Checks if any component is infinite.
Quaternion AdditiveInverse() const
Negates each component (an additive inverse).
Quaternion UnitQuaternion() const
Returns a unit quaternion (normalized) version of this quaternion.
bool IsNaN() const
Checks if any component of this quaternion is NaN.
Quaternion operator/(const Quaternion &quaternion) const
Divides this quaternion by another quaternion, component-wise.
Quaternion operator+(const Quaternion &quaternion) const
Adds two quaternions (component-wise).
Quaternion operator-(const Quaternion &quaternion) const
Subtracts one quaternion from another (component-wise).
bool operator==(const Quaternion &quaternion) const
Equality operator. Checks if two quaternions match exactly (component-wise).
Quaternion()
Default constructor. Initializes the quaternion to identity (1,0,0,0).
bool operator!=(const Quaternion &quaternion) const
Inequality operator. Checks if two quaternions differ in any component.
Quaternion MultiplicativeInverse() const
Returns the multiplicative inverse of this quaternion, such that q * q^-1 = identity.
Quaternion DeltaRotation(const Vector3D &angularVelocity, const float &timeDelta) const
Computes a small rotation quaternion given an angular velocity and time delta.
Quaternion Permutate(const Vector3D &permutation) const
Performs a permutation operation using a 3D vector (custom transform).
Vector2D RotateVector(const Vector2D &v) const
Rotates a 2D vector by this quaternion, projecting it in 2D.
Vector2D RotateVectorUnit(const Vector2D &v, const Quaternion &q) const
Rotates a 2D vector by a unit quaternion (assumes normalized), allowing a different quaternion to be ...
float W
Scalar part of the quaternion.
bool IsEqual(const Quaternion &quaternion) const
Checks if two quaternions are exactly equal (component-wise).
String ToString() const
Converts this quaternion to a string representation (e.g. "(W, X, Y, Z)").
bool IsClose(const Quaternion &quaternion, const float &epsilon) const
Checks if two quaternions are nearly equal within a tolerance.
float Z
Z component of the quaternion's vector part.
float X
X component of the quaternion's vector part.
Vector3D GetNormal() const
Retrieves the normal vector part of the quaternion, typically its axis of rotation.
float Normal() const
Computes the quaternion's norm (equivalent to squared magnitude).
float Y
Y component of the quaternion's vector part.
Quaternion Absolute() const
Returns a quaternion where each component is the absolute value of the original.
Quaternion Add(const Quaternion &quaternion) const
Adds two quaternions component-wise.
Vector2D UnrotateVector(const Vector2D &coordinate) const
Applies the inverse of this quaternion's rotation to a 2D vector.
friend Quaternion operator*(const float &scalar, const Quaternion &q)
Scalar multiplication operator (on the left).
float Magnitude() const
Computes the magnitude (length) of this quaternion.
Quaternion Multiply(const Quaternion &quaternion) const
Multiplies (composes) this quaternion with another (order matters).
Quaternion operator=(const Quaternion &quaternion)
Assignment operator. Copies another quaternion's components to this one.
bool IsNonZero() const
Checks if the quaternion is non-zero (i.e., any component != 0).
Quaternion Subtract(const Quaternion &quaternion) const
Subtracts a quaternion from this quaternion component-wise.
Represents a 2D vector (X, Y) and provides methods for vector arithmetic.
Represents a 3D vector (X, Y, Z) and provides methods for vector arithmetic.