aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
authorMelanie2011-10-06 17:57:28 +0200
committerMelanie2011-10-06 17:57:28 +0200
commit9500415c61cb817c45ce2d15450e9b03fdf83f0f (patch)
tree2fe930043388fc13446f496041bb6c91645c9f8c /OpenSim/Region/Framework
parentFixed a movement regression - Kitto's jump code is no longer needed (plus it'... (diff)
parentFix physics proxy position when linking and rotating the root prim only (diff)
downloadopensim-SC-9500415c61cb817c45ce2d15450e9b03fdf83f0f.zip
opensim-SC-9500415c61cb817c45ce2d15450e9b03fdf83f0f.tar.gz
opensim-SC-9500415c61cb817c45ce2d15450e9b03fdf83f0f.tar.bz2
opensim-SC-9500415c61cb817c45ce2d15450e9b03fdf83f0f.tar.xz
Merge branch 'careminster-presence-refactor' into bigmerge
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs8
1 files changed, 6 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index ea6aab0..3e1439d 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -2365,6 +2365,7 @@ namespace OpenSim.Region.Framework.Scenes
2365 Quaternion oldRootRotation = linkPart.RotationOffset; 2365 Quaternion oldRootRotation = linkPart.RotationOffset;
2366 2366
2367 linkPart.OffsetPosition = linkPart.GroupPosition - AbsolutePosition; 2367 linkPart.OffsetPosition = linkPart.GroupPosition - AbsolutePosition;
2368 linkPart.ParentID = m_rootPart.LocalId;
2368 linkPart.GroupPosition = AbsolutePosition; 2369 linkPart.GroupPosition = AbsolutePosition;
2369 Vector3 axPos = linkPart.OffsetPosition; 2370 Vector3 axPos = linkPart.OffsetPosition;
2370 2371
@@ -3385,14 +3386,17 @@ namespace OpenSim.Region.Framework.Scenes
3385 if (prim.UUID != m_rootPart.UUID) 3386 if (prim.UUID != m_rootPart.UUID)
3386 { 3387 {
3387 prim.IgnoreUndoUpdate = true; 3388 prim.IgnoreUndoUpdate = true;
3389
3390 Quaternion NewRot = oldParentRot * prim.RotationOffset;
3391 NewRot = Quaternion.Inverse(axRot) * NewRot;
3392 prim.RotationOffset = NewRot;
3393
3388 Vector3 axPos = prim.OffsetPosition; 3394 Vector3 axPos = prim.OffsetPosition;
3389 3395
3390 axPos *= oldParentRot; 3396 axPos *= oldParentRot;
3391 axPos *= Quaternion.Inverse(axRot); 3397 axPos *= Quaternion.Inverse(axRot);
3392 prim.OffsetPosition = axPos; 3398 prim.OffsetPosition = axPos;
3393 3399
3394 prim.RotationOffset *= Quaternion.Inverse(prim.GetWorldRotation()) * (oldParentRot * prim.RotationOffset);
3395
3396 prim.IgnoreUndoUpdate = false; 3400 prim.IgnoreUndoUpdate = false;
3397 prim.IgnoreUndoUpdate = false; 3401 prim.IgnoreUndoUpdate = false;
3398 } 3402 }