mirror of
https://github.com/PrimeDecomp/prime.git
synced 2025-12-16 01:37:00 +00:00
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "Kyoto/Math/CTransform4f.hpp"
|
||||
#include "Kyoto/Math/CVector3f.hpp"
|
||||
|
||||
class CMatrix3f {
|
||||
@@ -10,6 +11,13 @@ class CMatrix3f {
|
||||
|
||||
public:
|
||||
CMatrix3f(const CMatrix3f&);
|
||||
CMatrix3f(const CVector3f& m0, const CVector3f& m1, const CVector3f& m2);
|
||||
// fake but useful for CEulerAngles?
|
||||
CMatrix3f(const CTransform4f& xf);/*
|
||||
: m0(xf.GetRow(kDX))
|
||||
, m1(xf.GetRow(kDY))
|
||||
, m2(xf.GetRow(kDZ)) {}*/
|
||||
|
||||
const CMatrix3f& operator=(const CMatrix3f& other);
|
||||
|
||||
static const CMatrix3f& Identity() { return sIdentity; }
|
||||
@@ -21,8 +29,22 @@ public:
|
||||
inline const CVector3f& GetRow(EDimY dim) const { return m1; }
|
||||
inline const CVector3f& GetRow(EDimZ dim) const { return m2; }
|
||||
|
||||
float Get00() const { return m0.GetX(); }
|
||||
float Get01() const { return m0.GetY(); }
|
||||
float Get02() const { return m0.GetZ(); }
|
||||
float Get10() const { return m1.GetX(); }
|
||||
float Get11() const { return m1.GetY(); }
|
||||
float Get12() const { return m1.GetZ(); }
|
||||
float Get20() const { return m2.GetX(); }
|
||||
float Get21() const { return m2.GetY(); }
|
||||
float Get22() const { return m2.GetZ(); }
|
||||
|
||||
inline CVector3f GetColumn(EDimY dim) const { return CVector3f(m0.GetY(), m1.GetY(), m2.GetY()); }
|
||||
|
||||
static CMatrix3f FromTransform(const CTransform4f& xf);/* {
|
||||
return CMatrix3f(xf.GetRow(kDX), xf.GetRow(kDY), xf.GetRow(kDZ));
|
||||
}*/
|
||||
|
||||
private:
|
||||
// TODO maybe individual floats
|
||||
CVector3f m0;
|
||||
|
||||
Reference in New Issue
Block a user