summaryrefslogtreecommitdiff
path: root/indra/newview/llglsandbox.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llglsandbox.cpp')
-rw-r--r--indra/newview/llglsandbox.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/indra/newview/llglsandbox.cpp b/indra/newview/llglsandbox.cpp
index ca387ac3c8..da3f7aad46 100644
--- a/indra/newview/llglsandbox.cpp
+++ b/indra/newview/llglsandbox.cpp
@@ -251,35 +251,35 @@ void LLToolSelectRect::handleRectangleSelection(S32 x, S32 y, MASK mask)
if (shrink_selection)
{
- LLObjectSelectionHandle highlighted_objects = gSelectMgr->getHighlightedObjects();
-
- for (LLViewerObject* vobjp = highlighted_objects->getFirstObject();
- vobjp;
- vobjp = highlighted_objects->getNextObject())
+ struct f : public LLSelectedObjectFunctor
+ {
+ virtual bool apply(LLViewerObject* vobjp)
{
LLDrawable* drawable = vobjp->mDrawable;
if (!drawable || vobjp->getPCode() != LL_PCODE_VOLUME || vobjp->isAttachment())
{
- continue;
+ return true;
}
-
S32 result = gCamera->sphereInFrustum(drawable->getPositionAgent(), drawable->getRadius());
switch (result)
{
- case 0:
+ case 0:
gSelectMgr->unhighlightObjectOnly(vobjp);
break;
- case 1:
+ case 1:
// check vertices
if (!gCamera->areVertsVisible(vobjp, LLSelectMgr::sRectSelectInclusive))
{
gSelectMgr->unhighlightObjectOnly(vobjp);
}
break;
- default:
+ default:
break;
}
+ return true;
}
+ } func;
+ gSelectMgr->getHighlightedObjects()->applyToObjects(&func);
}
if (grow_selection)