fix bugs preventing avatar from walking on spherical planet
Showing the changes to interface/src/Application.cpp (1 of 12 files). Show all
Unified · Split
| @@ -2323,7 +2323,7 @@ void Application::paintGL() { · 2322 unmodified lines | |||
| 2323 | } | 2323 | } |
| 2324 | } else if (_myCamera.getMode() == CAMERA_MODE_MIRROR) { | 2324 | } else if (_myCamera.getMode() == CAMERA_MODE_MIRROR) { |
| 2325 | if (isHMDMode()) { | 2325 | if (isHMDMode()) { |
| 2326 | auto mirrorBodyOrientation = myAvatar->getWorldAlignedOrientation() * glm::quat(glm::vec3(0.0f, PI + _rotateMirror, 0.0f)); | 2326 | auto mirrorBodyOrientation = myAvatar->getOrientation() * glm::quat(glm::vec3(0.0f, PI + _rotateMirror, 0.0f)); |
| 2327 | 2327 | ||
| 2328 | glm::quat hmdRotation = extractRotation(myAvatar->getHMDSensorMatrix()); | 2328 | glm::quat hmdRotation = extractRotation(myAvatar->getHMDSensorMatrix()); |
| 2329 | // Mirror HMD yaw and roll | 2329 | // Mirror HMD yaw and roll |
| @@ -2345,7 +2345,7 @@ void Application::paintGL() { · 15 unmodified lines | |||
| 2345 | + mirrorBodyOrientation * glm::vec3(0.0f, 0.0f, 1.0f) * MIRROR_FULLSCREEN_DISTANCE * _scaleMirror | 2345 | + mirrorBodyOrientation * glm::vec3(0.0f, 0.0f, 1.0f) * MIRROR_FULLSCREEN_DISTANCE * _scaleMirror |
| 2346 | + mirrorBodyOrientation * hmdOffset); | 2346 | + mirrorBodyOrientation * hmdOffset); |
| 2347 | } else { | 2347 | } else { |
| 2348 | _myCamera.setOrientation(myAvatar->getWorldAlignedOrientation() | 2348 | _myCamera.setOrientation(myAvatar->getOrientation() |
| 2349 | * glm::quat(glm::vec3(0.0f, PI + _rotateMirror, 0.0f))); | 2349 | * glm::quat(glm::vec3(0.0f, PI + _rotateMirror, 0.0f))); |
| 2350 | _myCamera.setPosition(myAvatar->getDefaultEyePosition() | 2350 | _myCamera.setPosition(myAvatar->getDefaultEyePosition() |
| 2351 | + glm::vec3(0, _raiseMirror * myAvatar->getUniformScale(), 0) | 2351 | + glm::vec3(0, _raiseMirror * myAvatar->getUniformScale(), 0) |