diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 112685e891..6f16e6e1bf 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -4144,6 +4144,7 @@ void MyAvatar::goToLocation(const glm::vec3& newPosition, _goToOrientation = quatOrientation; } + resetLookAtRotation(_goToPosition, _goToOrientation); emit transformChanged(); } @@ -5996,6 +5997,7 @@ bool MyAvatar::pinJoint(int index, const glm::vec3& position, const glm::quat& o } slamPosition(position); + resetLookAtRotation(position, orientation); setWorldOrientation(orientation); auto it = std::find(_pinnedJoints.begin(), _pinnedJoints.end(), index); @@ -6662,6 +6664,15 @@ void MyAvatar::resetHeadLookAt() { } } +void MyAvatar::resetLookAtRotation(const glm::vec3& avatarPosition, const glm::quat& avatarOrientation) { + // Align the look at values to the given avatar orientation + float yaw = safeEulerAngles(avatarOrientation).y; + _lookAtYaw = glm::angleAxis(yaw, avatarOrientation * Vectors::UP); + _lookAtPitch = Quaternions::IDENTITY; + _lookAtCameraTarget = avatarPosition + avatarOrientation * Vectors::FRONT; + resetHeadLookAt(); +} + void MyAvatar::updateHeadLookAt(float deltaTime) { if (_skeletonModelLoaded) { glm::vec3 lookAtTarget = _scriptControlsHeadLookAt ? _lookAtScriptTarget : _lookAtCameraTarget; diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h index a6c53c1c0b..7b63e8e86b 100644 --- a/interface/src/avatar/MyAvatar.h +++ b/interface/src/avatar/MyAvatar.h @@ -2654,11 +2654,6 @@ private: bool _scriptControlsHeadLookAt { false }; float _scriptHeadControlTimer { 0.0f }; - // LookAt camera data - float _selfieTriggerAngle { 55.0f }; - float _frontLookAtSpeed { 0.15f }; - float _backLookAtSpeed { 0.25f }; - Setting::Handle _realWorldFieldOfView; Setting::Handle _useAdvancedMovementControls; Setting::Handle _showPlayArea; @@ -2685,6 +2680,7 @@ private: void initFlowFromFST(); void updateHeadLookAt(float deltaTime); void resetHeadLookAt(); + void resetLookAtRotation(const glm::vec3& avatarPosition, const glm::quat& avatarOrientation); // Avatar Preferences QUrl _fullAvatarURLFromPreferences;