Golias Engine
A C++ 20 'game engine' built with SDL3 with wide platform support.
Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
Quaternion Class Reference

#include <quaternion.h>

Inheritance diagram for Quaternion:

Public Member Functions

 Quaternion ()
 
 Quaternion (float w, float x, float y, float z)
 
 Quaternion (const glm::quat &q)
 
 Quaternion (const glm::vec3 &euler_angles)
 
float & operator[] (int index)
 
const float & operator[] (int index) const
 
float length () const
 
Quaternion normalized () const
 
void normalize ()
 
Quaternion conjugate () const
 
Quaternion inverse () const
 
float dot (const Quaternion &other) const
 
Quaternion slerp (const Quaternion &other, float t) const
 
Vector3 xform (const Vector3 &v) const
 
Vector3 to_euler () const
 
Matrix4 to_mat4 () const
 
Basis to_basis () const
 

Static Public Member Functions

static Quaternion from_axis_angle (const Vector3 &axis, float angle)
 
static Quaternion from_euler (float pitch, float yaw, float roll)
 
static Quaternion from_euler (const Vector3 &euler)
 
static Quaternion look_at (const Vector3 &direction, const Vector3 &up)
 

Static Public Attributes

static const Quaternion IDENTITY = Quaternion(1.0f, 0.0f, 0.0f, 0.0f)
 

Constructor & Destructor Documentation

◆ Quaternion() [1/4]

Quaternion::Quaternion ( )

◆ Quaternion() [2/4]

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

◆ Quaternion() [3/4]

Quaternion::Quaternion ( const glm::quat &  q)

◆ Quaternion() [4/4]

Quaternion::Quaternion ( const glm::vec3 &  euler_angles)

Member Function Documentation

◆ conjugate()

Quaternion Quaternion::conjugate ( ) const

◆ dot()

float Quaternion::dot ( const Quaternion other) const

◆ from_axis_angle()

Quaternion Quaternion::from_axis_angle ( const Vector3 axis,
float  angle 
)
static

◆ from_euler() [1/2]

Quaternion Quaternion::from_euler ( const Vector3 euler)
static

◆ from_euler() [2/2]

Quaternion Quaternion::from_euler ( float  pitch,
float  yaw,
float  roll 
)
static

◆ inverse()

Quaternion Quaternion::inverse ( ) const

◆ length()

float Quaternion::length ( ) const

◆ look_at()

Quaternion Quaternion::look_at ( const Vector3 direction,
const Vector3 up 
)
static

◆ normalize()

void Quaternion::normalize ( )

◆ normalized()

Quaternion Quaternion::normalized ( ) const

◆ operator[]() [1/2]

float & Quaternion::operator[] ( int  index)

◆ operator[]() [2/2]

const float & Quaternion::operator[] ( int  index) const

◆ slerp()

Quaternion Quaternion::slerp ( const Quaternion other,
float  t 
) const

◆ to_basis()

Basis Quaternion::to_basis ( ) const

◆ to_euler()

Vector3 Quaternion::to_euler ( ) const

◆ to_mat4()

Matrix4 Quaternion::to_mat4 ( ) const

◆ xform()

Vector3 Quaternion::xform ( const Vector3 v) const

Member Data Documentation

◆ IDENTITY

const Quaternion Quaternion::IDENTITY = Quaternion(1.0f, 0.0f, 0.0f, 0.0f)
static

The documentation for this class was generated from the following files: