aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs4
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSScene.cs29
2 files changed, 27 insertions, 6 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
index a4ab702..ebfd85b 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
@@ -1331,13 +1331,15 @@ public sealed class BSPrim : PhysicsActor
1331 1331
1332 base.RequestPhysicsterseUpdate(); 1332 base.RequestPhysicsterseUpdate();
1333 } 1333 }
1334 /*
1334 else 1335 else
1335 { 1336 {
1336 // For debugging, we can also report the movement of children 1337 // For debugging, we also report the movement of children
1337 DetailLog("{0},UpdateProperties,child,pos={1},orient={2},vel={3},accel={4},rotVel={5}", 1338 DetailLog("{0},UpdateProperties,child,pos={1},orient={2},vel={3},accel={4},rotVel={5}",
1338 LocalID, entprop.Position, entprop.Rotation, entprop.Velocity, 1339 LocalID, entprop.Position, entprop.Rotation, entprop.Velocity,
1339 entprop.Acceleration, entprop.RotationalVelocity); 1340 entprop.Acceleration, entprop.RotationalVelocity);
1340 } 1341 }
1342 */
1341 } 1343 }
1342 1344
1343 // I've collided with something 1345 // I've collided with something
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
index 28d5cb5..011033c 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
@@ -390,9 +390,9 @@ public class BSScene : PhysicsScene, IPhysicsParameters
390 // Simulate one timestep 390 // Simulate one timestep
391 public override float Simulate(float timeStep) 391 public override float Simulate(float timeStep)
392 { 392 {
393 int updatedEntityCount; 393 int updatedEntityCount = 0;
394 IntPtr updatedEntitiesPtr; 394 IntPtr updatedEntitiesPtr;
395 int collidersCount; 395 int collidersCount = 0;
396 IntPtr collidersPtr; 396 IntPtr collidersPtr;
397 397
398 LastSimulatedTimestep = timeStep; 398 LastSimulatedTimestep = timeStep;
@@ -411,8 +411,21 @@ public class BSScene : PhysicsScene, IPhysicsParameters
411 411
412 // step the physical world one interval 412 // step the physical world one interval
413 m_simulationStep++; 413 m_simulationStep++;
414 int numSubSteps = BulletSimAPI.PhysicsStep(m_worldID, timeStep, m_maxSubSteps, m_fixedTimeStep, 414 int numSubSteps = 0;
415 out updatedEntityCount, out updatedEntitiesPtr, out collidersCount, out collidersPtr); 415 try
416 {
417 numSubSteps = BulletSimAPI.PhysicsStep(m_worldID, timeStep, m_maxSubSteps, m_fixedTimeStep,
418 out updatedEntityCount, out updatedEntitiesPtr, out collidersCount, out collidersPtr);
419 DetailLog("{0},Simulate,call, substeps={1}, updates={2}, colliders={3}", "0000000000", numSubSteps, updatedEntityCount, collidersCount);
420 }
421 catch (Exception e)
422 {
423 m_log.WarnFormat("{0},PhysicsStep Exception: substeps={1}, updates={2}, colliders={3}, e={4}", LogHeader, numSubSteps, updatedEntityCount, collidersCount, e);
424 DetailLog("{0},PhysicsStepException,call, substeps={1}, updates={2}, colliders={3}", "0000000000", numSubSteps, updatedEntityCount, collidersCount);
425 // updatedEntityCount = 0;
426 collidersCount = 0;
427 }
428
416 429
417 // Don't have to use the pointers passed back since we know it is the same pinned memory we passed in 430 // Don't have to use the pointers passed back since we know it is the same pinned memory we passed in
418 431
@@ -711,7 +724,7 @@ public class BSScene : PhysicsScene, IPhysicsParameters
711 return true; 724 return true;
712 } 725 }
713 726
714 // The calls to the PhysicsActors can't directly call into the physics engine 727 // Calls to the PhysicsActors can't directly call into the physics engine
715 // because it might be busy. We delay changes to a known time. 728 // because it might be busy. We delay changes to a known time.
716 // We rely on C#'s closure to save and restore the context for the delegate. 729 // We rely on C#'s closure to save and restore the context for the delegate.
717 public void TaintedObject(TaintCallback callback) 730 public void TaintedObject(TaintCallback callback)
@@ -1275,5 +1288,11 @@ public class BSScene : PhysicsScene, IPhysicsParameters
1275 1288
1276 #endregion Runtime settable parameters 1289 #endregion Runtime settable parameters
1277 1290
1291 // Invoke the detailed logger and output something if it's enabled.
1292 private void DetailLog(string msg, params Object[] args)
1293 {
1294 PhysicsLogging.Write(msg, args);
1295 }
1296
1278} 1297}
1279} 1298}