2022-10-09 05:13:17 +00:00
|
|
|
#ifndef _CMATRIX4F
|
|
|
|
#define _CMATRIX4F
|
2022-08-13 02:48:34 +00:00
|
|
|
|
|
|
|
#include "types.h"
|
|
|
|
|
2023-01-10 23:03:38 +00:00
|
|
|
#include "Kyoto/Math/CVector3f.hpp"
|
|
|
|
|
2022-08-13 02:48:34 +00:00
|
|
|
class CMatrix4f {
|
2022-12-01 05:58:57 +00:00
|
|
|
public:
|
|
|
|
CMatrix4f(float, float, float, float, float, float, float, float, float, float, float, float,
|
|
|
|
float, float, float, float);
|
|
|
|
|
2023-01-10 23:03:38 +00:00
|
|
|
CVector3f operator*(const CVector3f& vec) const;
|
|
|
|
|
2022-12-06 23:32:47 +00:00
|
|
|
CVector3f MultiplyOneOverW(const CVector3f& vec) const;
|
2023-01-10 23:03:38 +00:00
|
|
|
float MultiplyGetW(const CVector3f& vec) const;
|
2022-12-06 23:32:47 +00:00
|
|
|
|
2023-01-10 23:03:38 +00:00
|
|
|
static const CMatrix4f& Identity() { return sIdentity; }
|
|
|
|
|
2022-08-13 02:48:34 +00:00
|
|
|
private:
|
2023-01-10 23:03:38 +00:00
|
|
|
static const CMatrix4f sIdentity;
|
2022-10-09 05:37:23 +00:00
|
|
|
float m00;
|
|
|
|
float m01;
|
|
|
|
float m02;
|
|
|
|
float m03;
|
|
|
|
float m10;
|
|
|
|
float m11;
|
|
|
|
float m12;
|
|
|
|
float m13;
|
|
|
|
float m20;
|
|
|
|
float m21;
|
|
|
|
float m22;
|
|
|
|
float m23;
|
|
|
|
float m30;
|
|
|
|
float m31;
|
|
|
|
float m32;
|
|
|
|
float m33;
|
2022-08-13 02:48:34 +00:00
|
|
|
};
|
|
|
|
CHECK_SIZEOF(CMatrix4f, 0x40);
|
|
|
|
|
2022-10-09 05:13:17 +00:00
|
|
|
#endif // _CMATRIX4F
|