diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llcontrolavatar.cpp | 11 | ||||
| -rw-r--r-- | indra/newview/lldrawable.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llvoavatar.cpp | 3 | 
3 files changed, 16 insertions, 3 deletions
| diff --git a/indra/newview/llcontrolavatar.cpp b/indra/newview/llcontrolavatar.cpp index 0efed8ab7c..a620f2abe9 100644 --- a/indra/newview/llcontrolavatar.cpp +++ b/indra/newview/llcontrolavatar.cpp @@ -175,7 +175,16 @@ void LLControlAvatar::matchVolumeTransform()              // complexity info and such line up better. Should defer              // this until avatars also get fixed. -            LLQuaternion obj_rot = mRootVolp->getRotation(); +            LLQuaternion obj_rot; +            if (mRootVolp->mDrawable) +            { +                obj_rot = mRootVolp->mDrawable->getRotation(); +            } +            else +            { +                obj_rot = mRootVolp->getRotation(); +            } +              			LLMatrix3 bind_mat;              LLQuaternion bind_rot; diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp index 55db721ccf..8c6cbc020b 100644 --- a/indra/newview/lldrawable.cpp +++ b/indra/newview/lldrawable.cpp @@ -52,7 +52,6 @@  #include "llviewerwindow.h"  #include "llvocache.h"  #include "llcontrolavatar.h" -#include "llcallstack.h"  #include "lldrawpoolavatar.h"  const F32 MIN_INTERPOLATE_DISTANCE_SQUARED = 0.001f * 0.001f; @@ -730,6 +729,10 @@ F32 LLDrawable::updateXform(BOOL undamped)  	mXform.setRotation(target_rot);  	mXform.setScale(LLVector3(1,1,1)); //no scale in drawable transforms (IT'S A RULE!)  	mXform.updateMatrix(); +    if (isRoot() && mVObjp->isAnimatedObject() && mVObjp->getControlAvatar()) +    { +        mVObjp->getControlAvatar()->matchVolumeTransform(); +    }  	if (mSpatialBridge)  	{ diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index dba99c7e98..1f72aed5b4 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -4168,7 +4168,8 @@ void LLVOAvatar::updateRootPositionAndRotation(LLAgent& agent, F32 speed, bool w          LLControlAvatar *cav = dynamic_cast<LLControlAvatar*>(this);          if (cav)          { -            cav->matchVolumeTransform(); +            // SL-1350: Moved to LLDrawable::updateXform() +            //cav->matchVolumeTransform();          }          else          { | 
