aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs
diff options
context:
space:
mode:
authorUbitUmarov2015-11-08 01:47:54 +0000
committerUbitUmarov2015-11-08 01:47:54 +0000
commit185d3bd39eb371c769c9e0958f5e143a1e5c9a47 (patch)
treed22a8d2c0712239c41eddf6d6edeaad4cb7300b1 /OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs
parent fix wrong condition to set low angular velocity as Zero. (diff)
downloadopensim-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.cs10
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