Instead of looking at one or other eye depending on look direction.
Showing the changes to interface/src/Application.cpp (1 of 1 file). Show all
Unified · Split
| @@ -2284,36 +2284,26 @@ void Application::updateMyAvatarLookAtPosition() { · 2283 unmodified lines | ||
| 2284 | 2284 | } else { |
| 2285 | 2285 | AvatarSharedPointer lookingAt = _myAvatar->getLookAtTargetAvatar().lock(); |
| 2286 | 2286 | if (lookingAt && _myAvatar != lookingAt.get()) { |
| 2287 | + // If I am looking at someone else, look directly at one of their eyes | |
| 2287 | 2288 | isLookingAtSomeone = true; |
| 2288 | 2289 | Head* lookingAtHead = static_cast<Avatar*>(lookingAt.get())->getHead(); |
| 2289 | 2290 | |
| 2290 | − // If I am looking at someone else, look directly at one of their eyes | |
| 2291 | − if (tracker && !tracker->isMuted()) { | |
| 2292 | − // If a face tracker is active, look at the eye for the side my gaze is biased toward | |
| 2293 | − if (tracker->getEstimatedEyeYaw() > _myAvatar->getHead()->getFinalYaw()) { | |
| 2294 | − lookAtSpot = lookingAtHead->getRightEyePosition(); | |
| 2295 | − } else { | |
| 2296 | − lookAtSpot = lookingAtHead->getLeftEyePosition(); | |
| 2297 | − } | |
| 2298 | − } else { | |
| 2291 | + const float MAXIMUM_FACE_ANGLE = 65.0f * RADIANS_PER_DEGREE; | |
| 2292 | + glm::vec3 lookingAtFaceOrientation = lookingAtHead->getFinalOrientationInWorldFrame() * IDENTITY_FRONT; | |
| 2293 | + glm::vec3 fromLookingAtToMe = glm::normalize(_myAvatar->getHead()->getEyePosition() | |
| 2294 | + - lookingAtHead->getEyePosition()); | |
| 2295 | + float faceAngle = glm::angle(lookingAtFaceOrientation, fromLookingAtToMe); | |
| 2299 | 2296 | |
| 2300 | − const float MAXIMUM_FACE_ANGLE = 65.0f * RADIANS_PER_DEGREE; | |
| 2301 | − glm::vec3 lookingAtFaceOrientation = lookingAtHead->getFinalOrientationInWorldFrame() * IDENTITY_FRONT; | |
| 2302 | − glm::vec3 fromLookingAtToMe = glm::normalize(_myAvatar->getHead()->getEyePosition() | |
| 2303 | − - lookingAtHead->getEyePosition()); | |
| 2304 | − float faceAngle = glm::angle(lookingAtFaceOrientation, fromLookingAtToMe); | |
| 2305 | − | |
| 2306 | − if (faceAngle < MAXIMUM_FACE_ANGLE) { | |
| 2307 | − // Randomly look back and forth between left and right eyes | |
| 2308 | − if (_myAvatar->isLookingAtLeftEye()) { | |
| 2309 | − lookAtSpot = lookingAtHead->getLeftEyePosition(); | |
| 2310 | − } else { | |
| 2311 | − lookAtSpot = lookingAtHead->getRightEyePosition(); | |
| 2312 | − } | |
| 2297 | + if (faceAngle < MAXIMUM_FACE_ANGLE) { | |
| 2298 | + // Randomly look back and forth between left and right eyes | |
| 2299 | + if (_myAvatar->isLookingAtLeftEye()) { | |
| 2300 | + lookAtSpot = lookingAtHead->getLeftEyePosition(); | |
| 2313 | 2301 | } else { |
| 2314 | − // Just look at their head (mid point between eyes) | |
| 2315 | − lookAtSpot = lookingAtHead->getEyePosition(); | |
| 2302 | + lookAtSpot = lookingAtHead->getRightEyePosition(); | |
| 2316 | 2303 | } |
| 2304 | + } else { | |
| 2305 | + // Just look at their head (mid point between eyes) | |
| 2306 | + lookAtSpot = lookingAtHead->getEyePosition(); | |
| 2317 | 2307 | } |
| 2318 | 2308 | } else { |
| 2319 | 2309 | // I am not looking at anyone else, so just look forward |