diff options
author | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2017-09-13 18:21:31 +0100 |
---|---|---|
committer | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2017-09-13 18:21:31 +0100 |
commit | 7839f77071e8e66ebd890a3bea40c6b6c9a8cfff (patch) | |
tree | d76f5aa65e81bf245027fc6e11cca0436eb6c40f /indra | |
parent | 6bf5c172a62ff045b6076960de6b498e2d7009fd (diff) |
SL-718 - more transform tweaking for animesh, still some issues with attachments.
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/llcontrolavatar.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/indra/newview/llcontrolavatar.cpp b/indra/newview/llcontrolavatar.cpp index fa578907c8..7a8d5bce03 100644 --- a/indra/newview/llcontrolavatar.cpp +++ b/indra/newview/llcontrolavatar.cpp @@ -77,9 +77,19 @@ void LLControlAvatar::matchVolumeTransform() { LLViewerJointAttachment *attach = attached_av->getTargetAttachmentPoint(mRootVolp); setPositionAgent(mRootVolp->getRenderPosition()); - LLVector3 pos = attach->getParent()->getWorldPosition(); - mRoot->setWorldPosition(pos); - mRoot->setRotation(attach->getParent()->getWorldRotation()); + // AXON why doesn't attach joint have a valid world + // position? Using the parent as a kludge but not + // right. + //LLQuaternion fix_axes_rot(-F_PI_BY_TWO, LLVector3(0,0,1)); + LLVector3 joint_pos = attach->getParent()->getWorldPosition(); + LLQuaternion joint_rot = attach->getParent()->getWorldRotation(); + //LLVector3 attach_pos = mRootVolp->mDrawable->getPosition(); + //attach_pos.rotVec(joint_rot); + //LLQuaternion attach_rot = mRootVolp->mDrawable->getRotation(); + //mRoot->setWorldPosition(joint_pos + attach_pos); + //mRoot->setWorldRotation(joint_rot * (attach_rot * ~fix_axes_rot)); + mRoot->setWorldPosition(joint_pos); + mRoot->setWorldRotation(joint_rot); } else { |