Urho3D::Quaternion Class Reference

Rotation represented as a four-dimensional normalized vector. More...

`#include <Urho3D/Math/Quaternion.h>`

Collaboration diagram for Urho3D::Quaternion:
[legend]

## Public Member Functions

Quaternion () noexcept
Construct an identity quaternion.

Quaternion (const Quaternion &quat) noexcept
Copy-construct from another quaternion.

Quaternion (float w, float x, float y, float z) noexcept
Construct from values.

Quaternion (const float *data) noexcept
Construct from a float array.

Quaternion (float angle, const Vector3 &axis) noexcept
Construct from an angle (in degrees) and axis.

Quaternion (float angle) noexcept
Construct from an angle (in degrees, for Urho2D).

Quaternion (float x, float y, float z) noexcept
Construct from Euler angles (in degrees). Equivalent to Y*X*Z.

Quaternion (const Vector3 &angles) noexcept
Construct from Euler angles (in degrees).

Quaternion (const Vector3 &start, const Vector3 &end) noexcept
Construct from the rotation difference between two direction vectors.

Quaternion (const Vector3 &xAxis, const Vector3 &yAxis, const Vector3 &zAxis) noexcept
Construct from orthonormal axes.

Quaternion (const Matrix3 &matrix) noexcept
Construct from a rotation matrix.

Quaternionoperator= (const Quaternion &rhs) noexcept
Assign from another quaternion.

Quaternionoperator+= (const Quaternion &rhs)

Quaternionoperator*= (float rhs)
Multiply-assign a scalar.

bool operator== (const Quaternion &rhs) const
Test for equality with another quaternion without epsilon.

bool operator!= (const Quaternion &rhs) const
Test for inequality with another quaternion without epsilon.

Quaternion operator* (float rhs) const
Multiply with a scalar.

Quaternion operator- () const
Return negation.

Quaternion operator+ (const Quaternion &rhs) const

Quaternion operator- (const Quaternion &rhs) const
Subtract a quaternion.

Quaternion operator* (const Quaternion &rhs) const
Multiply a quaternion.

Vector3 operator* (const Vector3 &rhs) const
Multiply a Vector3.

void FromAngleAxis (float angle, const Vector3 &axis)
Define from an angle (in degrees) and axis.

void FromEulerAngles (float x, float y, float z)
Define from Euler angles (in degrees). Equivalent to Y*X*Z.

void FromRotationTo (const Vector3 &start, const Vector3 &end)
Define from the rotation difference between two direction vectors.

void FromAxes (const Vector3 &xAxis, const Vector3 &yAxis, const Vector3 &zAxis)
Define from orthonormal axes.

void FromRotationMatrix (const Matrix3 &matrix)
Define from a rotation matrix.

bool FromLookRotation (const Vector3 &direction, const Vector3 &up=Vector3::UP)
Define from a direction to look in and an up direction. Return true if successful, or false if would result in a NaN, in which case the current value remains.

void Normalize ()
Normalize to unit length.

Quaternion Normalized () const
Return normalized to unit length.

Quaternion Inverse () const
Return inverse.

float LengthSquared () const
Return squared length.

float DotProduct (const Quaternion &rhs) const
Calculate dot product.

bool Equals (const Quaternion &rhs) const
Test for equality with another quaternion with epsilon.

bool IsNaN () const
Return whether any element is NaN.

bool IsInf () const
Return whether any element is Inf.

Quaternion Conjugate () const
Return conjugate.

Vector3 EulerAngles () const

float YawAngle () const

float PitchAngle () const

float RollAngle () const

Vector3 Axis () const

float Angle () const

Matrix3 RotationMatrix () const

Quaternion Slerp (const Quaternion &rhs, float t) const
Spherical interpolation with another quaternion.

Quaternion Nlerp (const Quaternion &rhs, float t, bool shortestPath=false) const
Normalized linear interpolation with another quaternion.

const float * Data () const
Return float data.

String ToString () const
Return as string.

float w_
W coordinate.

float x_
X coordinate.

float y_
Y coordinate.

float z_
Z coordinate.

## Static Public Attributes

static const Quaternion IDENTITY
Identity quaternion.

## Detailed Description

Rotation represented as a four-dimensional normalized vector.

## ◆ Angle()

 float Urho3D::Quaternion::Angle ( ) const

Return rotation angle.

Here is the call graph for this function:

## ◆ Axis()

 Urho3D::Vector3 Urho3D::Quaternion::Axis ( ) const

Return rotation axis.

## ◆ EulerAngles()

 Vector3 Urho3D::Quaternion::EulerAngles ( ) const

Return Euler angles in degrees.

Here is the caller graph for this function:

## ◆ PitchAngle()

 float Urho3D::Quaternion::PitchAngle ( ) const

Return pitch angle in degrees.

Here is the call graph for this function:

## ◆ RollAngle()

 float Urho3D::Quaternion::RollAngle ( ) const

Return roll angle in degrees.

Here is the call graph for this function:

## ◆ RotationMatrix()

 Matrix3 Urho3D::Quaternion::RotationMatrix ( ) const

Return the rotation matrix that corresponds to this quaternion.

Here is the caller graph for this function:

## ◆ YawAngle()

 float Urho3D::Quaternion::YawAngle ( ) const

Return yaw angle in degrees.

Here is the call graph for this function:

The documentation for this class was generated from the following files:
• Source/Urho3D/Math/Quaternion.h
• Source/Urho3D/Math/Quaternion.cpp