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
901901 }
902902
903903 } 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());
906904 if (OculusManager::isConnected()) {
907905 _myCamera.setRotation(_myAvatar->getWorldAlignedOrientation());
908906 } else {
909907 _myCamera.setRotation(_myAvatar->getHead()->getOrientation());
910908 }
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+ }
911916
912917 } else if (_myCamera.getMode() == CAMERA_MODE_MIRROR) {
913918 _myCamera.setRotation(_myAvatar->getWorldAlignedOrientation() * glm::quat(glm::vec3(0.0f, PI + _rotateMirror, 0.0f)));
@@ -2384,6 +2389,12 @@ void Application::cameraMenuChanged() { · 1470 unmodified lines
23842389 }
23852390 }
23862391
2392+void Application::rotationModeChanged() {
2393+ if (!Menu::getInstance()->isOptionChecked(MenuOption::CenterPlayerInView)) {
2394+ _myAvatar->setHeadPitch(0);
2395+ }
2396+}
2397+
23872398 void Application::updateCamera(float deltaTime) {
23882399 PerformanceTimer perfTimer("updateCamera");
23892400 bool showWarnings = Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings);