Don't look straight ahead in fullscreen mirror

This commit is contained in:
David Rowe 2015-09-22 16:15:54 -07:00
parent 17b2bf1c33
commit eda12fd3af

View file

@ -2614,20 +2614,19 @@ void Application::updateMyAvatarLookAtPosition() {
bool isLookingAtSomeone = false; bool isLookingAtSomeone = false;
bool isHMD = _avatarUpdate->isHMDMode(); bool isHMD = _avatarUpdate->isHMDMode();
glm::vec3 lookAtSpot; glm::vec3 lookAtSpot;
if (_myCamera.getMode() == CAMERA_MODE_MIRROR) { if (eyeTracker->isTracking() && (isHMD || eyeTracker->isSimulating())) {
// When I am in mirror mode, just look right at the camera (myself); don't switch gaze points because when physically
// looking in a mirror one's eyes appear steady.
lookAtSpot = _myCamera.getPosition();
} else if (eyeTracker->isTracking() && (isHMD || eyeTracker->isSimulating())) {
// Look at the point that the user is looking at. // Look at the point that the user is looking at.
glm::vec3 lookAtPosition = eyeTracker->getLookAtPosition();
if (_myCamera.getMode() == CAMERA_MODE_MIRROR) {
lookAtPosition.x = -lookAtPosition.x;
}
if (isHMD) { if (isHMD) {
glm::mat4 headPose = getActiveDisplayPlugin()->getHeadPose(); glm::mat4 headPose = getActiveDisplayPlugin()->getHeadPose();
glm::quat hmdRotation = glm::quat_cast(headPose); glm::quat hmdRotation = glm::quat_cast(headPose);
lookAtSpot = _myCamera.getPosition() + lookAtSpot = _myCamera.getPosition() + _myAvatar->getOrientation() * (hmdRotation * lookAtPosition);
_myAvatar->getOrientation() * (hmdRotation * eyeTracker->getLookAtPosition());
} else { } else {
lookAtSpot = _myAvatar->getHead()->getEyePosition() + lookAtSpot = _myAvatar->getHead()->getEyePosition()
(_myAvatar->getHead()->getFinalOrientationInWorldFrame() * eyeTracker->getLookAtPosition()); + (_myAvatar->getHead()->getFinalOrientationInWorldFrame() * lookAtPosition);
} }
} else { } else {
AvatarSharedPointer lookingAt = _myAvatar->getLookAtTargetAvatar().lock(); AvatarSharedPointer lookingAt = _myAvatar->getLookAtTargetAvatar().lock();