24 Vec3(
float x,
float y,
float z);
28 Vec3 operator*(
const Vec3& other)
const;
29 Vec3 operator*(
const float v)
const;
30 Vec3 operator/(
const float v)
const;
32 template <
class Archive>
33 void serialize(Archive& archive) {
48 Vec3i(
int x,
int y,
int z);
62 Vec4(
float x,
float y,
float z,
float w);
68 Vec4 operator*(
const float v)
const;
69 Vec4 operator*(
const Vec4& other)
const;
70 Vec4& operator/=(
const float div);
71 float& operator[](
int idx);
73 template <
class Archive>
74 void serialize(Archive& archive) {
90 Vec4i(
int x,
int y,
int z,
int w);
104 Mat4(
float r0x,
float r0y,
float r0z,
float r0w,
105 float r1x,
float r1y,
float r1z,
float r1w,
106 float r2x,
float r2y,
float r2z,
float r2w,
107 float r3x,
float r3y,
float r3z,
float r3w );
108 Vec4& operator[](
int idx);
109 Mat4 operator-(
const Mat4& other)
const;
110 Mat4 operator*(
const Mat4& other)
const;
111 Vec4 operator*(
const Vec4& vec)
const;
112 Mat4& operator*=(
const Mat4& other);
113 Mat4& operator/=(
const float div);
115 template <
class Archive>
116 void serialize(Archive& archive) {
134 Mat4 toMatrix()
const;
136 template <
class Archive>
137 void serialize(Archive& archive) {
146 Mat4 rotate(
const Mat4& mat,
const float angle,
const Vec3& vec);
148 Mat4 ortho(
float left,
float right,
float bottom,
float top,
float zNear,
float zFar);
150 Mat4 perspective(
float fovy,
float aspect,
float zNear,
float zFar);
154 float* Value_ptr(
Mat4& mat);
156 float* Value_ptr(
Vec3& vec);
158 float* Value_ptr(
Vec4& vec);