From 0ffda7128e67a217bb494355d454ff0bd62e6bb5 Mon Sep 17 00:00:00 2001 From: "Teravus Ovares (Dan Olivares)" Date: Sat, 21 Nov 2009 04:33:34 -0500 Subject: [PATCH] * Fixes one of two terse update issues. There's still one left, but this one fixes the situation where the object on the server is moving but no updates are being sent. --- OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 3 +++ OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | 10 +++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 73d0984e6b..7c236e87b5 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -2083,6 +2083,7 @@ namespace OpenSim.Region.Framework.Scenes { if (PhysActor != null) { + Vector3 newpos = new Vector3(PhysActor.Position.GetBytes(), 0); if (m_parentGroup.Scene.TestBorderCross(newpos, Cardinals.N) | m_parentGroup.Scene.TestBorderCross(newpos, Cardinals.S) | m_parentGroup.Scene.TestBorderCross(newpos, Cardinals.E) | m_parentGroup.Scene.TestBorderCross(newpos, Cardinals.W)) @@ -2090,6 +2091,7 @@ namespace OpenSim.Region.Framework.Scenes m_parentGroup.AbsolutePosition = newpos; return; } + //m_parentGroup.RootPart.m_groupPosition = newpos; } ScheduleTerseUpdate(); @@ -2428,6 +2430,7 @@ namespace OpenSim.Region.Framework.Scenes ClearUpdateSchedule(); } } + ClearUpdateSchedule(); } /// diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs index fa42023b35..16f2d5d65e 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs @@ -2643,7 +2643,7 @@ Console.WriteLine(" JointCreateFixed"); //outofBounds = true; } -// float Adiff = 1.0f - Math.Abs(Quaternion.Dot(m_lastorientation, l_orientation)); + //float Adiff = 1.0f - Math.Abs(Quaternion.Dot(m_lastorientation, l_orientation)); //Console.WriteLine("Adiff " + m_primName + " = " + Adiff); if ((Math.Abs(m_lastposition.X - l_position.X) < 0.02) && (Math.Abs(m_lastposition.Y - l_position.Y) < 0.02) @@ -2659,6 +2659,8 @@ Console.WriteLine(" JointCreateFixed"); { //m_log.Debug(Math.Abs(m_lastposition.X - l_position.X).ToString()); _zeroFlag = false; + m_lastUpdateSent = false; + //m_throttleUpdates = false; } if (_zeroFlag) @@ -2685,7 +2687,9 @@ Console.WriteLine(" JointCreateFixed"); m_rotationalVelocity = pv; if (_parent == null) + { base.RequestPhysicsterseUpdate(); + } m_lastUpdateSent = true; } @@ -2695,7 +2699,9 @@ Console.WriteLine(" JointCreateFixed"); if (lastZeroFlag != _zeroFlag) { if (_parent == null) + { base.RequestPhysicsterseUpdate(); + } } m_lastVelocity = _velocity; @@ -2728,7 +2734,9 @@ Console.WriteLine(" JointCreateFixed"); if (!m_throttleUpdates || throttleCounter > _parent_scene.geomUpdatesPerThrottledUpdate) { if (_parent == null) + { base.RequestPhysicsterseUpdate(); + } } else {