STORM-2078 Editing an objects rotation with the rotation rings often causes the object to jump to position <0,0,0> on the region and rotation changes to <0,0,0>

master
Whirly 2014-08-20 23:41:33 +01:00
parent b021c90e7b
commit fc0d618c2f
2 changed files with 8 additions and 5 deletions

View File

@ -885,6 +885,8 @@ Mm Alder
VWR-4794
VWR-13578
Mo Hax
Moon Metty
STORM-2078
Mourna Biziou
Mr Greggan
VWR-445
@ -1358,6 +1360,7 @@ Whirly Fizzle
VWR-29543
MAINT-873
STORM-1930
STORM-2078
Whoops Babii
VWR-631
VWR-1640

View File

@ -1241,9 +1241,9 @@ LLQuaternion LLManipRotate::dragUnconstrained( S32 x, S32 y )
LLVector3 axis = mMouseDown % mMouseCur;
axis.normVec();
F32 angle = acos(mMouseDown * mMouseCur);
F32 angle = atan2(sqrtf(axis * axis), mMouseDown * mMouseCur);
LLQuaternion sphere_rot( angle, axis );
if (is_approx_zero(1.f - mMouseDown * mMouseCur))
{
return LLQuaternion::DEFAULT;
@ -1638,9 +1638,9 @@ LLQuaternion LLManipRotate::dragConstrained( S32 x, S32 y )
mInSnapRegime = FALSE;
}
angle = acos(mMouseCur * mMouseDown);
F32 dir = (mMouseDown % mMouseCur) * constraint_axis; // cross product
LLVector3 cross_product = mMouseDown % mMouseCur;
angle = atan2(sqrtf(cross_product * cross_product), mMouseCur * mMouseDown);
F32 dir = cross_product * constraint_axis; // cross product
if( dir < 0.f )
{
angle *= -1.f;