History

Synchronize eye joint and debugging vectors when the other avatar is looking at me.

Howard Stearns committed 11 years ago

Commit d28c5551 parent 74f695c5 files · +47 −11Browse files

Showing the changes to interface/src/avatar/SkeletonModel.cpp (1 of 5 files). Show all

Unified · Split

interface/src/avatar/SkeletonModel.cpp+19−8
@@ -97,7 +97,7 @@ void SkeletonModel::initJointStates(QVector<JointState> states) { · 96 unmodified lines
97}97}
98 98
99const float PALM_PRIORITY = DEFAULT_PRIORITY;99const float PALM_PRIORITY = DEFAULT_PRIORITY;
100 100// Called within Model::simulate call, below.
101void SkeletonModel::updateRig(float deltaTime, glm::mat4 parentTransform) {101void SkeletonModel::updateRig(float deltaTime, glm::mat4 parentTransform) {
102 if (_owningAvatar->isMyAvatar()) {102 if (_owningAvatar->isMyAvatar()) {
103 _rig->computeMotionAnimationState(deltaTime, _owningAvatar->getPosition(), _owningAvatar->getVelocity(), _owningAvatar->getOrientation());103 _rig->computeMotionAnimationState(deltaTime, _owningAvatar->getPosition(), _owningAvatar->getVelocity(), _owningAvatar->getOrientation());
@@ -105,26 +105,37 @@ void SkeletonModel::updateRig(float deltaTime, glm::mat4 parentTransform) { · 1 unmodified line
105 Model::updateRig(deltaTime, parentTransform);105 Model::updateRig(deltaTime, parentTransform);
106 if (_owningAvatar->isMyAvatar()) {106 if (_owningAvatar->isMyAvatar()) {
107 const FBXGeometry& geometry = _geometry->getFBXGeometry();107 const FBXGeometry& geometry = _geometry->getFBXGeometry();
108 Head* head = _owningAvatar->getHead();
108 109
109 Rig::HeadParameters params;110 Rig::HeadParameters params;
110 params.modelRotation = getRotation();111 params.modelRotation = getRotation();
111 params.modelTranslation = getTranslation();112 params.modelTranslation = getTranslation();
112 params.leanSideways = _owningAvatar->getHead()->getFinalLeanSideways();113 params.leanSideways = head->getFinalLeanSideways();
113 params.leanForward = _owningAvatar->getHead()->getFinalLeanForward();114 params.leanForward = head->getFinalLeanForward();
114 params.torsoTwist = _owningAvatar->getHead()->getTorsoTwist();115 params.torsoTwist = head->getTorsoTwist();
115 params.localHeadOrientation = _owningAvatar->getHead()->getFinalOrientationInLocalFrame();116 params.localHeadOrientation = head->getFinalOrientationInLocalFrame();
116 params.worldHeadOrientation = _owningAvatar->getHead()->getFinalOrientationInWorldFrame();117 params.worldHeadOrientation = head->getFinalOrientationInWorldFrame();
117 params.eyeLookAt = _owningAvatar->getHead()->getLookAtPosition();118 params.eyeLookAt = head->getLookAtPosition();
118 params.eyeSaccade = _owningAvatar->getHead()->getSaccade();119 params.eyeSaccade = head->getSaccade();
119 params.leanJointIndex = geometry.leanJointIndex;120 params.leanJointIndex = geometry.leanJointIndex;
120 params.neckJointIndex = geometry.neckJointIndex;121 params.neckJointIndex = geometry.neckJointIndex;
121 params.leftEyeJointIndex = geometry.leftEyeJointIndex;122 params.leftEyeJointIndex = geometry.leftEyeJointIndex;
122 params.rightEyeJointIndex = geometry.rightEyeJointIndex;123 params.rightEyeJointIndex = geometry.rightEyeJointIndex;
123 124
124 _rig->updateFromHeadParameters(params);125 _rig->updateFromHeadParameters(params);
126 } else if (true) { //(_owningAvatar->getHead()->isLookingAtMe()) {
127 // Other avatars joint, including their eyes, will already be set just like any other joints
128 // from the wire data. But when looking at me, we want the eyes to use the corrected lookAt.
129 const FBXGeometry& geometry = _geometry->getFBXGeometry();
130 Head* head = _owningAvatar->getHead();
131 _rig->updateEyeJoints(geometry.leftEyeJointIndex, geometry.rightEyeJointIndex,
132 getTranslation(), getRotation(),
133 head->getFinalOrientationInWorldFrame(), head->getCorrectedLookAtPosition());
125 }134 }
126}135}
127 136
137// Called by Avatar::simulate after it has set the joint states (fullUpdate true if changed),
138// but just before head has been simulated.
128void SkeletonModel::simulate(float deltaTime, bool fullUpdate) {139void SkeletonModel::simulate(float deltaTime, bool fullUpdate) {
129 setTranslation(_owningAvatar->getSkeletonPosition());140 setTranslation(_owningAvatar->getSkeletonPosition());
130 static const glm::quat refOrientation = glm::angleAxis(PI, glm::vec3(0.0f, 1.0f, 0.0f));141 static const glm::quat refOrientation = glm::angleAxis(PI, glm::vec3(0.0f, 1.0f, 0.0f));

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t