diff options
| author | ruslantproductengine <ruslantproductengine@lindenlab.com> | 2015-10-19 15:26:58 +0300 | 
|---|---|---|
| committer | ruslantproductengine <ruslantproductengine@lindenlab.com> | 2015-10-19 15:26:58 +0300 | 
| commit | 3c26c54e2d467df917e34f21da81c019e9a6190f (patch) | |
| tree | 4c4b69fb6f47f6f0a3688cce7a37a6d539fbd5f6 | |
| parent | 8b5c8c7f5b3140a6e1bb132cfe3f387ea44b9c05 (diff) | |
MAINT-5268 FIXED Rotating an object that's used as grid reference goes crazy
| -rwxr-xr-x | indra/newview/llmaniprotate.cpp | 13 | ||||
| -rwxr-xr-x | indra/newview/llselectmgr.cpp | 4 | ||||
| -rwxr-xr-x | indra/newview/llselectmgr.h | 2 | 
3 files changed, 10 insertions, 9 deletions
diff --git a/indra/newview/llmaniprotate.cpp b/indra/newview/llmaniprotate.cpp index e917b0ae52..bc0cfa73d6 100755 --- a/indra/newview/llmaniprotate.cpp +++ b/indra/newview/llmaniprotate.cpp @@ -749,17 +749,18 @@ void LLManipRotate::renderActiveRing( F32 radius, F32 width, const LLColor4& fro  void LLManipRotate::renderSnapGuides()  { +	if (!gSavedSettings.getBOOL("SnapEnabled")) +	{ +		return; +	} +  	LLVector3 grid_origin;  	LLVector3 grid_scale;  	LLQuaternion grid_rotation; -	LLVector3 constraint_axis = getConstraintAxis(); -	LLSelectMgr::getInstance()->getGrid(grid_origin, grid_rotation, grid_scale); +	LLSelectMgr::getInstance()->getGrid(grid_origin, grid_rotation, grid_scale, true); -	if (!gSavedSettings.getBOOL("SnapEnabled")) -	{ -		return; -	} +	LLVector3 constraint_axis = getConstraintAxis();  	LLVector3 center = gAgent.getPosAgentFromGlobal( mRotationCenter );  	LLVector3 cam_at_axis; diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index 577c336ac7..1a09b99e73 100755 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -1210,7 +1210,7 @@ void LLSelectMgr::setGridMode(EGridMode mode)  	updateSelectionCenter();  } -void LLSelectMgr::getGrid(LLVector3& origin, LLQuaternion &rotation, LLVector3 &scale) +void LLSelectMgr::getGrid(LLVector3& origin, LLQuaternion &rotation, LLVector3 &scale, bool for_snap_guides)  {  	mGridObjects.cleanupNodes(); @@ -1236,7 +1236,7 @@ void LLSelectMgr::getGrid(LLVector3& origin, LLQuaternion &rotation, LLVector3 &  	else if (mGridMode == GRID_MODE_REF_OBJECT && first_grid_object && first_grid_object->mDrawable.notNull())  	{  		LLSelectNode *node = mSelectedObjects->findNode(first_grid_object); -		if (node) +		if (!for_snap_guides && node)  		{  			mGridRotation = node->mSavedRotation;  		} diff --git a/indra/newview/llselectmgr.h b/indra/newview/llselectmgr.h index 87d25e3a8c..90f7fdfe13 100755 --- a/indra/newview/llselectmgr.h +++ b/indra/newview/llselectmgr.h @@ -527,7 +527,7 @@ public:  	void			clearGridObjects();  	void			setGridMode(EGridMode mode);  	EGridMode		getGridMode() { return mGridMode; } -	void			getGrid(LLVector3& origin, LLQuaternion& rotation, LLVector3 &scale); +	void			getGrid(LLVector3& origin, LLQuaternion& rotation, LLVector3 &scale, bool for_snap_guides = false);  	BOOL getTEMode()		{ return mTEMode; }  	void setTEMode(BOOL b)	{ mTEMode = b; }  | 
