From 45fdf3d68f76702f46753392f978a719e4d74ed7 Mon Sep 17 00:00:00 2001 From: sabrina-shanman Date: Tue, 19 Jun 2018 17:08:05 -0700 Subject: [PATCH 1/2] Fix crash when walking sideways --- interface/src/avatar/MyCharacterController.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/interface/src/avatar/MyCharacterController.cpp b/interface/src/avatar/MyCharacterController.cpp index 7e38c7763a..5356382605 100755 --- a/interface/src/avatar/MyCharacterController.cpp +++ b/interface/src/avatar/MyCharacterController.cpp @@ -108,12 +108,15 @@ bool MyCharacterController::testRayShotgun(const glm::vec3& position, const glm: btScalar lengthAxis = axis.length(); if (lengthAxis > FLT_EPSILON) { // we're walking sideways - btScalar angle = acosf(lengthAxis / adjustedDirection.length()); - if (rayDirection.dot(forward) < 0.0f) { - angle = PI - angle; + btScalar cosAngle = lengthAxis / adjustedDirection.length(); + if (cosAngle < 1) { + btScalar angle = acosf(cosAngle); + if (rayDirection.dot(forward) < 0.0f) { + angle = PI - angle; + } + axis /= lengthAxis; + rotation = btMatrix3x3(btQuaternion(axis, angle)) * rotation; } - axis /= lengthAxis; - rotation = btMatrix3x3(btQuaternion(axis, angle)) * rotation; } else if (rayDirection.dot(forward) < 0.0f) { // we're walking backwards rotation = btMatrix3x3(btQuaternion(_currentUp, PI)) * rotation; From a8b2da14cf7f1fcba0d4c3928af0ac3d63765606 Mon Sep 17 00:00:00 2001 From: sabrina-shanman Date: Wed, 20 Jun 2018 08:45:12 -0700 Subject: [PATCH 2/2] Format numeric constant in strafe crash commit to match coding standards --- interface/src/avatar/MyCharacterController.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/avatar/MyCharacterController.cpp b/interface/src/avatar/MyCharacterController.cpp index 5356382605..798dbc91ed 100755 --- a/interface/src/avatar/MyCharacterController.cpp +++ b/interface/src/avatar/MyCharacterController.cpp @@ -109,7 +109,7 @@ bool MyCharacterController::testRayShotgun(const glm::vec3& position, const glm: if (lengthAxis > FLT_EPSILON) { // we're walking sideways btScalar cosAngle = lengthAxis / adjustedDirection.length(); - if (cosAngle < 1) { + if (cosAngle < 1.0f) { btScalar angle = acosf(cosAngle); if (rayDirection.dot(forward) < 0.0f) { angle = PI - angle;