LeviLamina
Loading...
Searching...
No Matches
Matrix.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5class Matrix {
6public:
7 // member variables
8 // NOLINTBEGIN
9 ::ll::TypedStorage<4, 64, ::glm::mat4x4> _m;
10 // NOLINTEND
11
12public:
13 // prevent constructor by default
14 Matrix();
15
16public:
17 // member functions
18 // NOLINTBEGIN
19 MCAPI explicit Matrix(::glm::qua<float> const& q);
20
21 MCAPI_C void mult(::Matrix const& rhs);
22
23 MCAPI_C void normalize();
24
25 MCAPI_C void rotate(float a, ::glm::vec3 const& axis);
26
27 MCAPI_C void rotate(float a, float x, float y, float z);
28
29 MCAPI_C void scale(float x);
30
31 MCAPI_C void transform3(::glm::vec3& outVec) const;
32
33 MCAPI void transform3(::glm::vec3& outVec, float& outW) const;
34
35 MCAPI_C void translate(::glm::vec3 const& t);
36
37 MCAPI void translate(float x, float y, float z);
38 // NOLINTEND
39
40public:
41 // static functions
42 // NOLINTBEGIN
43 MCAPI_C static ::Matrix makeOrtho(float left, float right, float bottom, float top, float zNear, float zFar);
44 // NOLINTEND
45
46public:
47 // static variables
48 // NOLINTBEGIN
49 MCAPI static ::Matrix const& IDENTITY();
50 // NOLINTEND
51
52public:
53 // constructor thunks
54 // NOLINTBEGIN
55 MCFOLD_C void* $ctor();
56
57 MCAPI void* $ctor(::glm::qua<float> const& q);
58 // NOLINTEND
59};