aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs11
1 files changed, 10 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 75d0667..4b4e4ba 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -3038,7 +3038,16 @@ namespace OpenSim.Region.Framework.Scenes
3038// for (int i = 0; i < parts.Length; i++) 3038// for (int i = 0; i < parts.Length; i++)
3039// parts[i].StoreUndoState(); 3039// parts[i].StoreUndoState();
3040 3040
3041 Vector3 oldPos = AbsolutePosition + RootPart.OffsetPosition; 3041 Vector3 oldPos;
3042
3043 // FIXME: This improves the situation where editing just the root prim of an attached object would send
3044 // all the other parts to oblivion after detach/reattach. However, a problem remains since the root prim
3045 // still ends up in the wrong position on reattach.
3046 if (IsAttachment)
3047 oldPos = RootPart.OffsetPosition;
3048 else
3049 oldPos = AbsolutePosition + RootPart.OffsetPosition;
3050
3042 Vector3 diff = oldPos - newPos; 3051 Vector3 diff = oldPos - newPos;
3043 Quaternion partRotation = m_rootPart.RotationOffset; 3052 Quaternion partRotation = m_rootPart.RotationOffset;
3044 diff *= Quaternion.Inverse(partRotation); 3053 diff *= Quaternion.Inverse(partRotation);