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
Matrix4 Class Reference

#include <matrix4.h>

Inheritance diagram for Matrix4:

Public Member Functions

 Matrix4 ()
 
 Matrix4 (float diagonal)
 
 Matrix4 (const glm::mat4 &m)
 
glm::vec4 & operator[] (int index)
 
const glm::vec4 & operator[] (int index) const
 
Matrix4 transposed () const
 
void transpose ()
 
Matrix4 inverse () const
 
void invert ()
 
float determinant () const
 
Vector3 xform (const Vector3 &v) const
 
Vector3 xform_inv (const Vector3 &v) const
 
Vector3 xform_normal (const Vector3 &normal) const
 
Basis get_basis () const
 
Vector3 get_translation () const
 
Quaternion to_quaternion () const
 

Static Public Member Functions

static Matrix4 translate (const Vector3 &translation)
 
static Matrix4 rotate (float angle, const Vector3 &axis)
 
static Matrix4 scale (const Vector3 &scale_vec)
 
static Matrix4 look_at (const Vector3 &eye, const Vector3 &center, const Vector3 &up)
 
static Matrix4 perspective (float fov, float aspect, float near_plane, float far_plane)
 
static Matrix4 ortho (float left, float right, float bottom, float top, float near_plane, float far_plane)
 
static Matrix4 from_quaternion (const Quaternion &q)
 

Static Public Attributes

static const Matrix4 IDENTITY = Matrix4(1.0f)
 

Constructor & Destructor Documentation

◆ Matrix4() [1/3]

Matrix4::Matrix4 ( )

◆ Matrix4() [2/3]

Matrix4::Matrix4 ( float  diagonal)

◆ Matrix4() [3/3]

Matrix4::Matrix4 ( const glm::mat4 &  m)

Member Function Documentation

◆ determinant()

float Matrix4::determinant ( ) const

◆ from_quaternion()

Matrix4 Matrix4::from_quaternion ( const Quaternion q)
static

◆ get_basis()

Basis Matrix4::get_basis ( ) const

◆ get_translation()

Vector3 Matrix4::get_translation ( ) const

◆ inverse()

Matrix4 Matrix4::inverse ( ) const

◆ invert()

void Matrix4::invert ( )

◆ look_at()

Matrix4 Matrix4::look_at ( const Vector3 eye,
const Vector3 center,
const Vector3 up 
)
static

◆ operator[]() [1/2]

glm::vec4 & Matrix4::operator[] ( int  index)

◆ operator[]() [2/2]

const glm::vec4 & Matrix4::operator[] ( int  index) const

◆ ortho()

Matrix4 Matrix4::ortho ( float  left,
float  right,
float  bottom,
float  top,
float  near_plane,
float  far_plane 
)
static

◆ perspective()

Matrix4 Matrix4::perspective ( float  fov,
float  aspect,
float  near_plane,
float  far_plane 
)
static

◆ rotate()

Matrix4 Matrix4::rotate ( float  angle,
const Vector3 axis 
)
static

◆ scale()

Matrix4 Matrix4::scale ( const Vector3 scale_vec)
static

◆ to_quaternion()

Quaternion Matrix4::to_quaternion ( ) const

◆ translate()

Matrix4 Matrix4::translate ( const Vector3 translation)
static

◆ transpose()

void Matrix4::transpose ( )

◆ transposed()

Matrix4 Matrix4::transposed ( ) const

◆ xform()

Vector3 Matrix4::xform ( const Vector3 v) const

◆ xform_inv()

Vector3 Matrix4::xform_inv ( const Vector3 v) const

◆ xform_normal()

Vector3 Matrix4::xform_normal ( const Vector3 normal) const

Member Data Documentation

◆ IDENTITY

const Matrix4 Matrix4::IDENTITY = Matrix4(1.0f)
static

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