summaryrefslogtreecommitdiffstats
path: root/src/math/Matrix.h
diff options
context:
space:
mode:
authorNikolay Korolev <nickvnuk@gmail.com>2019-10-27 10:51:24 +0100
committerNikolay Korolev <nickvnuk@gmail.com>2019-10-27 10:51:24 +0100
commit62240606271b80ad5f8cc47f30d6f3f974d1fabe (patch)
tree0ec36dae8d78c49b21d3cce71c16c9e0da8c74e8 /src/math/Matrix.h
parentscript 600-699 (diff)
parentMerge pull request #259 from Fire-Head/master (diff)
downloadre3-62240606271b80ad5f8cc47f30d6f3f974d1fabe.tar
re3-62240606271b80ad5f8cc47f30d6f3f974d1fabe.tar.gz
re3-62240606271b80ad5f8cc47f30d6f3f974d1fabe.tar.bz2
re3-62240606271b80ad5f8cc47f30d6f3f974d1fabe.tar.lz
re3-62240606271b80ad5f8cc47f30d6f3f974d1fabe.tar.xz
re3-62240606271b80ad5f8cc47f30d6f3f974d1fabe.tar.zst
re3-62240606271b80ad5f8cc47f30d6f3f974d1fabe.zip
Diffstat (limited to 'src/math/Matrix.h')
-rw-r--r--src/math/Matrix.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/math/Matrix.h b/src/math/Matrix.h
index 96f56a0f..da38cb1d 100644
--- a/src/math/Matrix.h
+++ b/src/math/Matrix.h
@@ -249,7 +249,15 @@ public:
CMatrix &Invert(const CMatrix &src, CMatrix &dst);
CVector operator*(const CMatrix &mat, const CVector &vec);
CMatrix operator*(const CMatrix &m1, const CMatrix &m2);
-CVector MultiplyInverse(const CMatrix &mat, const CVector &vec);
+inline CVector MultiplyInverse(const CMatrix &mat, const CVector &vec)
+{
+ CVector v(vec.x - mat.m_matrix.pos.x, vec.y - mat.m_matrix.pos.y, vec.z - mat.m_matrix.pos.z);
+ return CVector(
+ mat.m_matrix.right.x * v.x + mat.m_matrix.right.y * v.y + mat.m_matrix.right.z * v.z,
+ mat.m_matrix.up.x * v.x + mat.m_matrix.up.y * v.y + mat.m_matrix.up.z * v.z,
+ mat.m_matrix.at.x * v.x + mat.m_matrix.at.y * v.y + mat.m_matrix.at.z * v.z);
+}
+
const CVector Multiply3x3(const CMatrix &mat, const CVector &vec);
const CVector Multiply3x3(const CVector &vec, const CMatrix &mat);