diff options
| author | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2017-07-18 19:33:14 +0100 |
|---|---|---|
| committer | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2017-07-18 19:33:14 +0100 |
| commit | 6837ca5cd899d0aba71f856f540b535a7fc78595 (patch) | |
| tree | ea2825efc64add1b852f914b0320f70acaefa51b /indra/newview/llcontrolavatar.cpp | |
| parent | bcfc1931dd799564b25e0043dc2cb5f388cee8d0 (diff) | |
SL-727 - right-click menus and hover info ignore control avatars.
Diffstat (limited to 'indra/newview/llcontrolavatar.cpp')
| -rw-r--r-- | indra/newview/llcontrolavatar.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/indra/newview/llcontrolavatar.cpp b/indra/newview/llcontrolavatar.cpp index 4aee5819aa..94e5666a70 100644 --- a/indra/newview/llcontrolavatar.cpp +++ b/indra/newview/llcontrolavatar.cpp @@ -195,6 +195,18 @@ void LLControlAvatar::updateDebugText() getAnimatedVolumes(volumes); S32 animated_volume_count = volumes.size(); addDebugText(llformat("CAV obj %d anim %d", total_linkset_count, animated_volume_count)); +#if 0 + // AXON - detailed rigged mesh info + for (std::vector<LLVOVolume*>::iterator it = volumes.begin(); + it != volumes.end(); ++it) + { + LLRiggedVolume *rig_vol = (*it)->getRiggedVolume(); + if (rig_vol) + { + addDebugText(rig_vol->mExtraDebugText); + } + } +#endif LLVOAvatar::updateDebugText(); } @@ -262,3 +274,37 @@ void LLControlAvatar::updateAnimations() LL_DEBUGS("AXON") << "process animation state changes here" << LL_ENDL; processAnimationStateChanges(); } + +// virtual +LLViewerObject* LLControlAvatar::lineSegmentIntersectRiggedAttachments(const LLVector4a& start, const LLVector4a& end, + S32 face, + BOOL pick_transparent, + BOOL pick_rigged, + S32* face_hit, + LLVector4a* intersection, + LLVector2* tex_coord, + LLVector4a* normal, + LLVector4a* tangent) +{ + LLViewerObject* hit = NULL; + + if (lineSegmentBoundingBox(start, end)) + { + LLVector4a local_end = end; + LLVector4a local_intersection; + + if (mRootVolp && + mRootVolp->lineSegmentIntersect(start, local_end, face, pick_transparent, pick_rigged, face_hit, &local_intersection, tex_coord, normal, tangent)) + { + local_end = local_intersection; + if (intersection) + { + *intersection = local_intersection; + } + + hit = mRootVolp; + } + } + + return hit; +} |
