diff options
author | UbitUmarov | 2015-11-08 01:47:54 +0000 |
---|---|---|
committer | UbitUmarov | 2015-11-08 01:47:54 +0000 |
commit | 185d3bd39eb371c769c9e0958f5e143a1e5c9a47 (patch) | |
tree | d22a8d2c0712239c41eddf6d6edeaad4cb7300b1 /OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs | |
parent | fix wrong condition to set low angular velocity as Zero. (diff) | |
download | opensim-SC-185d3bd39eb371c769c9e0958f5e143a1e5c9a47.zip opensim-SC-185d3bd39eb371c769c9e0958f5e143a1e5c9a47.tar.gz opensim-SC-185d3bd39eb371c769c9e0958f5e143a1e5c9a47.tar.bz2 opensim-SC-185d3bd39eb371c769c9e0958f5e143a1e5c9a47.tar.xz |
change maximum angular velocity to a value derived from heartbeat rate and Nyquist.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs index 2da2603..ebffda2 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs | |||
@@ -216,9 +216,11 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
216 | private float avMovementDivisorRun = 0.8f; | 216 | private float avMovementDivisorRun = 0.8f; |
217 | private float minimumGroundFlightOffset = 3f; | 217 | private float minimumGroundFlightOffset = 3f; |
218 | public float maximumMassObject = 10000.01f; | 218 | public float maximumMassObject = 10000.01f; |
219 | |||
220 | public float geomDefaultDensity = 10.0f; | 219 | public float geomDefaultDensity = 10.0f; |
221 | 220 | ||
221 | public float maximumAngularVelocity = 12.0f; // default 12rad/s | ||
222 | public float maxAngVelocitySQ = 144f; // squared value | ||
223 | |||
222 | public float bodyPIDD = 35f; | 224 | public float bodyPIDD = 35f; |
223 | public float bodyPIDG = 25; | 225 | public float bodyPIDG = 25; |
224 | 226 | ||
@@ -493,6 +495,10 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
493 | } | 495 | } |
494 | } | 496 | } |
495 | 497 | ||
498 | float heartbeat = 1/m_frameWorkScene.MinFrameTime; | ||
499 | maximumAngularVelocity = 0.49f * heartbeat *(float)Math.PI; | ||
500 | maxAngVelocitySQ = maximumAngularVelocity * maximumAngularVelocity; | ||
501 | |||
496 | d.WorldSetCFM(world, comumContactCFM); | 502 | d.WorldSetCFM(world, comumContactCFM); |
497 | d.WorldSetERP(world, comumContactERP); | 503 | d.WorldSetERP(world, comumContactERP); |
498 | 504 | ||
@@ -502,7 +508,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
502 | d.WorldSetAngularDamping(world, 0.002f); | 508 | d.WorldSetAngularDamping(world, 0.002f); |
503 | d.WorldSetAngularDampingThreshold(world, 0f); | 509 | d.WorldSetAngularDampingThreshold(world, 0f); |
504 | d.WorldSetLinearDampingThreshold(world, 0f); | 510 | d.WorldSetLinearDampingThreshold(world, 0f); |
505 | d.WorldSetMaxAngularSpeed(world, 100f); | 511 | d.WorldSetMaxAngularSpeed(world, maximumAngularVelocity); |
506 | 512 | ||
507 | d.WorldSetQuickStepNumIterations(world, m_physicsiterations); | 513 | d.WorldSetQuickStepNumIterations(world, m_physicsiterations); |
508 | 514 | ||