MAINT-5268 (Rotating an object that's used as grid reference goes crazy)

meow-7.2.2
ruslantproductengine 2015-09-03 19:21:49 +03:00
parent 9cddfc5a0e
commit bc8fe00b99
2 changed files with 9 additions and 3 deletions

View File

@ -591,7 +591,7 @@ void LLManipRotate::drag( S32 x, S32 y )
continue;
}
}
LLQuaternion new_rot = selectNode->mSavedRotation * mRotation;
std::vector<LLVector3>& child_positions = object->mUnselectedChildrenPositions ;
std::vector<LLQuaternion> child_rotations;
@ -1294,7 +1294,7 @@ LLVector3 LLManipRotate::getConstraintAxis()
else
{
S32 axis_dir = mManipPart - LL_ROT_X;
if ((axis_dir >= 0) && (axis_dir < 3))
if ((axis_dir >= LL_NO_PART) && (axis_dir < LL_Z_ARROW))
{
axis.mV[axis_dir] = 1.f;
}

View File

@ -1235,7 +1235,13 @@ void LLSelectMgr::getGrid(LLVector3& origin, LLQuaternion &rotation, LLVector3 &
}
else if (mGridMode == GRID_MODE_REF_OBJECT && first_grid_object && first_grid_object->mDrawable.notNull())
{
mGridRotation = first_grid_object->getRenderRotation();
LLSelectNode *node = mSelectedObjects->findNode(first_grid_object);
if (node) {
mGridRotation = node->mSavedRotation;
}
else {
mGridRotation = first_grid_object->getRenderRotation();
}
LLVector4a min_extents(F32_MAX);
LLVector4a max_extents(-F32_MAX);