[Scummvm-git-logs] scummvm master -> 9ae57ad4c131083d3c7277366fa1bc9a898aacbd
aquadran
noreply at scummvm.org
Sun Dec 26 17:46:06 UTC 2021
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
9ae57ad4c1 GRIM: EMI: Use new math vector and matrix multiplication
Commit: 9ae57ad4c131083d3c7277366fa1bc9a898aacbd
https://github.com/scummvm/scummvm/commit/9ae57ad4c131083d3c7277366fa1bc9a898aacbd
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2021-12-26T18:45:59+01:00
Commit Message:
GRIM: EMI: Use new math vector and matrix multiplication
Changed paths:
engines/grim/emi/costume/emihead.cpp
engines/grim/emi/emi.cpp
engines/grim/emi/modelemi.cpp
engines/grim/emi/sound/track.cpp
diff --git a/engines/grim/emi/costume/emihead.cpp b/engines/grim/emi/costume/emihead.cpp
index 4d12f225a2..2275493d8d 100644
--- a/engines/grim/emi/costume/emihead.cpp
+++ b/engines/grim/emi/costume/emihead.cpp
@@ -69,8 +69,8 @@ void EMIHead::lookAt(bool entering, const Math::Vector3d &point, float rate, con
Math::Vector3d modelFront(0, 0, 1);
Math::Vector3d modelUp(0, 1, 0);
- joint->_absMatrix.inverseRotate(&modelFront);
- joint->_absMatrix.inverseRotate(&modelUp);
+ modelFront = modelFront * joint->_absMatrix.getRotation();
+ modelUp = modelUp * joint->_absMatrix.getRotation();
// Generate a world-space look at matrix.
Math::Matrix4 lookAtTM;
diff --git a/engines/grim/emi/emi.cpp b/engines/grim/emi/emi.cpp
index 897f1e4ca4..25dabf2951 100644
--- a/engines/grim/emi/emi.cpp
+++ b/engines/grim/emi/emi.cpp
@@ -315,8 +315,8 @@ bool EMIEngine::compareActor(const Actor *x, const Actor *y) {
Math::Vector3d xp(x->getWorldPos() - setup->_pos);
Math::Vector3d yp(y->getWorldPos() - setup->_pos);
- camRot.inverseRotate(&xp);
- camRot.inverseRotate(&yp);
+ xp = xp * camRot.getRotation();
+ yp = yp * camRot.getRotation();
if (fabs(xp.z() - yp.z()) < 0.001f) {
return x->getId() < y->getId();
diff --git a/engines/grim/emi/modelemi.cpp b/engines/grim/emi/modelemi.cpp
index 116a3cda26..4ba64b46a4 100644
--- a/engines/grim/emi/modelemi.cpp
+++ b/engines/grim/emi/modelemi.cpp
@@ -249,12 +249,12 @@ void EMIModel::prepareForRender() {
Math::Vector3d vert = _vertices[boneVert];
vert -= bindPose.getPosition();
- bindPose.inverseRotate(&vert);
+ vert = vert * bindPose.getRotation();
jointMatrix.transform(&vert, true);
_drawVertices[boneVert] += vert * _boneInfos[i]._weight;
Math::Vector3d normal = _normals[boneVert];
- bindPose.inverseRotate(&normal);
+ normal = normal * bindPose.getRotation();
jointMatrix.transform(&normal, false);
_drawNormals[boneVert] += normal * _boneInfos[i]._weight;
}
diff --git a/engines/grim/emi/sound/track.cpp b/engines/grim/emi/sound/track.cpp
index 1b798405e3..90b848b8ce 100644
--- a/engines/grim/emi/sound/track.cpp
+++ b/engines/grim/emi/sound/track.cpp
@@ -94,7 +94,7 @@ void SoundTrack::updatePosition() {
Math::Matrix4 worldRot = setup->_rot;
Math::Vector3d relPos = (_pos - setup->_pos);
Math::Vector3d p(relPos);
- worldRot.inverseRotate(&p);
+ p = p * worldRot.getRotation();
float angle = atan2(p.x(), p.z());
float pan = sin(angle);
_balance = (int)(pan * 127.0f);
More information about the Scummvm-git-logs
mailing list