Core/GameObjects: Use all axis rotations for gameobject model collision, not just orientation

This commit is contained in:
Shauren authored and Ovahlord committed 2022-06-20 15:21:55 +02:00
1 parent dea1e820f5
commit 338e9d8033
3 files changed
+10 -4

No files matched your search

@@ -22,6 +22,7 @@
#include "GameObjectModel.h"
#include "Log.h"
#include "Timer.h"
#include <G3D/Quat.h>
using G3D::Vector3;
using G3D::Ray;
@@ -125,7 +126,7 @@ bool GameObjectModel::initialize(std::unique_ptr<GameObjectModelOwnerBase> model
iScale = modelOwner->GetScale();
iInvScale = 1.f / iScale;
G3D::Matrix3 iRotation = G3D::Matrix3::fromEulerAnglesZYX(modelOwner->GetOrientation(), 0, 0);
G3D::Matrix3 iRotation = modelOwner->GetRotation().toRotationMatrix();
iInvRot = iRotation.inverse();
// transform bounding box:
mdl_box = AABox(mdl_box.low() * iScale, mdl_box.high() * iScale);
@@ -203,7 +204,7 @@ bool GameObjectModel::UpdatePosition()
iPos = owner->GetPosition();
G3D::Matrix3 iRotation = G3D::Matrix3::fromEulerAnglesZYX(owner->GetOrientation(), 0, 0);
G3D::Matrix3 iRotation = owner->GetRotation().toRotationMatrix();
iInvRot = iRotation.inverse();
// transform bounding box:
mdl_box = AABox(mdl_box.low() * iScale, mdl_box.high() * iScale);