diff options
| author | Palmer <palmer@lindenlab.com> | 2009-11-11 15:16:49 -0800 |
|---|---|---|
| committer | Palmer <palmer@lindenlab.com> | 2009-11-11 15:16:49 -0800 |
| commit | 6f3536d5979efa6db28098056ab5e3a158020225 (patch) | |
| tree | aae087995fa1c3df3cebbdf345fca7a2e7c1b548 /indra/llcharacter/llheadrotmotion.cpp | |
| parent | 7fa698252060a72be6b5ebc52f0ff01bcea6134c (diff) | |
| parent | 25d8cf689aa04a1bd4ebb336714730d29040d05c (diff) | |
Merged in viewer 2 changes, adjusted xui problems, added mesh folder type and more mesh inventory type info
Diffstat (limited to 'indra/llcharacter/llheadrotmotion.cpp')
| -rw-r--r-- | indra/llcharacter/llheadrotmotion.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/indra/llcharacter/llheadrotmotion.cpp b/indra/llcharacter/llheadrotmotion.cpp index 88cd77f7af..0ee378f3b8 100644 --- a/indra/llcharacter/llheadrotmotion.cpp +++ b/indra/llcharacter/llheadrotmotion.cpp @@ -251,10 +251,13 @@ BOOL LLHeadRotMotion::onUpdate(F32 time, U8* joint_mask) mLastHeadRot = head_rot_local; // Set the head rotation. - LLQuaternion torsoRotLocal = mNeckState->getJoint()->getParent()->getWorldRotation() * currentInvRootRotWorld; - head_rot_local = head_rot_local * ~torsoRotLocal; - mNeckState->setRotation( nlerp(NECK_LAG, LLQuaternion::DEFAULT, head_rot_local) ); - mHeadState->setRotation( nlerp(1.f - NECK_LAG, LLQuaternion::DEFAULT, head_rot_local)); + if(mNeckState->getJoint() && mNeckState->getJoint()->getParent()) + { + LLQuaternion torsoRotLocal = mNeckState->getJoint()->getParent()->getWorldRotation() * currentInvRootRotWorld; + head_rot_local = head_rot_local * ~torsoRotLocal; + mNeckState->setRotation( nlerp(NECK_LAG, LLQuaternion::DEFAULT, head_rot_local) ); + mHeadState->setRotation( nlerp(1.f - NECK_LAG, LLQuaternion::DEFAULT, head_rot_local)); + } return TRUE; } |
