History

added camera mode to keep player in center of view

Sam Gondelman committed 11 years ago

Commit 22961fc1 parent 4090fd64 files · +18 −2Browse files

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

Unified · Split

interface/src/Application.cpp+13−2
@@ -901,13 +901,18 @@ void Application::paintGL() { · 900 unmodified lines
901 }901 }
902 902
903 } else if (_myCamera.getMode() == CAMERA_MODE_THIRD_PERSON) {903 } else if (_myCamera.getMode() == CAMERA_MODE_THIRD_PERSON) {
904 _myCamera.setPosition(_myAvatar->getDefaultEyePosition() +
905 _myAvatar->getOrientation() * glm::vec3(0.0f, 0.0f, 1.0f) * _myAvatar->getBoomLength() * _myAvatar->getScale());
906 if (OculusManager::isConnected()) {904 if (OculusManager::isConnected()) {
907 _myCamera.setRotation(_myAvatar->getWorldAlignedOrientation());905 _myCamera.setRotation(_myAvatar->getWorldAlignedOrientation());
908 } else {906 } else {
909 _myCamera.setRotation(_myAvatar->getHead()->getOrientation());907 _myCamera.setRotation(_myAvatar->getHead()->getOrientation());
910 }908 }
909 if (Menu::getInstance()->isOptionChecked(MenuOption::CenterPlayerInView)) {
910 _myCamera.setPosition(_myAvatar->getDefaultEyePosition() +
911 _myCamera.getRotation() * glm::vec3(0.0f, 0.0f, 1.0f) * _myAvatar->getBoomLength() * _myAvatar->getScale());
912 } else {
913 _myCamera.setPosition(_myAvatar->getDefaultEyePosition() +
914 _myAvatar->getOrientation() * glm::vec3(0.0f, 0.0f, 1.0f) * _myAvatar->getBoomLength() * _myAvatar->getScale());
915 }
911 916
912 } else if (_myCamera.getMode() == CAMERA_MODE_MIRROR) {917 } else if (_myCamera.getMode() == CAMERA_MODE_MIRROR) {
913 _myCamera.setRotation(_myAvatar->getWorldAlignedOrientation() * glm::quat(glm::vec3(0.0f, PI + _rotateMirror, 0.0f)));918 _myCamera.setRotation(_myAvatar->getWorldAlignedOrientation() * glm::quat(glm::vec3(0.0f, PI + _rotateMirror, 0.0f)));
@@ -2384,6 +2389,12 @@ void Application::cameraMenuChanged() { · 1470 unmodified lines
2384 }2389 }
2385}2390}
2386 2391
2392void Application::rotationModeChanged() {
2393 if (!Menu::getInstance()->isOptionChecked(MenuOption::CenterPlayerInView)) {
2394 _myAvatar->setHeadPitch(0);
2395 }
2396}
2397
2387void Application::updateCamera(float deltaTime) {2398void Application::updateCamera(float deltaTime) {
2388 PerformanceTimer perfTimer("updateCamera");2399 PerformanceTimer perfTimer("updateCamera");
2389 bool showWarnings = Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings);2400 bool showWarnings = Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings);