From eaa33cf478070bcc45f43c84a3145e8f2e016ea9 Mon Sep 17 00:00:00 2001 From: dahlia Date: Fri, 6 May 2011 16:56:54 -0700 Subject: adjust avatar terse update packet filter distance error threshold based on avatar speed --- OpenSim/Region/Framework/Scenes/ScenePresence.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Framework/Scenes/ScenePresence.cs') diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index ae4bd17..f6295b1 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -2430,8 +2430,12 @@ namespace OpenSim.Region.Framework.Scenes float speed = Velocity.Length(); float velocidyDiff = Vector3.Distance(lastVelocitySentToAllClients, Velocity); + // assuming 5 ms. worst case precision for timer, use 2x that + // for distance error threshold + float distanceErrorThreshold = speed * 0.01f; + if (speed < 0.01f // allow rotation updates if avatar position is unchanged - || Math.Abs(distanceError) > 0.25f // arbitrary distance error threshold + || Math.Abs(distanceError) > distanceErrorThreshold || velocidyDiff > 0.01f) // did velocity change from last update? { m_perfMonMS = currentTick; -- cgit v1.1