diff options
author | Robert Adams | 2016-03-06 11:30:25 -0800 |
---|---|---|
committer | Robert Adams | 2016-03-06 11:30:25 -0800 |
commit | feb058f5c53b76ab0dab1680d2b0dd15fd2bfa6d (patch) | |
tree | e8be1293920acd37e0e72e73a83e714fecf7d544 | |
parent | Make mesh upload respect the same parts maximum as what is set for the (diff) | |
download | opensim-SC_OLD-feb058f5c53b76ab0dab1680d2b0dd15fd2bfa6d.zip opensim-SC_OLD-feb058f5c53b76ab0dab1680d2b0dd15fd2bfa6d.tar.gz opensim-SC_OLD-feb058f5c53b76ab0dab1680d2b0dd15fd2bfa6d.tar.bz2 opensim-SC_OLD-feb058f5c53b76ab0dab1680d2b0dd15fd2bfa6d.tar.xz |
BulletSim: Send out avatar position update if velocity is now zero
and it wasn't zero last tick. This will prevent some avatar creeping.
Adjust BulletSim default avatar velocity zeroing so the avatar stops sooner.
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 3 | ||||
-rwxr-xr-x | OpenSim/Region/PhysicsModules/BulletS/BSParam.cs | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index b281e5f..e4c9de1 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -3571,6 +3571,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
3571 | !Rotation.ApproxEquals(m_lastRotation, ROTATION_TOLERANCE) | 3571 | !Rotation.ApproxEquals(m_lastRotation, ROTATION_TOLERANCE) |
3572 | || !Velocity.ApproxEquals(m_lastVelocity, VELOCITY_TOLERANCE) | 3572 | || !Velocity.ApproxEquals(m_lastVelocity, VELOCITY_TOLERANCE) |
3573 | || !m_pos.ApproxEquals(m_lastPosition, POSITION_LARGETOLERANCE) | 3573 | || !m_pos.ApproxEquals(m_lastPosition, POSITION_LARGETOLERANCE) |
3574 | // if velocity is zero and it wasn't zero last time, send the update | ||
3575 | || (Velocity == Vector3.Zero && m_lastVelocity != Vector3.Zero) | ||
3576 | // if position has moved just a little and velocity is very low, send the update | ||
3574 | || (!m_pos.ApproxEquals(m_lastPosition, POSITION_SMALLTOLERANCE) && Velocity.LengthSquared() < LOWVELOCITYSQ ) | 3577 | || (!m_pos.ApproxEquals(m_lastPosition, POSITION_SMALLTOLERANCE) && Velocity.LengthSquared() < LOWVELOCITYSQ ) |
3575 | ) ) | 3578 | ) ) |
3576 | { | 3579 | { |
diff --git a/OpenSim/Region/PhysicsModules/BulletS/BSParam.cs b/OpenSim/Region/PhysicsModules/BulletS/BSParam.cs index 389a441..e34e3a9 100755 --- a/OpenSim/Region/PhysicsModules/BulletS/BSParam.cs +++ b/OpenSim/Region/PhysicsModules/BulletS/BSParam.cs | |||
@@ -633,7 +633,7 @@ public static class BSParam | |||
633 | new ParameterDefn<float>("AvatarAddForcePushFactor", "BSCharacter.AddForce is multiplied by this and mass to be like other physics engines", | 633 | new ParameterDefn<float>("AvatarAddForcePushFactor", "BSCharacter.AddForce is multiplied by this and mass to be like other physics engines", |
634 | 0.315f ), | 634 | 0.315f ), |
635 | new ParameterDefn<float>("AvatarStopZeroThreshold", "Movement velocity below which avatar is assumed to be stopped", | 635 | new ParameterDefn<float>("AvatarStopZeroThreshold", "Movement velocity below which avatar is assumed to be stopped", |
636 | 0.4f, | 636 | 0.45f, |
637 | (s) => { return (float)AvatarStopZeroThreshold; }, | 637 | (s) => { return (float)AvatarStopZeroThreshold; }, |
638 | (s,v) => { AvatarStopZeroThreshold = v; AvatarStopZeroThresholdSquared = v * v; } ), | 638 | (s,v) => { AvatarStopZeroThreshold = v; AvatarStopZeroThresholdSquared = v * v; } ), |
639 | new ParameterDefn<float>("AvatarBelowGroundUpCorrectionMeters", "Meters to move avatar up if it seems to be below ground", | 639 | new ParameterDefn<float>("AvatarBelowGroundUpCorrectionMeters", "Meters to move avatar up if it seems to be below ground", |