template<class T>
nCine::Primitives::Quaternion class

Quaternion.

Represents a rotation as four components X, Y, Z and W. Provides component-wise and scalar arithmetic, quaternion multiplication (rotation composition), magnitude and normalization, conjugation, conversion to a rotation Matrix4x4 and construction from an axis and an angle.

Public static functions

static auto FromAxisAngle(T xx, T yy, T zz, T degrees) -> Quaternion
Creates a quaternion from a rotation axis and an angle in degrees.
static auto FromAxisAngle(const Vector3<T>& axis, T degrees) -> Quaternion
static auto FromXAxisAngle(T degrees) -> Quaternion
Creates a quaternion representing a rotation around the X axis.
static auto FromYAxisAngle(T degrees) -> Quaternion
Creates a quaternion representing a rotation around the Y axis.
static auto FromZAxisAngle(T degrees) -> Quaternion
Creates a quaternion representing a rotation around the Z axis.

Constructors, destructors, conversion operators

Quaternion() constexpr noexcept
Quaternion(NoInitT) explicit noexcept
Quaternion(T x, T y, T z, T w) constexpr noexcept
Quaternion(const Vector4<T>& v) explicit noexcept
Quaternion(const Quaternion& other) constexpr noexcept

Public functions

auto operator=(const Quaternion& other) -> Quaternion&
void Set(T x, T y, T z, T w)
auto Data() -> T*
auto Data() const -> const T*
auto operator[](std::size_t index) -> T&
auto operator[](std::size_t index) const -> const T&
auto operator==(const Quaternion& q) const -> bool
auto operator!=(const Quaternion& q) const -> bool
auto operator-() const -> Quaternion
auto operator+=(const Quaternion& q) -> Quaternion&
auto operator-=(const Quaternion& q) -> Quaternion&
auto operator*=(const Quaternion& q) -> Quaternion&
auto operator*=(T s) -> Quaternion&
auto operator/=(T s) -> Quaternion&
auto operator+(const Quaternion& q) const -> Quaternion
auto operator-(const Quaternion& q) const -> Quaternion
auto operator*(const Quaternion& q) const -> Quaternion
auto operator*(T s) const -> Quaternion
auto operator/(T s) const -> Quaternion
auto Magnitude() const -> T
Returns the magnitude (norm) of the quaternion.
auto SqrMagnitude() const -> T
Returns the squared magnitude of the quaternion.
auto Normalized() const -> Quaternion
Returns a normalized copy of the quaternion.
auto Normalize() -> Quaternion&
Normalizes the quaternion in place and returns it.
auto Conjugated() const -> Quaternion
Returns the conjugate of the quaternion.
auto Conjugate() -> Quaternion&
Conjugates the quaternion in place and returns it.
auto ToMatrix4x4() const -> Matrix4x4<T>
Converts the quaternion to an equivalent rotation matrix.

Public variables

T X
T Y
T Z
T W

Constants

static const Quaternion Zero
Quaternion with all components set to zero.
static const Quaternion Identity
Identity quaternion (no rotation).

Function documentation

template<class T>
static Quaternion nCine::Primitives::Quaternion<T>::FromAxisAngle(const Vector3<T>& axis, T degrees)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.