Krig Game Engine
Loading...
Searching...
No Matches
Quaternion Class Reference

Public Member Functions

 Quaternion (const Vector &)
 Quaternion (const float &, const float &, const float &)
 Quaternion (const Vector &, const float &)
 Quaternion (const float &, const float &, const float &, const float &)
 Quaternion (const Quaternion &)
void normalize ()
void buildFromEuler (const Vector &)
void buildFromEuler (const float &, const float &, const float &)
void buildFromAxis (const Vector &, const float &)
void loadMultIdentity ()
void loadAddIdentity ()
void getEulerAngles (Vector &)
void buildRotationMatrix (Matrix &)
void slerp (const Quaternion &, const float &, const Quaternion &)
float getX () const
float getY () const
float getZ () const
float getW () const
Quaternion operator+ (const Quaternion &) const
Quaternion operator* (const Quaternion &) const
Quaternionoperator= (const Quaternion &)

Constructor & Destructor Documentation

◆ Quaternion() [1/3]

Quaternion::Quaternion ( const Vector & v)

Builds from Euler angles stored in v (radians).

◆ Quaternion() [2/3]

Quaternion::Quaternion ( const float & x,
const float & y,
const float & z )

Builds from Euler angles x, y, z (radians).

◆ Quaternion() [3/3]

Quaternion::Quaternion ( const Vector & axis,
const float & angle )

Builds from an axis-angle pair. axis must be a unit vector; angle is in radians.

Member Function Documentation

◆ buildFromAxis()

void Quaternion::buildFromAxis ( const Vector & v,
const float & angle )

Sets this quaternion from an axis-angle pair. axis must be a unit vector; angle is in radians. Does not normalise the result.

◆ buildFromEuler() [1/2]

void Quaternion::buildFromEuler ( const float & angleX,
const float & angleY,
const float & angleZ )

Sets this quaternion from Euler angles in radians (x=pitch, y=yaw, z=roll).

◆ buildFromEuler() [2/2]

void Quaternion::buildFromEuler ( const Vector & v)

Sets this quaternion from Euler angles in radians (x=pitch, y=yaw, z=roll).

◆ getEulerAngles()

void Quaternion::getEulerAngles ( Vector & v)

Extracts Euler angles into v (radians). Uses a gimbal-lock fallback when the rotation matrix element m.data[2] reaches ±1; in that case v.z is forced to zero. Not a guaranteed roundtrip with buildFromEuler for all inputs.

◆ normalize()

void Quaternion::normalize ( )

Scales to unit length. No-op if the quaternion has zero length.

◆ operator*()

Quaternion Quaternion::operator* ( const Quaternion & q) const

Composes two quaternion rotations using the engine's multiplication convention.

◆ slerp()

void Quaternion::slerp ( const Quaternion & sQ,
const float & t,
const Quaternion & eQ )

Spherical linear interpolation from sQ to eQ at parameter t. t must be in [0, 1]; values outside that range leave this quaternion unchanged.


The documentation for this class was generated from the following files: