History

fixing some issues

Dante Ruiz committed 8 years ago

Commit 1079cfb1 parent 272f71b2 files · +40 −19Browse files

Showing the changes to interface/src/Application.cpp (1 of 2 files). Show all

Unified · Split

interface/src/Application.cpp+40−14
@@ -2789,22 +2789,48 @@ void Application::updateCamera(RenderArgs& renderArgs, float deltaTime) { · 2788 unmodified lines
2789 }2789 }
2790 else if (_myCamera.getMode() == CAMERA_MODE_MIRROR) {2790 else if (_myCamera.getMode() == CAMERA_MODE_MIRROR) {
2791 _thirdPersonHMDCameraBoomValid= false;2791 _thirdPersonHMDCameraBoomValid= false;
2792 auto userInputMapper = DependencyManager::get<UserInputMapper>();2792
2793 const float YAW_SPEED = 70.0f;2793 if (isHMDMode()) {
2794 float targetSpeed = userInputMapper->getActionState(controller::Action::YAW) * YAW_SPEED;2794 auto mirrorBodyOrientation = myAvatar->getWorldOrientation() * glm::quat(glm::vec3(0.0f, PI + _rotateMirror, 0.0f));
2795 if (targetSpeed != 0.0f) {2795
2796 const float ROTATION_TIMESCALE = 20.0f;2796 glm::quat hmdRotation = extractRotation(myAvatar->getHMDSensorMatrix());
2797 float blend = deltaTime / ROTATION_TIMESCALE;2797 // Mirror HMD yaw and roll
2798 if (blend > 1.0f) {2798 glm::vec3 mirrorHmdEulers = glm::eulerAngles(hmdRotation);
2799 blend = 1.0f;2799 mirrorHmdEulers.y = -mirrorHmdEulers.y;
2800 mirrorHmdEulers.z = -mirrorHmdEulers.z;
2801 glm::quat mirrorHmdRotation = glm::quat(mirrorHmdEulers);
2802
2803 glm::quat worldMirrorRotation = mirrorBodyOrientation * mirrorHmdRotation;
2804
2805 _myCamera.setOrientation(worldMirrorRotation);
2806
2807 glm::vec3 hmdOffset = extractTranslation(myAvatar->getHMDSensorMatrix());
2808 // Mirror HMD lateral offsets
2809 hmdOffset.x = -hmdOffset.x;
2810
2811 _myCamera.setPosition(myAvatar->getDefaultEyePosition()
2812 + glm::vec3(0, _raiseMirror * myAvatar->getModelScale(), 0)
2813 + mirrorBodyOrientation * glm::vec3(0.0f, 0.0f, 1.0f) * MIRROR_FULLSCREEN_DISTANCE * _scaleMirror
2814 + mirrorBodyOrientation * hmdOffset);
2815 }
2816 else {
2817 auto userInputMapper = DependencyManager::get<UserInputMapper>();
2818 const float YAW_SPEED = 70.0f;
2819 float targetSpeed = userInputMapper->getActionState(controller::Action::YAW) * YAW_SPEED;
2820 if (targetSpeed != 0.0f) {
2821 const float ROTATION_TIMESCALE = 20.0f;
2822 float blend = deltaTime / ROTATION_TIMESCALE;
2823 if (blend > 1.0f) {
2824 blend = 1.0f;
2825 }
2826 _rotateMirror = (1.0f - blend) * _rotateMirror + blend * targetSpeed;
2800 }2827 }
2801 _rotateMirror = (1.0f - blend) * _rotateMirror + blend * targetSpeed;2828 _myCamera.setOrientation(glm::quat(glm::vec3(0.0f, PI + _rotateMirror, 0.0f)));
2829 _myCamera.setPosition(myAvatar->getDefaultEyePosition()
2830 + glm::vec3(0, _raiseMirror * myAvatar->getModelScale(), 0)
2831 + (glm::quat(glm::vec3(0.0f, _rotateMirror, 0.0f))) *
2832 glm::vec3(0.0f, 0.0f, -1.0f) * myAvatar->getBoomLength() * _scaleMirror);
2802 }2833 }
2803 _myCamera.setOrientation(glm::quat(glm::vec3(0.0f, PI + _rotateMirror, 0.0f)));
2804 _myCamera.setPosition(myAvatar->getDefaultEyePosition()
2805 + glm::vec3(0, _raiseMirror * myAvatar->getModelScale(), 0)
2806 + (glm::quat(glm::vec3(0.0f, _rotateMirror, 0.0f))) *
2807 glm::vec3(0.0f, 0.0f, -1.0f) * myAvatar->getBoomLength() * _scaleMirror);
2808 renderArgs._renderMode = RenderArgs::MIRROR_RENDER_MODE;2834 renderArgs._renderMode = RenderArgs::MIRROR_RENDER_MODE;
2809 }2835 }
2810 else if (_myCamera.getMode() == CAMERA_MODE_ENTITY) {2836 else if (_myCamera.getMode() == CAMERA_MODE_ENTITY) {