aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs18
1 files changed, 13 insertions, 5 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 3db6710..f68a5b3 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -656,6 +656,14 @@ namespace OpenSim.Region.Framework.Scenes
656 if (triggerScriptEvent) 656 if (triggerScriptEvent)
657 part.TriggerScriptChangedEvent(Changed.POSITION); 657 part.TriggerScriptChangedEvent(Changed.POSITION);
658 } 658 }
659
660/*
661 This seems not needed and should not be needed:
662 sp absolute position depends on sit part absolute position fixed above.
663 sp ParentPosition is not used anywhere.
664 Since presence is sitting, viewer considers it 'linked' to root prim, so it will move/rotate it
665 Sending a extra packet with avatar position is not only bandwidth waste, but may cause jitter in viewers due to UPD nature.
666
659 if (!m_dupeInProgress) 667 if (!m_dupeInProgress)
660 { 668 {
661 foreach (ScenePresence av in m_linkedAvatars) 669 foreach (ScenePresence av in m_linkedAvatars)
@@ -665,12 +673,12 @@ namespace OpenSim.Region.Framework.Scenes
665 { 673 {
666 Vector3 offset = p.GetWorldPosition() - av.ParentPosition; 674 Vector3 offset = p.GetWorldPosition() - av.ParentPosition;
667 av.AbsolutePosition += offset; 675 av.AbsolutePosition += offset;
668 av.ParentPosition = p.GetWorldPosition(); //ParentPosition gets cleared by AbsolutePosition 676// av.ParentPosition = p.GetWorldPosition(); //ParentPosition gets cleared by AbsolutePosition
669 av.SendAvatarDataToAllAgents(); 677 av.SendAvatarDataToAllAgents();
670 } 678 }
671 } 679 }
672 } 680 }
673 681*/
674 //if (m_rootPart.PhysActor != null) 682 //if (m_rootPart.PhysActor != null)
675 //{ 683 //{
676 //m_rootPart.PhysActor.Position = 684 //m_rootPart.PhysActor.Position =
@@ -701,8 +709,8 @@ namespace OpenSim.Region.Framework.Scenes
701 if (agent.ParentUUID != UUID.Zero) 709 if (agent.ParentUUID != UUID.Zero)
702 { 710 {
703 agent.ParentPart = null; 711 agent.ParentPart = null;
704 agent.ParentPosition = Vector3.Zero; 712// agent.ParentPosition = Vector3.Zero;
705 // agent.ParentUUID = UUID.Zero; 713// agent.ParentUUID = UUID.Zero;
706 } 714 }
707 } 715 }
708 716
@@ -3815,7 +3823,7 @@ namespace OpenSim.Region.Framework.Scenes
3815 else 3823 else
3816 // ugly rotation update of all parts 3824 // ugly rotation update of all parts
3817 { 3825 {
3818 group.AbsolutePosition = AbsolutePosition; 3826 group.ResetChildPrimPhysicsPositions();
3819 } 3827 }
3820 3828
3821 } 3829 }