VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
visutwin::canvas::Quaternion Struct Reference

Unit quaternion for rotation representation with SIMD-accelerated slerp and multiply. More...

#include <core/math/quaternion.h>

Public Member Functions

Quaternion conjugate () const
float getW () const
float getX () const
float getY () const
float getZ () const
Quaternion invert () const
float length () const
float lengthSquared () const
Quaternion normalized () const
Quaternion operator* (const float scalar) const
Quaternion operator* (const Quaternion &rhs) const
Vector3 operator* (const Vector3 &v) const
 Quaternion ()
 Quaternion (float x, float y, float z, float w)
Matrix4 toRotationMatrix () const

Static Public Member Functions

static Quaternion fromAxisAngle (const Vector3 &axis, float angle)
static Quaternion fromEulerAngles (float ax, float ay, float az)
static Quaternion fromMatrix4 (const Matrix4 &m)

Public Attributes

union { 
   struct { 
      float   w 
      float   x 
      float   y 
      float   z 
   } 
   float   q [4] 
}; 

Friends

std::ostream & operator<< (std::ostream &os, const Quaternion &q)

Detailed Description

Unit quaternion for rotation representation with SIMD-accelerated slerp and multiply.

Definition at line 19 of file quaternion.h.

Constructor & Destructor Documentation

◆ Quaternion() [1/2]

visutwin::canvas::Quaternion::Quaternion ( )

◆ Quaternion() [2/2]

visutwin::canvas::Quaternion::Quaternion ( float x,
float y,
float z,
float w )

References w, x, y, and z.

Member Function Documentation

◆ conjugate()

Quaternion visutwin::canvas::Quaternion::conjugate ( ) const
nodiscard

References Quaternion().

◆ fromAxisAngle()

Quaternion visutwin::canvas::Quaternion::fromAxisAngle ( const Vector3 & axis,
float angle )
static

References Quaternion().

◆ fromEulerAngles()

Quaternion visutwin::canvas::Quaternion::fromEulerAngles ( float ax,
float ay,
float az )
static

◆ fromMatrix4()

Quaternion visutwin::canvas::Quaternion::fromMatrix4 ( const Matrix4 & m)
static

Converts the specified 4x4 matrix to a quaternion

References Quaternion().

Referenced by visutwin::canvas::GraphNode::rotation().

◆ getW()

float visutwin::canvas::Quaternion::getW ( ) const
inlinenodiscard

Definition at line 89 of file quaternion.h.

References w.

◆ getX()

float visutwin::canvas::Quaternion::getX ( ) const
inlinenodiscard

Definition at line 50 of file quaternion.h.

References x.

◆ getY()

float visutwin::canvas::Quaternion::getY ( ) const
inlinenodiscard

Definition at line 63 of file quaternion.h.

References y.

◆ getZ()

float visutwin::canvas::Quaternion::getZ ( ) const
inlinenodiscard

Definition at line 76 of file quaternion.h.

References z.

◆ invert()

Quaternion visutwin::canvas::Quaternion::invert ( ) const

Generates the inverse of the specified quaternion

References Quaternion().

◆ length()

float visutwin::canvas::Quaternion::length ( ) const

Returns the magnitude of the specified quaternion

◆ lengthSquared()

float visutwin::canvas::Quaternion::lengthSquared ( ) const

◆ normalized()

◆ operator*() [1/3]

Quaternion visutwin::canvas::Quaternion::operator* ( const float scalar) const

References Quaternion().

◆ operator*() [2/3]

Quaternion visutwin::canvas::Quaternion::operator* ( const Quaternion & rhs) const

References Quaternion().

◆ operator*() [3/3]

Vector3 visutwin::canvas::Quaternion::operator* ( const Vector3 & v) const

◆ toRotationMatrix()

Matrix4 visutwin::canvas::Quaternion::toRotationMatrix ( ) const
nodiscard

◆ operator<<

std::ostream & operator<< ( std::ostream & os,
const Quaternion & q )
friend

Definition at line 129 of file quaternion.h.

References q, and Quaternion().

Member Data Documentation

◆ [union]

◆ q

float visutwin::canvas::Quaternion::q[4]

Definition at line 34 of file quaternion.h.

Referenced by operator<<.

◆ w

float visutwin::canvas::Quaternion::w

Definition at line 32 of file quaternion.h.

Referenced by getW(), and Quaternion().

◆ x

float visutwin::canvas::Quaternion::x

Definition at line 32 of file quaternion.h.

Referenced by getX(), and Quaternion().

◆ y

float visutwin::canvas::Quaternion::y

Definition at line 32 of file quaternion.h.

Referenced by getY(), and Quaternion().

◆ z

float visutwin::canvas::Quaternion::z

Definition at line 32 of file quaternion.h.

Referenced by getZ(), and Quaternion().


The documentation for this struct was generated from the following file: