载入中...
搜索中...
未找到
Mat4.h
浏览该文件的文档.
1#pragma once
2
3#include <glm/mat4x4.hpp>
4
5namespace eve::math {
6
7class Vec2;
8class Vec3;
9
11class Mat4 {
12public:
13 Mat4();
14 explicit Mat4(const glm::mat4 &m);
15
16 void identity();
17 void translate(float x, float y, float z);
18 void rotateX(float radians);
19 void rotateY(float radians);
20 void rotateZ(float radians);
21 void scale(float sx, float sy, float sz);
22
24 void multiply(const Mat4 *other);
25 Mat4 *multiplied(const Mat4 *other) const;
26
27 Vec3 *transformVec3(const Vec3 *v) const;
28 Vec2 *transformPoint2(const Vec2 *v) const;
29
31 float get(int index) const;
32 void set(int index, float value);
33
34 Mat4 *clone() const;
35
36 const glm::mat4 &raw() const { return m_; }
37 glm::mat4 &raw() { return m_; }
38
39private:
40 glm::mat4 m_{1.f};
41};
42
43} // namespace eve::math
std::string value
int y
Definition Grass.cpp:135
int z
Definition Grass.cpp:135
int x
Definition Grass.cpp:135
int v
float scale
Definition TreeMesh.cpp:122
float m[16]
Column-major 4x4 matrix wrapping glm::mat4.
Definition Mat4.h:11
const glm::mat4 & raw() const
Definition Mat4.h:36
Vec3 * transformVec3(const Vec3 *v) const
Definition Mat4.cpp:39
Vec2 * transformPoint2(const Vec2 *v) const
Definition Mat4.cpp:45
glm::mat4 & raw()
Definition Mat4.h:37
void translate(float x, float y, float z)
Definition Mat4.cpp:17
float get(int index) const
Column-major element 0..15.
Definition Mat4.cpp:51
void identity()
Definition Mat4.cpp:15
void multiply(const Mat4 *other)
Definition Mat4.cpp:29
Mat4 * clone() const
Definition Mat4.cpp:61
void rotateX(float radians)
Definition Mat4.cpp:21
void rotateZ(float radians)
Definition Mat4.cpp:23
Mat4 * multiplied(const Mat4 *other) const
Definition Mat4.cpp:34
void set(int index, float value)
Definition Mat4.cpp:56
void rotateY(float radians)
Definition Mat4.cpp:22
2D float vector (script-facing math module value).
Definition Vec2.h:8
3D float vector (script-facing math module value).
Definition Vec3.h:8