raylib-cpp
C++ object-oriented wrapper library for raylib.
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
raylib::Matrix Class Reference

Matrix type (OpenGL style 4x4 - right handed, column major) More...

#include <Matrix.hpp>

Public Member Functions

constexpr Matrix (const ::Matrix &mat)
 
constexpr Matrix (float m0=0, float m4=0, float m8=0, float m12=0, float m1=0, float m5=0, float m9=0, float m13=0, float m2=0, float m6=0, float m10=0, float m14=0, float m3=0, float m7=0, float m11=0, float m15=0)
 
Matrix Add (const ::Matrix &right)
 
float GetM0 () const
 Retrieves the m0 value for the object.
 
float GetM1 () const
 Retrieves the m1 value for the object.
 
float GetM10 () const
 Retrieves the m10 value for the object.
 
float GetM11 () const
 Retrieves the m11 value for the object.
 
float GetM12 () const
 Retrieves the m12 value for the object.
 
float GetM13 () const
 Retrieves the m13 value for the object.
 
float GetM14 () const
 Retrieves the m14 value for the object.
 
float GetM15 () const
 Retrieves the m15 value for the object.
 
float GetM2 () const
 Retrieves the m2 value for the object.
 
float GetM3 () const
 Retrieves the m3 value for the object.
 
float GetM4 () const
 Retrieves the m4 value for the object.
 
float GetM5 () const
 Retrieves the m5 value for the object.
 
float GetM6 () const
 Retrieves the m6 value for the object.
 
float GetM7 () const
 Retrieves the m7 value for the object.
 
float GetM8 () const
 Retrieves the m8 value for the object.
 
float GetM9 () const
 Retrieves the m9 value for the object.
 
Matrix Invert () const
 
Matrix Multiply (const ::Matrix &right) const
 
Matrix Multiply (float value) const
 
 operator float16 () const
 
constexpr bool operator!= (const ::Matrix &other)
 
Matrix operator* (const ::Matrix &matrix)
 
Matrix operator* (float value)
 
Matrix operator+ (const ::Matrix &matrix)
 
Matrix operator- (const ::Matrix &matrix)
 
Matrixoperator= (const ::Matrix &matrix)
 
Matrixoperator= (const Matrix &matrix)
 
constexpr bool operator== (const ::Matrix &other)
 
void SetM0 (float value)
 Sets the m0 value for the object.
 
void SetM1 (float value)
 Sets the m1 value for the object.
 
void SetM10 (float value)
 Sets the m10 value for the object.
 
void SetM11 (float value)
 Sets the m11 value for the object.
 
void SetM12 (float value)
 Sets the m12 value for the object.
 
void SetM13 (float value)
 Sets the m13 value for the object.
 
void SetM14 (float value)
 Sets the m14 value for the object.
 
void SetM15 (float value)
 Sets the m15 value for the object.
 
void SetM2 (float value)
 Sets the m2 value for the object.
 
void SetM3 (float value)
 Sets the m3 value for the object.
 
void SetM4 (float value)
 Sets the m4 value for the object.
 
void SetM5 (float value)
 Sets the m5 value for the object.
 
void SetM6 (float value)
 Sets the m6 value for the object.
 
void SetM7 (float value)
 Sets the m7 value for the object.
 
void SetM8 (float value)
 Sets the m8 value for the object.
 
void SetM9 (float value)
 Sets the m9 value for the object.
 
MatrixSetShaderValue (const ::Shader &shader, int uniformLoc)
 Set shader uniform value (matrix 4x4)
 
Matrix Subtract (const ::Matrix &right)
 
float16 ToFloatV () const
 
float Trace () const
 Returns the trace of the matrix (sum of the values along the diagonal)
 
Matrix Transpose () const
 Transposes provided matrix.
 

Static Public Member Functions

static Matrix Frustum (double left, double right, double bottom, double top, double near, double far)
 
static Matrix GetCamera (const ::Camera &camera)
 
static Matrix GetCamera (const ::Camera2D &camera)
 
static Matrix Identity ()
 
static Matrix LookAt (Vector3 eye, Vector3 target, Vector3 up)
 
static Matrix Ortho (double left, double right, double bottom, double top, double near, double far)
 
static Matrix Perspective (double fovy, double aspect, double near, double far)
 
static Matrix Rotate (Vector3 axis, float angle)
 
static Matrix RotateX (float angle)
 
static Matrix RotateXYZ (Vector3 angle)
 
static Matrix RotateY (float angle)
 
static Matrix RotateZ (float angle)
 
static Matrix Scale (float x, float y, float z)
 
static Matrix Translate (float x, float y, float z)
 

Protected Member Functions

void set (const ::Matrix &mat)
 

Detailed Description

Matrix type (OpenGL style 4x4 - right handed, column major)

Definition at line 16 of file Matrix.hpp.

Constructor & Destructor Documentation

◆ Matrix() [1/2]

constexpr raylib::Matrix::Matrix ( const ::Matrix &  mat)
inlineconstexpr

Definition at line 18 of file Matrix.hpp.

◆ Matrix() [2/2]

constexpr raylib::Matrix::Matrix ( float  m0 = 0,
float  m4 = 0,
float  m8 = 0,
float  m12 = 0,
float  m1 = 0,
float  m5 = 0,
float  m9 = 0,
float  m13 = 0,
float  m2 = 0,
float  m6 = 0,
float  m10 = 0,
float  m14 = 0,
float  m3 = 0,
float  m7 = 0,
float  m11 = 0,
float  m15 = 0 
)
inlineconstexpr

Definition at line 23 of file Matrix.hpp.

Member Function Documentation

◆ Add()

Matrix raylib::Matrix::Add ( const ::Matrix &  right)
inline

Definition at line 99 of file Matrix.hpp.

◆ Frustum()

static Matrix raylib::Matrix::Frustum ( double  left,
double  right,
double  bottom,
double  top,
double  near,
double  far 
)
inlinestatic

Definition at line 129 of file Matrix.hpp.

◆ GetCamera() [1/2]

static Matrix raylib::Matrix::GetCamera ( const ::Camera &  camera)
inlinestatic

Definition at line 155 of file Matrix.hpp.

◆ GetCamera() [2/2]

static Matrix raylib::Matrix::GetCamera ( const ::Camera2D &  camera)
inlinestatic

Definition at line 157 of file Matrix.hpp.

◆ GetM0()

float raylib::Matrix::GetM0 ( ) const
inline

Retrieves the m0 value for the object.

Returns
The m0 value of the object.

Definition at line 44 of file Matrix.hpp.

◆ GetM1()

float raylib::Matrix::GetM1 ( ) const
inline

Retrieves the m1 value for the object.

Returns
The m1 value of the object.

Definition at line 45 of file Matrix.hpp.

◆ GetM10()

float raylib::Matrix::GetM10 ( ) const
inline

Retrieves the m10 value for the object.

Returns
The m10 value of the object.

Definition at line 54 of file Matrix.hpp.

◆ GetM11()

float raylib::Matrix::GetM11 ( ) const
inline

Retrieves the m11 value for the object.

Returns
The m11 value of the object.

Definition at line 55 of file Matrix.hpp.

◆ GetM12()

float raylib::Matrix::GetM12 ( ) const
inline

Retrieves the m12 value for the object.

Returns
The m12 value of the object.

Definition at line 56 of file Matrix.hpp.

◆ GetM13()

float raylib::Matrix::GetM13 ( ) const
inline

Retrieves the m13 value for the object.

Returns
The m13 value of the object.

Definition at line 57 of file Matrix.hpp.

◆ GetM14()

float raylib::Matrix::GetM14 ( ) const
inline

Retrieves the m14 value for the object.

Returns
The m14 value of the object.

Definition at line 58 of file Matrix.hpp.

◆ GetM15()

float raylib::Matrix::GetM15 ( ) const
inline

Retrieves the m15 value for the object.

Returns
The m15 value of the object.

Definition at line 59 of file Matrix.hpp.

◆ GetM2()

float raylib::Matrix::GetM2 ( ) const
inline

Retrieves the m2 value for the object.

Returns
The m2 value of the object.

Definition at line 46 of file Matrix.hpp.

◆ GetM3()

float raylib::Matrix::GetM3 ( ) const
inline

Retrieves the m3 value for the object.

Returns
The m3 value of the object.

Definition at line 47 of file Matrix.hpp.

◆ GetM4()

float raylib::Matrix::GetM4 ( ) const
inline

Retrieves the m4 value for the object.

Returns
The m4 value of the object.

Definition at line 48 of file Matrix.hpp.

◆ GetM5()

float raylib::Matrix::GetM5 ( ) const
inline

Retrieves the m5 value for the object.

Returns
The m5 value of the object.

Definition at line 49 of file Matrix.hpp.

◆ GetM6()

float raylib::Matrix::GetM6 ( ) const
inline

Retrieves the m6 value for the object.

Returns
The m6 value of the object.

Definition at line 50 of file Matrix.hpp.

◆ GetM7()

float raylib::Matrix::GetM7 ( ) const
inline

Retrieves the m7 value for the object.

Returns
The m7 value of the object.

Definition at line 51 of file Matrix.hpp.

◆ GetM8()

float raylib::Matrix::GetM8 ( ) const
inline

Retrieves the m8 value for the object.

Returns
The m8 value of the object.

Definition at line 52 of file Matrix.hpp.

◆ GetM9()

float raylib::Matrix::GetM9 ( ) const
inline

Retrieves the m9 value for the object.

Returns
The m9 value of the object.

Definition at line 53 of file Matrix.hpp.

◆ Identity()

static Matrix raylib::Matrix::Identity ( )
inlinestatic

Definition at line 97 of file Matrix.hpp.

◆ Invert()

Matrix raylib::Matrix::Invert ( ) const
inline

Definition at line 95 of file Matrix.hpp.

◆ LookAt()

static Matrix raylib::Matrix::LookAt ( Vector3  eye,
Vector3  target,
Vector3  up 
)
inlinestatic

Definition at line 141 of file Matrix.hpp.

◆ Multiply() [1/2]

Matrix raylib::Matrix::Multiply ( const ::Matrix &  right) const
inline

Definition at line 121 of file Matrix.hpp.

◆ Multiply() [2/2]

Matrix raylib::Matrix::Multiply ( float  value) const
inline

Definition at line 123 of file Matrix.hpp.

◆ operator float16()

raylib::Matrix::operator float16 ( ) const
inline

Definition at line 145 of file Matrix.hpp.

◆ operator!=()

constexpr bool raylib::Matrix::operator!= ( const ::Matrix &  other)
inlineconstexpr

Definition at line 82 of file Matrix.hpp.

◆ operator*() [1/2]

Matrix raylib::Matrix::operator* ( const ::Matrix &  matrix)
inline

Definition at line 125 of file Matrix.hpp.

◆ operator*() [2/2]

Matrix raylib::Matrix::operator* ( float  value)
inline

Definition at line 127 of file Matrix.hpp.

◆ operator+()

Matrix raylib::Matrix::operator+ ( const ::Matrix &  matrix)
inline

Definition at line 101 of file Matrix.hpp.

◆ operator-()

Matrix raylib::Matrix::operator- ( const ::Matrix &  matrix)
inline

Definition at line 105 of file Matrix.hpp.

◆ operator=() [1/2]

Matrix & raylib::Matrix::operator= ( const ::Matrix &  matrix)
inline

Definition at line 61 of file Matrix.hpp.

◆ operator=() [2/2]

Matrix & raylib::Matrix::operator= ( const Matrix matrix)
inline

Definition at line 68 of file Matrix.hpp.

◆ operator==()

constexpr bool raylib::Matrix::operator== ( const ::Matrix &  other)
inlineconstexpr

Definition at line 75 of file Matrix.hpp.

◆ Ortho()

static Matrix raylib::Matrix::Ortho ( double  left,
double  right,
double  bottom,
double  top,
double  near,
double  far 
)
inlinestatic

Definition at line 137 of file Matrix.hpp.

◆ Perspective()

static Matrix raylib::Matrix::Perspective ( double  fovy,
double  aspect,
double  near,
double  far 
)
inlinestatic

Definition at line 133 of file Matrix.hpp.

◆ Rotate()

static Matrix raylib::Matrix::Rotate ( Vector3  axis,
float  angle 
)
inlinestatic

Definition at line 109 of file Matrix.hpp.

◆ RotateX()

static Matrix raylib::Matrix::RotateX ( float  angle)
inlinestatic

Definition at line 113 of file Matrix.hpp.

◆ RotateXYZ()

static Matrix raylib::Matrix::RotateXYZ ( Vector3  angle)
inlinestatic

Definition at line 111 of file Matrix.hpp.

◆ RotateY()

static Matrix raylib::Matrix::RotateY ( float  angle)
inlinestatic

Definition at line 115 of file Matrix.hpp.

◆ RotateZ()

static Matrix raylib::Matrix::RotateZ ( float  angle)
inlinestatic

Definition at line 117 of file Matrix.hpp.

◆ Scale()

static Matrix raylib::Matrix::Scale ( float  x,
float  y,
float  z 
)
inlinestatic

Definition at line 119 of file Matrix.hpp.

◆ set()

void raylib::Matrix::set ( const ::Matrix &  mat)
inlineprotected

Definition at line 161 of file Matrix.hpp.

◆ SetM0()

void raylib::Matrix::SetM0 ( float  value)
inline

Sets the m0 value for the object.

Parameters
valueThe value of which to set m0 to.

Definition at line 44 of file Matrix.hpp.

◆ SetM1()

void raylib::Matrix::SetM1 ( float  value)
inline

Sets the m1 value for the object.

Parameters
valueThe value of which to set m1 to.

Definition at line 45 of file Matrix.hpp.

◆ SetM10()

void raylib::Matrix::SetM10 ( float  value)
inline

Sets the m10 value for the object.

Parameters
valueThe value of which to set m10 to.

Definition at line 54 of file Matrix.hpp.

◆ SetM11()

void raylib::Matrix::SetM11 ( float  value)
inline

Sets the m11 value for the object.

Parameters
valueThe value of which to set m11 to.

Definition at line 55 of file Matrix.hpp.

◆ SetM12()

void raylib::Matrix::SetM12 ( float  value)
inline

Sets the m12 value for the object.

Parameters
valueThe value of which to set m12 to.

Definition at line 56 of file Matrix.hpp.

◆ SetM13()

void raylib::Matrix::SetM13 ( float  value)
inline

Sets the m13 value for the object.

Parameters
valueThe value of which to set m13 to.

Definition at line 57 of file Matrix.hpp.

◆ SetM14()

void raylib::Matrix::SetM14 ( float  value)
inline

Sets the m14 value for the object.

Parameters
valueThe value of which to set m14 to.

Definition at line 58 of file Matrix.hpp.

◆ SetM15()

void raylib::Matrix::SetM15 ( float  value)
inline

Sets the m15 value for the object.

Parameters
valueThe value of which to set m15 to.

Definition at line 59 of file Matrix.hpp.

◆ SetM2()

void raylib::Matrix::SetM2 ( float  value)
inline

Sets the m2 value for the object.

Parameters
valueThe value of which to set m2 to.

Definition at line 46 of file Matrix.hpp.

◆ SetM3()

void raylib::Matrix::SetM3 ( float  value)
inline

Sets the m3 value for the object.

Parameters
valueThe value of which to set m3 to.

Definition at line 47 of file Matrix.hpp.

◆ SetM4()

void raylib::Matrix::SetM4 ( float  value)
inline

Sets the m4 value for the object.

Parameters
valueThe value of which to set m4 to.

Definition at line 48 of file Matrix.hpp.

◆ SetM5()

void raylib::Matrix::SetM5 ( float  value)
inline

Sets the m5 value for the object.

Parameters
valueThe value of which to set m5 to.

Definition at line 49 of file Matrix.hpp.

◆ SetM6()

void raylib::Matrix::SetM6 ( float  value)
inline

Sets the m6 value for the object.

Parameters
valueThe value of which to set m6 to.

Definition at line 50 of file Matrix.hpp.

◆ SetM7()

void raylib::Matrix::SetM7 ( float  value)
inline

Sets the m7 value for the object.

Parameters
valueThe value of which to set m7 to.

Definition at line 51 of file Matrix.hpp.

◆ SetM8()

void raylib::Matrix::SetM8 ( float  value)
inline

Sets the m8 value for the object.

Parameters
valueThe value of which to set m8 to.

Definition at line 52 of file Matrix.hpp.

◆ SetM9()

void raylib::Matrix::SetM9 ( float  value)
inline

Sets the m9 value for the object.

Parameters
valueThe value of which to set m9 to.

Definition at line 53 of file Matrix.hpp.

◆ SetShaderValue()

Matrix & raylib::Matrix::SetShaderValue ( const ::Shader &  shader,
int  uniformLoc 
)
inline

Set shader uniform value (matrix 4x4)

Definition at line 150 of file Matrix.hpp.

◆ Subtract()

Matrix raylib::Matrix::Subtract ( const ::Matrix &  right)
inline

Definition at line 103 of file Matrix.hpp.

◆ ToFloatV()

float16 raylib::Matrix::ToFloatV ( ) const
inline

Definition at line 143 of file Matrix.hpp.

◆ Trace()

float raylib::Matrix::Trace ( ) const
inline

Returns the trace of the matrix (sum of the values along the diagonal)

Definition at line 88 of file Matrix.hpp.

◆ Translate()

static Matrix raylib::Matrix::Translate ( float  x,
float  y,
float  z 
)
inlinestatic

Definition at line 107 of file Matrix.hpp.

◆ Transpose()

Matrix raylib::Matrix::Transpose ( ) const
inline

Transposes provided matrix.

Definition at line 93 of file Matrix.hpp.