diff options
author | eray orçunus <erayorcunus@gmail.com> | 2019-06-30 16:55:16 +0200 |
---|---|---|
committer | eray orçunus <erayorcunus@gmail.com> | 2019-06-30 16:55:16 +0200 |
commit | e650c06acd17d6440fbc31bd9dc150d6dd17c45b (patch) | |
tree | 15ccabed4c8c5d7c5c2f7a636035876cbd183e4d /src/math/Matrix.h | |
parent | Merge branch 'master' of git://github.com/GTAmodding/re3 into erorcun (diff) | |
parent | Merge pull request #79 from Nick007J/master (diff) | |
download | re3-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.h | 35 |
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& |