Showing the changes to interface/src/Application.cpp (1 of 3 files). Show all
Unified · Split
| @@ -1380,10 +1380,12 @@ void Application::paintGL() { · 1379 unmodified lines | ||
| 1380 | 1380 | |
| 1381 | 1381 | } |
| 1382 | 1382 | |
| 1383 | + glm::vec3 boomOffset; | |
| 1383 | 1384 | { |
| 1384 | 1385 | PerformanceTimer perfTimer("CameraUpdates"); |
| 1385 | 1386 | |
| 1386 | 1387 | auto myAvatar = getMyAvatar(); |
| 1388 | + boomOffset = myAvatar->getScale() * myAvatar->getBoomLength() * -IDENTITY_FRONT; | |
| 1387 | 1389 | |
| 1388 | 1390 | myAvatar->startCapture(); |
| 1389 | 1391 | if (_myCamera.getMode() == CAMERA_MODE_FIRST_PERSON || _myCamera.getMode() == CAMERA_MODE_THIRD_PERSON) { |
| @@ -1411,18 +1413,16 @@ void Application::paintGL() { · 21 unmodified lines | ||
| 1411 | 1413 | if (isHMDMode()) { |
| 1412 | 1414 | auto hmdWorldMat = myAvatar->getSensorToWorldMatrix() * myAvatar->getHMDSensorMatrix(); |
| 1413 | 1415 | _myCamera.setRotation(glm::normalize(glm::quat_cast(hmdWorldMat))); |
| 1414 | − auto worldBoomOffset = myAvatar->getOrientation() * (myAvatar->getScale() * myAvatar->getBoomLength() * glm::vec3(0.0f, 0.0f, 1.0f)); | |
| 1415 | − _myCamera.setPosition(extractTranslation(hmdWorldMat) + worldBoomOffset); | |
| 1416 | + _myCamera.setPosition(extractTranslation(hmdWorldMat) + | |
| 1417 | + myAvatar->getOrientation() * boomOffset); | |
| 1416 | 1418 | } else { |
| 1417 | 1419 | _myCamera.setRotation(myAvatar->getHead()->getOrientation()); |
| 1418 | 1420 | if (Menu::getInstance()->isOptionChecked(MenuOption::CenterPlayerInView)) { |
| 1419 | 1421 | _myCamera.setPosition(myAvatar->getDefaultEyePosition() |
| 1420 | − + _myCamera.getRotation() | |
| 1421 | − * (myAvatar->getScale() * myAvatar->getBoomLength() * glm::vec3(0.0f, 0.0f, 1.0f))); | |
| 1422 | + + _myCamera.getRotation() * boomOffset); | |
| 1422 | 1423 | } else { |
| 1423 | 1424 | _myCamera.setPosition(myAvatar->getDefaultEyePosition() |
| 1424 | − + myAvatar->getOrientation() | |
| 1425 | − * (myAvatar->getScale() * myAvatar->getBoomLength() * glm::vec3(0.0f, 0.0f, 1.0f))); | |
| 1425 | + + myAvatar->getOrientation() * boomOffset); | |
| 1426 | 1426 | } |
| 1427 | 1427 | } |
| 1428 | 1428 | } else if (_myCamera.getMode() == CAMERA_MODE_MIRROR) { |
| @@ -1488,6 +1488,7 @@ void Application::paintGL() { · 59 unmodified lines | ||
| 1488 | 1488 | { |
| 1489 | 1489 | PROFILE_RANGE(__FUNCTION__ "/mainRender"); |
| 1490 | 1490 | PerformanceTimer perfTimer("mainRender"); |
| 1491 | + renderArgs._boomOffset = boomOffset; | |
| 1491 | 1492 | // Viewport is assigned to the size of the framebuffer |
| 1492 | 1493 | renderArgs._viewport = ivec4(0, 0, size.width(), size.height()); |
| 1493 | 1494 | if (displayPlugin->isStereo()) { |