Merge pull request #16235 from luiscuenca/resetLookAtOnGoTo

BUGZ-1553: Reset look at params when the avatar's location is set
This commit is contained in:
Anthony Thibault 2019-09-24 13:20:26 -07:00 committed by GitHub
commit 6fbcc9151e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 5 deletions

View file

@ -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;

View file

@ -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<float> _realWorldFieldOfView;
Setting::Handle<bool> _useAdvancedMovementControls;
Setting::Handle<bool> _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;