From 7b4e50914057b2c48274cb3f42a8ab99d804c950 Mon Sep 17 00:00:00 2001 From: Chandler Cox Date: Thu, 11 Jul 2024 18:44:55 -0500 Subject: [PATCH] Fix mesh collider not rotating correctly due to negative scale. --- Source/Engine/Physics/Colliders/MeshCollider.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Source/Engine/Physics/Colliders/MeshCollider.cpp b/Source/Engine/Physics/Colliders/MeshCollider.cpp index 621432d0e..0027a0c28 100644 --- a/Source/Engine/Physics/Colliders/MeshCollider.cpp +++ b/Source/Engine/Physics/Colliders/MeshCollider.cpp @@ -133,7 +133,13 @@ void MeshCollider::GetGeometry(CollisionShape& collision) // Prepare scale Float3 scale = _cachedScale; const float minSize = 0.001f; - scale = Float3::Max(scale.GetAbsolute(), minSize); + Float3 scaleAbs = scale.GetAbsolute(); + if (scaleAbs.X < minSize) + scale.X = Math::Sign(scale.X) * minSize; + if (scaleAbs.Y < minSize) + scale.Y = Math::Sign(scale.Y) * minSize; + if (scaleAbs.Z < minSize) + scale.Z = Math::Sign(scale.Z) * minSize; // Setup shape (based on type) CollisionDataType type = CollisionDataType::None;