Merge branch 'careminster-presence-refactor' into bigmerge

This commit is contained in:
Melanie
2011-10-06 17:57:28 +02:00
2 changed files with 67 additions and 10 deletions

View File

@@ -2365,6 +2365,7 @@ namespace OpenSim.Region.Framework.Scenes
Quaternion oldRootRotation = linkPart.RotationOffset;
linkPart.OffsetPosition = linkPart.GroupPosition - AbsolutePosition;
linkPart.ParentID = m_rootPart.LocalId;
linkPart.GroupPosition = AbsolutePosition;
Vector3 axPos = linkPart.OffsetPosition;
@@ -3385,14 +3386,17 @@ namespace OpenSim.Region.Framework.Scenes
if (prim.UUID != m_rootPart.UUID)
{
prim.IgnoreUndoUpdate = true;
Quaternion NewRot = oldParentRot * prim.RotationOffset;
NewRot = Quaternion.Inverse(axRot) * NewRot;
prim.RotationOffset = NewRot;
Vector3 axPos = prim.OffsetPosition;
axPos *= oldParentRot;
axPos *= Quaternion.Inverse(axRot);
prim.OffsetPosition = axPos;
prim.RotationOffset *= Quaternion.Inverse(prim.GetWorldRotation()) * (oldParentRot * prim.RotationOffset);
prim.IgnoreUndoUpdate = false;
prim.IgnoreUndoUpdate = false;
}