summaryrefslogtreecommitdiffstats
path: root/src/math/Matrix.h
diff options
context:
space:
mode:
authoreray orçunus <erayorcunus@gmail.com>2019-06-30 16:55:16 +0200
committereray orçunus <erayorcunus@gmail.com>2019-06-30 16:55:16 +0200
commite650c06acd17d6440fbc31bd9dc150d6dd17c45b (patch)
tree15ccabed4c8c5d7c5c2f7a636035876cbd183e4d /src/math/Matrix.h
parentMerge branch 'master' of git://github.com/GTAmodding/re3 into erorcun (diff)
parentMerge pull request #79 from Nick007J/master (diff)
downloadre3-e650c06acd17d6440fbc31bd9dc150d6dd17c45b.tar
re3-e650c06acd17d6440fbc31bd9dc150d6dd17c45b.tar.gz
re3-e650c06acd17d6440fbc31bd9dc150d6dd17c45b.tar.bz2
re3-e650c06acd17d6440fbc31bd9dc150d6dd17c45b.tar.lz
re3-e650c06acd17d6440fbc31bd9dc150d6dd17c45b.tar.xz
re3-e650c06acd17d6440fbc31bd9dc150d6dd17c45b.tar.zst
re3-e650c06acd17d6440fbc31bd9dc150d6dd17c45b.zip
Diffstat (limited to 'src/math/Matrix.h')
-rw-r--r--src/math/Matrix.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/math/Matrix.h b/src/math/Matrix.h
index e2e5394e..6e1001cb 100644
--- a/src/math/Matrix.h
+++ b/src/math/Matrix.h
@@ -20,6 +20,11 @@ public:
m_attachment = nil;
Attach(matrix, owner);
}
+ CMatrix(float scale){
+ m_attachment = nil;
+ m_hasRwMatrix = false;
+ SetScale(scale);
+ }
~CMatrix(void){
if(m_hasRwMatrix && m_attachment)
RwMatrixDestroy(m_attachment);
@@ -57,6 +62,21 @@ public:
if(m_attachment)
UpdateRW();
}
+ CMatrix& operator+=(CMatrix const &rhs){
+ m_matrix.right.x += rhs.m_matrix.right.x;
+ m_matrix.up.x += rhs.m_matrix.up.x;
+ m_matrix.at.x += rhs.m_matrix.at.x;
+ m_matrix.right.y += rhs.m_matrix.right.y;
+ m_matrix.up.y += rhs.m_matrix.up.y;
+ m_matrix.at.y += rhs.m_matrix.at.y;
+ m_matrix.right.z += rhs.m_matrix.right.z;
+ m_matrix.up.z += rhs.m_matrix.up.z;
+ m_matrix.at.z += rhs.m_matrix.at.z;
+ m_matrix.pos.x += rhs.m_matrix.pos.x;
+ m_matrix.pos.y += rhs.m_matrix.pos.y;
+ m_matrix.pos.z += rhs.m_matrix.pos.z;
+ return *this;
+ }
CVector *GetPosition(void){ return (CVector*)&m_matrix.pos; }
CVector *GetRight(void) { return (CVector*)&m_matrix.right; }
@@ -182,6 +202,21 @@ public:
void CopyOnlyMatrix(CMatrix *other){
m_matrix = other->m_matrix;
}
+ void SetUnity(void) {
+ m_matrix.right.x = 1.0f;
+ m_matrix.right.y = 0.0f;
+ m_matrix.right.z = 0.0f;
+ m_matrix.up.x = 0.0f;
+ m_matrix.up.y = 1.0f;
+ m_matrix.up.z = 0.0f;
+ m_matrix.at.x = 0.0f;
+ m_matrix.at.y = 0.0f;
+ m_matrix.at.z = 1.0f;
+ m_matrix.pos.x = 0.0f;
+ m_matrix.pos.x = 0.0f;
+ m_matrix.pos.y = 0.0f;
+ m_matrix.pos.z = 0.0f;
+ }
};
inline CMatrix&