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.)
 
 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.)
 
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 is NaN.
 
Quaternion Conjugate () const
 Return conjugate.
 
Vector3 EulerAngles () const
 Return Euler angles in degrees.
 
float YawAngle () const
 Return yaw angle in degrees.
 
float PitchAngle () const
 Return pitch angle in degrees.
 
float RollAngle () const
 Return roll angle in degrees.
 
Vector3 Axis () const
 Return rotation axis.
 
float Angle () const
 Return rotation angle.
 
Matrix3 RotationMatrix () const
 Return the rotation matrix that corresponds to this quaternion.
 
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.


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