diff options
| author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2023-05-16 02:00:51 +0300 | 
|---|---|---|
| committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2023-05-16 02:00:51 +0300 | 
| commit | 60d8647a32db1dd54ffde742e157b54b183592a7 (patch) | |
| tree | 5b1820a053dfeb77bbe4281bd87173db95eefce1 | |
| parent | 74687f270545ededb77f29a7409f64303dcb2e2d (diff) | |
SL-19602 Alt-Zoom overcompensates for z pelvis fixup
Alt zoom was pointing near ground instead of agent's actual position
| -rw-r--r-- | indra/newview/llagentcamera.cpp | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp index 77131efd75..2cf86cb001 100644 --- a/indra/newview/llagentcamera.cpp +++ b/indra/newview/llagentcamera.cpp @@ -401,10 +401,15 @@ LLVector3 LLAgentCamera::calcFocusOffset(LLViewerObject *object, LLVector3 origi  	// if is avatar - don't do any funk heuristics to position the focal point  	// see DEV-30589 -	if (object->isAvatar() || (object->isAnimatedObject() && object->getControlAvatar())) +	if ((object->isAvatar() && !object->isRoot()) || (object->isAnimatedObject() && object->getControlAvatar()))  	{  		return original_focus_point - obj_pos;  	} +    if (object->isAvatar()) +    { +        LLVOAvatar* av = object->asAvatar(); +        return original_focus_point - av->getCharacterPosition(); +    }  	LLQuaternion inv_obj_rot = ~obj_rot; // get inverse of rotation  	LLVector3 object_extents = object->getScale();	 | 
