MAINT-1086 FIXED Cannot select a fully transparent object with Beacon Highlight

meow-7.2.2
Mnikolenko Productengine 2017-04-18 11:54:12 +03:00
parent 5ddac01ef2
commit 0a48d57884
3 changed files with 22 additions and 2 deletions

View File

@ -6274,6 +6274,24 @@ BOOL LLViewerObject::isTempAttachment() const
return (mID.notNull() && (mID == mAttachmentItemID));
}
BOOL LLViewerObject::isHiglightedOrBeacon() const
{
if (LLFloaterReg::instanceVisible("beacons") && (gPipeline.getRenderBeacons(NULL) || gPipeline.getRenderHighlights(NULL)))
{
BOOL has_media = (getMediaType() == LLViewerObject::MEDIA_SET);
BOOL is_scripted = !isAvatar() && !getParent() && flagScripted();
BOOL is_physical = !isAvatar() && flagUsePhysics();
return (isParticleSource() && gPipeline.getRenderParticleBeacons(NULL))
|| (isAudioSource() && gPipeline.getRenderSoundBeacons(NULL))
|| (has_media && gPipeline.getRenderMOAPBeacons(NULL))
|| (is_scripted && gPipeline.getRenderScriptedBeacons(NULL))
|| (is_scripted && flagHandleTouch() && gPipeline.getRenderScriptedTouchBeacons(NULL))
|| (is_physical && gPipeline.getRenderPhysicalBeacons(NULL));
}
return FALSE;
}
const LLUUID &LLViewerObject::getAttachmentItemID() const
{

View File

@ -178,6 +178,8 @@ public:
virtual BOOL isHUDAttachment() const { return FALSE; }
virtual BOOL isTempAttachment() const;
virtual BOOL isHiglightedOrBeacon() const;
virtual void updateRadius() {};
virtual F32 getVObjRadius() const; // default implemenation is mDrawable->getRadius()
@ -388,7 +390,7 @@ public:
// Create if necessary
LLAudioSource *getAudioSource(const LLUUID& owner_id);
bool isAudioSource() {return mAudioSourcep != NULL;}
BOOL isAudioSource() const {return mAudioSourcep != NULL;}
U8 getMediaType() const;
void setMediaType(U8 media_type);

View File

@ -3977,7 +3977,7 @@ BOOL LLVOVolume::lineSegmentIntersect(const LLVector4a& start, const LLVector4a&
start_face = face;
end_face = face+1;
}
pick_transparent |= isHiglightedOrBeacon();
bool special_cursor = specialHoverCursor();
for (S32 i = start_face; i < end_face; ++i)
{