diff options
Diffstat (limited to 'indra/newview/llglsandbox.cpp')
-rw-r--r-- | indra/newview/llglsandbox.cpp | 20 |
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) |