diff options
Diffstat (limited to 'linden/indra/newview/llselectmgr.cpp')
-rw-r--r-- | linden/indra/newview/llselectmgr.cpp | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/linden/indra/newview/llselectmgr.cpp b/linden/indra/newview/llselectmgr.cpp index 808eb07..e4f914f 100644 --- a/linden/indra/newview/llselectmgr.cpp +++ b/linden/indra/newview/llselectmgr.cpp | |||
@@ -107,6 +107,7 @@ BOOL gHideSelectedObjects = FALSE; | |||
107 | BOOL gAllowSelectAvatar = FALSE; | 107 | BOOL gAllowSelectAvatar = FALSE; |
108 | 108 | ||
109 | BOOL LLSelectMgr::sRectSelectInclusive = TRUE; | 109 | BOOL LLSelectMgr::sRectSelectInclusive = TRUE; |
110 | BOOL LLSelectMgr::sRenderSelectionHighlights = TRUE; | ||
110 | BOOL LLSelectMgr::sRenderHiddenSelections = TRUE; | 111 | BOOL LLSelectMgr::sRenderHiddenSelections = TRUE; |
111 | BOOL LLSelectMgr::sRenderLightRadius = FALSE; | 112 | BOOL LLSelectMgr::sRenderLightRadius = FALSE; |
112 | F32 LLSelectMgr::sHighlightThickness = 0.f; | 113 | F32 LLSelectMgr::sHighlightThickness = 0.f; |
@@ -3430,18 +3431,26 @@ void LLSelectMgr::deselectAllIfTooFar() | |||
3430 | 3431 | ||
3431 | // HACK: Don't deselect when we're navigating to rate an object's | 3432 | // HACK: Don't deselect when we're navigating to rate an object's |
3432 | // owner or creator. JC | 3433 | // owner or creator. JC |
3433 | if (gPieObject->getVisible() || gPieRate->getVisible() ) | 3434 | if (gPieObject->getVisible()) |
3434 | { | 3435 | { |
3435 | return; | 3436 | return; |
3436 | } | 3437 | } |
3437 | 3438 | ||
3438 | LLVector3d selectionCenter = getSelectionCenterGlobal(); | 3439 | LLVector3d selectionCenter = getSelectionCenterGlobal(); |
3439 | if (gSavedSettings.getBOOL("LimitSelectDistance") | 3440 | |
3441 | // if (gSavedSettings.getBOOL("LimitSelectDistance") | ||
3442 | // [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-0.2.0f | ||
3443 | BOOL fRlvFartouch = gRlvHandler.hasBehaviour(RLV_BHVR_FARTOUCH) && gFloaterTools->getVisible(); | ||
3444 | if ( (gSavedSettings.getBOOL("LimitSelectDistance") || (fRlvFartouch) ) | ||
3445 | // [/RLVa:KB] | ||
3440 | && (!mSelectedObjects->getPrimaryObject() || !mSelectedObjects->getPrimaryObject()->isAvatar()) | 3446 | && (!mSelectedObjects->getPrimaryObject() || !mSelectedObjects->getPrimaryObject()->isAvatar()) |
3441 | && !mSelectedObjects->isAttachment() | 3447 | && !mSelectedObjects->isAttachment() |
3442 | && !selectionCenter.isExactlyZero()) | 3448 | && !selectionCenter.isExactlyZero()) |
3443 | { | 3449 | { |
3444 | F32 deselect_dist = gSavedSettings.getF32("MaxSelectDistance"); | 3450 | // F32 deselect_dist = gSavedSettings.getF32("MaxSelectDistance"); |
3451 | // [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-0.2.0f | ||
3452 | F32 deselect_dist = (!fRlvFartouch) ? gSavedSettings.getF32("MaxSelectDistance") : 1.5f; | ||
3453 | // [/RLVa:KB] | ||
3445 | F32 deselect_dist_sq = deselect_dist * deselect_dist; | 3454 | F32 deselect_dist_sq = deselect_dist * deselect_dist; |
3446 | 3455 | ||
3447 | LLVector3d select_delta = gAgent.getPositionGlobal() - selectionCenter; | 3456 | LLVector3d select_delta = gAgent.getPositionGlobal() - selectionCenter; |
@@ -4537,6 +4546,11 @@ extern LLGLdouble gGLModelView[16]; | |||
4537 | 4546 | ||
4538 | void LLSelectMgr::updateSilhouettes() | 4547 | void LLSelectMgr::updateSilhouettes() |
4539 | { | 4548 | { |
4549 | if (!mRenderSilhouettes || !LLSelectMgr::sRenderSelectionHighlights) | ||
4550 | { | ||
4551 | return; | ||
4552 | } | ||
4553 | |||
4540 | S32 num_sils_genned = 0; | 4554 | S32 num_sils_genned = 0; |
4541 | 4555 | ||
4542 | LLVector3d cameraPos = gAgent.getCameraPositionGlobal(); | 4556 | LLVector3d cameraPos = gAgent.getCameraPositionGlobal(); |
@@ -4809,7 +4823,7 @@ void LLSelectMgr::updateSilhouettes() | |||
4809 | 4823 | ||
4810 | void LLSelectMgr::renderSilhouettes(BOOL for_hud) | 4824 | void LLSelectMgr::renderSilhouettes(BOOL for_hud) |
4811 | { | 4825 | { |
4812 | if (!mRenderSilhouettes) | 4826 | if (!mRenderSilhouettes || !LLSelectMgr::sRenderSelectionHighlights) |
4813 | { | 4827 | { |
4814 | return; | 4828 | return; |
4815 | } | 4829 | } |
@@ -5492,6 +5506,10 @@ void LLSelectMgr::updateSelectionCenter() | |||
5492 | 5506 | ||
5493 | std::vector < LLViewerObject *> jointed_objects; | 5507 | std::vector < LLViewerObject *> jointed_objects; |
5494 | 5508 | ||
5509 | // Initialize the bounding box to the root prim, so the BBox orientation | ||
5510 | // matches the root prim's (affecting the orientation of the manipulators). | ||
5511 | bbox.addBBoxAgent( (mSelectedObjects->getFirstRootObject(TRUE))->getBoundingBoxAgent() ); | ||
5512 | |||
5495 | for (LLObjectSelection::iterator iter = mSelectedObjects->begin(); | 5513 | for (LLObjectSelection::iterator iter = mSelectedObjects->begin(); |
5496 | iter != mSelectedObjects->end(); iter++) | 5514 | iter != mSelectedObjects->end(); iter++) |
5497 | { | 5515 | { |
@@ -5738,7 +5756,8 @@ BOOL LLSelectMgr::canSelectObject(LLViewerObject* object) | |||
5738 | } | 5756 | } |
5739 | 5757 | ||
5740 | if ((gSavedSettings.getBOOL("SelectOwnedOnly") && !object->permYouOwner()) || | 5758 | if ((gSavedSettings.getBOOL("SelectOwnedOnly") && !object->permYouOwner()) || |
5741 | (gSavedSettings.getBOOL("SelectMovableOnly") && !object->permMove())) | 5759 | (gSavedSettings.getBOOL("SelectMovableOnly") && !object->permMove()) || |
5760 | (gSavedSettings.getBOOL("SelectCopyableOnly") && !object->permCopy())) | ||
5742 | { | 5761 | { |
5743 | // only select my own objects | 5762 | // only select my own objects |
5744 | return FALSE; | 5763 | return FALSE; |