aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/PhysicsModules/BulletS/BSPrim.cs
diff options
context:
space:
mode:
authorRobert Adams2016-01-18 07:02:48 -0800
committerRobert Adams2016-01-18 07:02:48 -0800
commit35d4298be698d9eb02974a4210c5ace867b0db35 (patch)
treead3cb41a236cfceaac1629eaec919b522205b00a /OpenSim/Region/PhysicsModules/BulletS/BSPrim.cs
parentBulletSim: revert avatar stationary testing for having slight velocity. (diff)
downloadopensim-SC_OLD-35d4298be698d9eb02974a4210c5ace867b0db35.zip
opensim-SC_OLD-35d4298be698d9eb02974a4210c5ace867b0db35.tar.gz
opensim-SC_OLD-35d4298be698d9eb02974a4210c5ace867b0db35.tar.bz2
opensim-SC_OLD-35d4298be698d9eb02974a4210c5ace867b0db35.tar.xz
BulletSim: change method signatures for internal AddForce methods to remove
confusion about push forces. The latter is an external, physics engine interface feature (the force parameter has a different unit if pushing vs adding force) and that distinction is not used internally.
Diffstat (limited to 'OpenSim/Region/PhysicsModules/BulletS/BSPrim.cs')
-rw-r--r--OpenSim/Region/PhysicsModules/BulletS/BSPrim.cs16
1 files changed, 10 insertions, 6 deletions
diff --git a/OpenSim/Region/PhysicsModules/BulletS/BSPrim.cs b/OpenSim/Region/PhysicsModules/BulletS/BSPrim.cs
index 1d552eb..fd9b834 100644
--- a/OpenSim/Region/PhysicsModules/BulletS/BSPrim.cs
+++ b/OpenSim/Region/PhysicsModules/BulletS/BSPrim.cs
@@ -394,7 +394,7 @@ public class BSPrim : BSPhysObject
394 // Apply upforce and overcome gravity. 394 // Apply upforce and overcome gravity.
395 OMV.Vector3 correctionForce = upForce - PhysScene.DefaultGravity; 395 OMV.Vector3 correctionForce = upForce - PhysScene.DefaultGravity;
396 DetailLog("{0},BSPrim.PositionSanityCheck,applyForce,pos={1},upForce={2},correctionForce={3}", LocalID, RawPosition, upForce, correctionForce); 396 DetailLog("{0},BSPrim.PositionSanityCheck,applyForce,pos={1},upForce={2},correctionForce={3}", LocalID, RawPosition, upForce, correctionForce);
397 AddForce(correctionForce, false, inTaintTime); 397 AddForce(inTaintTime, correctionForce);
398 ret = true; 398 ret = true;
399 } 399 }
400 } 400 }
@@ -1249,14 +1249,18 @@ public class BSPrim : BSPhysObject
1249 // Per documentation, max force is limited. 1249 // Per documentation, max force is limited.
1250 OMV.Vector3 addForce = Util.ClampV(force, BSParam.MaxAddForceMagnitude); 1250 OMV.Vector3 addForce = Util.ClampV(force, BSParam.MaxAddForceMagnitude);
1251 1251
1252 // Since this force is being applied in only one step, make this a force per second. 1252 // Push forces seem to be scaled differently (follow pattern in ubODE)
1253 addForce /= PhysScene.LastTimeStep; 1253 if (!pushforce) {
1254 AddForce(addForce, pushforce, false /* inTaintTime */); 1254 // Since this force is being applied in only one step, make this a force per second.
1255 addForce /= PhysScene.LastTimeStep;
1256 }
1257
1258 AddForce(false /* inTaintTime */, addForce);
1255 } 1259 }
1256 1260
1257 // Applying a force just adds this to the total force on the object. 1261 // Applying a force just adds this to the total force on the object.
1258 // This added force will only last the next simulation tick. 1262 // This added force will only last the next simulation tick.
1259 public override void AddForce(OMV.Vector3 force, bool pushforce, bool inTaintTime) { 1263 public override void AddForce(bool inTaintTime, OMV.Vector3 force) {
1260 // for an object, doesn't matter if force is a pushforce or not 1264 // for an object, doesn't matter if force is a pushforce or not
1261 if (IsPhysicallyActive) 1265 if (IsPhysicallyActive)
1262 { 1266 {
@@ -1315,7 +1319,7 @@ public class BSPrim : BSPhysObject
1315 } 1319 }
1316 1320
1317 // BSPhysObject.AddAngularForce() 1321 // BSPhysObject.AddAngularForce()
1318 public override void AddAngularForce(OMV.Vector3 force, bool pushforce, bool inTaintTime) 1322 public override void AddAngularForce(bool inTaintTime, OMV.Vector3 force)
1319 { 1323 {
1320 if (force.IsFinite()) 1324 if (force.IsFinite())
1321 { 1325 {