summaryrefslogtreecommitdiff
path: root/indra/newview/llselectmgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llselectmgr.cpp')
-rw-r--r--[-rwxr-xr-x]indra/newview/llselectmgr.cpp63
1 files changed, 46 insertions, 17 deletions
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index 21f7e780e2..57e04a43a2 100755..100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -187,6 +187,7 @@ template class LLSelectMgr* LLSingleton<class LLSelectMgr>::getInstance();
//-----------------------------------------------------------------------------
LLSelectMgr::LLSelectMgr()
: mHideSelectedObjects(LLCachedControl<bool>(gSavedSettings, "HideSelectedObjects", FALSE)),
+ mRenderHighlightSelections(LLCachedControl<bool>(gSavedSettings, "RenderHighlightSelections", TRUE)),
mAllowSelectAvatar( LLCachedControl<bool>(gSavedSettings, "AllowSelectAvatar", FALSE)),
mDebugSelectMgr(LLCachedControl<bool>(gSavedSettings, "DebugSelectMgr", FALSE))
{
@@ -4947,7 +4948,7 @@ void LLSelectMgr::updateSelectionSilhouette(LLObjectSelectionHandle object_handl
}
void LLSelectMgr::renderSilhouettes(BOOL for_hud)
{
- if (!mRenderSilhouettes)
+ if (!mRenderSilhouettes || !mRenderHighlightSelections)
{
return;
}
@@ -5107,23 +5108,13 @@ LLSelectNode::LLSelectNode(LLViewerObject* object, BOOL glow)
mSilhouetteExists(FALSE),
mDuplicated(FALSE),
mTESelectMask(0),
- mLastTESelected(0)
+ mLastTESelected(0),
+ mName(LLStringUtil::null),
+ mDescription(LLStringUtil::null),
+ mTouchName(LLStringUtil::null),
+ mSitName(LLStringUtil::null),
+ mCreationDate(0)
{
- mObject = object;
- selectAllTEs(FALSE);
- mIndividualSelection = FALSE;
- mTransient = FALSE;
- mValid = FALSE;
- mPermissions = new LLPermissions();
- mInventorySerial = 0;
- mName = LLStringUtil::null;
- mDescription = LLStringUtil::null;
- mTouchName = LLStringUtil::null;
- mSitName = LLStringUtil::null;
- mSilhouetteExists = FALSE;
- mDuplicated = FALSE;
- mCreationDate = 0;
-
saveColors();
}
@@ -5785,6 +5776,10 @@ void LLSelectMgr::updateSelectionCenter()
LLVector3d select_center;
// keep a list of jointed objects for showing the joint HUDEffects
+ // Initialize the bounding box to the root prim, so the BBox orientation
+ // matches the root prim's (affecting the orientation of the manipulators).
+ bbox.addBBoxAgent( (mSelectedObjects->getFirstRootObject(TRUE))->getBoundingBoxAgent() );
+
std::vector < LLViewerObject *> jointed_objects;
for (LLObjectSelection::iterator iter = mSelectedObjects->begin();
@@ -6235,6 +6230,40 @@ F32 LLObjectSelection::getSelectedObjectCost()
return cost;
}
+F32 LLObjectSelection::getSelectedObjectStreamingCost()
+{
+ F32 cost = 0.f;
+ for (list_t::iterator iter = mList.begin(); iter != mList.end(); ++iter)
+ {
+ LLSelectNode* node = *iter;
+ LLViewerObject* object = node->getObject();
+
+ if (object)
+ {
+ cost += object->getStreamingCost();
+ }
+ }
+
+ return cost;
+}
+
+U32 LLObjectSelection::getSelectedObjectTriangleCount()
+{
+ U32 count = 0;
+ for (list_t::iterator iter = mList.begin(); iter != mList.end(); ++iter)
+ {
+ LLSelectNode* node = *iter;
+ LLViewerObject* object = node->getObject();
+
+ if (object)
+ {
+ count += object->getTriangleCount();
+ }
+ }
+
+ return count;
+}
+
F32 LLObjectSelection::getSelectedLinksetCost()
{
cleanupNodes();