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)
 Add-assign a quaternion.
 
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
 Add a quaternion.
 
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.
 

Public Attributes

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.

Member Function Documentation

◆ 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