summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/audio/AudioManager.cpp13
-rw-r--r--src/math/Matrix.h10
-rw-r--r--src/math/math.cpp10
3 files changed, 11 insertions, 22 deletions
diff --git a/src/audio/AudioManager.cpp b/src/audio/AudioManager.cpp
index e3ae9068..f8d42aec 100644
--- a/src/audio/AudioManager.cpp
+++ b/src/audio/AudioManager.cpp
@@ -9109,18 +9109,9 @@ cAudioManager::Terminate()
}
void
-cAudioManager::TranslateEntity(CVector *v1, CVector *v2) const
+cAudioManager::TranslateEntity(CVector *in, CVector *out) const
{
- const RwMatrix &cM = TheCamera.GetMatrix().m_matrix;
- const CVector &cV = TheCamera.GetPosition();
-
- float a = v1->z - cV.z;
- float b = v1->y - cV.y;
- float c = v1->x - cV.x;
-
- v2->x = cM.right.y * b + cM.right.x * c + cM.right.z * a;
- v2->y = cM.up.y * b + cM.up.x * c + cM.up.z * a;
- v2->z = cM.at.y * b + cM.at.x * c + cM.at.z * a;
+ *out = MultiplyInverse(TheCamera.GetMatrix(), *in);
}
void
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);
diff --git a/src/math/math.cpp b/src/math/math.cpp
index 6201cee6..4f74fac9 100644
--- a/src/math/math.cpp
+++ b/src/math/math.cpp
@@ -126,16 +126,6 @@ operator*(const CMatrix &m1, const CMatrix &m2)
return out;
}
-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)
{