BNM 2.4.0
 
Loading...
Searching...
No Matches
BNM::Structures::Unity::Quaternion Struct Reference

Public Member Functions

 Quaternion (float data[]) noexcept
 
 Quaternion (Vector3 vector, float scalar) noexcept
 
 Quaternion (float x, float y, float z, float w) noexcept
 
 Quaternion (float Pitch, float Yaw, float Roll)
 
Vector3 euler ()
 
Quaternion normalized ()
 
std::string str () const
 
Quaternionoperator+= (Quaternion q)
 
Quaternionoperator-= (Quaternion q)
 
Quaternionoperator*= (Quaternion rhs)
 
Quaternionoperator*= (float s)
 
Quaternionoperator/= (Quaternion rhs)
 
Quaternionoperator/= (float s)
 
Quaternion operator- () const
 
Quaternion operator* (float s) const
 

Static Public Member Functions

static Vector3 Up (Quaternion q)
 
static Vector3 Down (Quaternion q)
 
static Vector3 Left (Quaternion q)
 
static Vector3 Right (Quaternion q)
 
static Vector3 Forward (Quaternion q)
 
static Vector3 Back (Quaternion q)
 
static float Angle (Quaternion a, Quaternion b)
 
static Quaternion Conjugate (Quaternion rotation)
 
static float Dot (Quaternion lhs, Quaternion rhs)
 
static Quaternion FromAngleAxis (float angle, Vector3 axis)
 
static Quaternion FromEuler (Vector3 rotation)
 
static Quaternion FromEuler (float yaw, float pitch, float roll, bool fromDeg=true)
 
static Quaternion FromToRotation (Vector3 fromVector, Vector3 toVector)
 
static Quaternion Inverse (Quaternion rotation)
 
static Quaternion Lerp (Quaternion a, Quaternion b, float t)
 
static Quaternion LerpUnclamped (Quaternion a, Quaternion b, float t)
 
static Quaternion LookRotation (Vector3 forward)
 
static Quaternion LookRotation (Vector3 forward, Vector3 upwards)
 
static float Norm (Quaternion rotation)
 
static Quaternion Normalize (Quaternion rotation)
 
static Quaternion RotateTowards (Quaternion from, Quaternion to, float maxRadiansDelta)
 
static Quaternion Slerp (Quaternion a, Quaternion b, float t)
 
static Quaternion SlerpUnclamped (Quaternion a, Quaternion b, float t)
 
static void ToAngleAxis (Quaternion rotation, float &angle, Vector3 &axis)
 
static Vector3 ToEuler (Quaternion q, bool toDeg=true)
 
static Vector3 RotateVectorByQuaternion (Quaternion lhs, Vector3 rhs)
 

Public Attributes

union { 
 
   struct { 
 
      float   x 
 
      float   y 
 
      float   z 
 
      float   w 
 
   }  
 
   float   data [4] {0.f, 0.f, 0.f, 0.f} 
 
};  
 

Static Public Attributes

static const Quaternion identity
 

Friends

Quaternion operator+ (const Quaternion &lhs, const Quaternion &rhs)
 
Quaternion operator- (const Quaternion &lhs, const Quaternion &rhs)
 
Quaternion operator* (const float s, const Quaternion &q)
 
Quaternion operator/ (const Quaternion &q, const float s)
 
Quaternion operator* (Quaternion lhs, Quaternion rhs)
 
Quaternion operator/ (Quaternion lhs, Quaternion rhs)