From ce937247d100b02263f8fcfe867ec74349acf134 Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Fri, 2 Aug 2013 18:47:21 -0700 Subject: [PATCH] added back getUprightEyeLevelPosition() --- interface/src/Application.cpp | 2 +- interface/src/avatar/Avatar.cpp | 6 ++++++ interface/src/avatar/Avatar.h | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index b019e29cc1..6087a4493e 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -406,7 +406,7 @@ void Application::paintGL() { } else if (_myCamera.getMode() == CAMERA_MODE_FIRST_PERSON) { _myCamera.setTightness(0.0f); // In first person, camera follows head exactly without delay - _myCamera.setTargetPosition(_myAvatar.getEyePosition()); + _myCamera.setTargetPosition(_myAvatar.getUprightEyeLevelPosition()); _myCamera.setTargetRotation(_myAvatar.getHead().getCameraOrientation()); } else if (_myCamera.getMode() == CAMERA_MODE_THIRD_PERSON) { diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index 5d7e59deb1..346d5ff7d5 100755 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -368,6 +368,12 @@ glm::vec3 Avatar::getUprightHeadPosition() const { return _position + getWorldAlignedOrientation() * glm::vec3(0.0f, _pelvisToHeadLength, 0.0f); } +glm::vec3 Avatar::getUprightEyeLevelPosition() const { + const float EYE_UP_OFFSET = 0.36f; + glm::vec3 up = getWorldAlignedOrientation() * IDENTITY_UP; + return _position + up * _scale * BODY_BALL_RADIUS_HEAD_BASE * EYE_UP_OFFSET + glm::vec3(0.0f, _pelvisToHeadLength, 0.0f); +} + glm::vec3 Avatar::getEyePosition() { const float EYE_UP_OFFSET = 0.36f; const float EYE_FRONT_OFFSET = 0.8f; diff --git a/interface/src/avatar/Avatar.h b/interface/src/avatar/Avatar.h index f8aa5f3179..e9df1c125d 100755 --- a/interface/src/avatar/Avatar.h +++ b/interface/src/avatar/Avatar.h @@ -170,6 +170,7 @@ public: glm::vec3 getGravity () const { return _gravity; } glm::vec3 getUprightHeadPosition() const; + glm::vec3 getUprightEyeLevelPosition() const; glm::vec3 getEyePosition(); AvatarVoxelSystem* getVoxels() { return &_voxels; }