diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPart.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 31 |
1 files changed, 9 insertions, 22 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 4495eda..0eddbfd 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -513,24 +513,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
513 | { | 513 | { |
514 | // If this is a linkset, we don't want the physics engine mucking up our group position here. | 514 | // If this is a linkset, we don't want the physics engine mucking up our group position here. |
515 | PhysicsActor actor = PhysActor; | 515 | PhysicsActor actor = PhysActor; |
516 | |||
517 | if (actor != null && _parentID == 0) | 516 | if (actor != null && _parentID == 0) |
518 | { | 517 | { |
519 | m_groupPosition = actor.Position; | 518 | m_groupPosition = actor.Position; |
520 | } | ||
521 | /* | ||
522 | if (actor != null) | ||
523 | { | ||
524 | if (_parentID == 0) | ||
525 | { | ||
526 | m_groupPosition = actor.Position; | ||
527 | } | ||
528 | else | ||
529 | { | ||
530 | m_groupPosition = ParentGroup.AbsolutePosition; // KF+Casper Update Child prims too! | ||
531 | } | ||
532 | } | 519 | } |
533 | */ | 520 | |
534 | if (IsAttachment) | 521 | if (IsAttachment) |
535 | { | 522 | { |
536 | ScenePresence sp = m_parentGroup.Scene.GetScenePresence(AttachedAvatar); | 523 | ScenePresence sp = m_parentGroup.Scene.GetScenePresence(AttachedAvatar); |
@@ -545,7 +532,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
545 | StoreUndoState(); | 532 | StoreUndoState(); |
546 | 533 | ||
547 | m_groupPosition = value; | 534 | m_groupPosition = value; |
548 | |||
549 | PhysicsActor actor = PhysActor; | 535 | PhysicsActor actor = PhysActor; |
550 | if (actor != null) | 536 | if (actor != null) |
551 | { | 537 | { |
@@ -1755,16 +1741,17 @@ namespace OpenSim.Region.Framework.Scenes | |||
1755 | public Vector3 GetWorldPosition() | 1741 | public Vector3 GetWorldPosition() |
1756 | { | 1742 | { |
1757 | Quaternion parentRot = ParentGroup.RootPart.RotationOffset; | 1743 | Quaternion parentRot = ParentGroup.RootPart.RotationOffset; |
1758 | |||
1759 | Vector3 axPos = OffsetPosition; | 1744 | Vector3 axPos = OffsetPosition; |
1760 | axPos *= parentRot; | 1745 | axPos *= parentRot; |
1761 | Vector3 translationOffsetPosition = axPos; | 1746 | Vector3 translationOffsetPosition = axPos; |
1762 | 1747 | if(_parentID == 0) | |
1763 | int tx = (int)GroupPosition.X; | 1748 | { |
1764 | int ty = (int)GroupPosition.Y; | 1749 | return GroupPosition; |
1765 | int tz = (int)GroupPosition.Z; | 1750 | } |
1766 | 1751 | else | |
1767 | return GroupPosition + translationOffsetPosition; | 1752 | { |
1753 | return ParentGroup.AbsolutePosition + translationOffsetPosition; //KF: Fix child prim position | ||
1754 | } | ||
1768 | } | 1755 | } |
1769 | 1756 | ||
1770 | /// <summary> | 1757 | /// <summary> |