aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
diff options
context:
space:
mode:
authorRobert Adams2012-10-05 15:33:17 -0700
committerRobert Adams2012-10-11 14:01:03 -0700
commit87825b0abee76c28dcffdaa2c532779b813b6d14 (patch)
tree1028e20a0c2cd8ddea9a60b0b013fa1db69daa74 /OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
parentUpdated Robust.HG.ini.example. Thanks Austin Tate. (diff)
downloadopensim-SC_OLD-87825b0abee76c28dcffdaa2c532779b813b6d14.zip
opensim-SC_OLD-87825b0abee76c28dcffdaa2c532779b813b6d14.tar.gz
opensim-SC_OLD-87825b0abee76c28dcffdaa2c532779b813b6d14.tar.bz2
opensim-SC_OLD-87825b0abee76c28dcffdaa2c532779b813b6d14.tar.xz
BulletSim: Fix crash when linking large physical linksets.
Properly remove and restore linkage constraints when upgrading a prim's mesh to a hull. Lots more debug logging. Definitions and use of Bullet structure dumping. Centralize detail logging so a Flush() can be added for debugging.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSScene.cs11
1 files changed, 7 insertions, 4 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
index aaed7de..eed915d 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
@@ -254,7 +254,7 @@ public class BSScene : PhysicsScene, IPhysicsParameters
254 254
255 // The bounding box for the simulated world. The origin is 0,0,0 unless we're 255 // The bounding box for the simulated world. The origin is 0,0,0 unless we're
256 // a child in a mega-region. 256 // a child in a mega-region.
257 // Turns out that Bullet really doesn't care about the extents of the simulated 257 // Bullet actually doesn't care about the extents of the simulated
258 // area. It tracks active objects no matter where they are. 258 // area. It tracks active objects no matter where they are.
259 Vector3 worldExtent = new Vector3(Constants.RegionSize, Constants.RegionSize, Constants.RegionHeight); 259 Vector3 worldExtent = new Vector3(Constants.RegionSize, Constants.RegionSize, Constants.RegionHeight);
260 260
@@ -331,7 +331,7 @@ public class BSScene : PhysicsScene, IPhysicsParameters
331 // Called directly from unmanaged code so don't do much 331 // Called directly from unmanaged code so don't do much
332 private void BulletLoggerPhysLog(string msg) 332 private void BulletLoggerPhysLog(string msg)
333 { 333 {
334 PhysicsLogging.Write("[BULLETS UNMANAGED]:" + msg); 334 DetailLog("[BULLETS UNMANAGED]:" + msg);
335 } 335 }
336 336
337 public override void Dispose() 337 public override void Dispose()
@@ -494,8 +494,8 @@ public class BSScene : PhysicsScene, IPhysicsParameters
494 m_simulationStep++; 494 m_simulationStep++;
495 int numSubSteps = 0; 495 int numSubSteps = 0;
496 496
497 // Sometimes needed for debugging to find out what happened before the step 497 // DEBUG
498 // PhysicsLogging.Flush(); 498 DetailLog("{0},BSScene.Simulate,beforeStep,ntaimts={1},step={2}", DetailLogZero, numTaints, m_simulationStep);
499 499
500 try 500 try
501 { 501 {
@@ -715,6 +715,7 @@ public class BSScene : PhysicsScene, IPhysicsParameters
715 { 715 {
716 try 716 try
717 { 717 {
718 DetailLog("{0},BSScene.ProcessTaints,doTaint,id={1}", DetailLogZero, tcbe.ident); // DEBUG DEBUG DEBUG
718 tcbe.callback(); 719 tcbe.callback();
719 } 720 }
720 catch (Exception e) 721 catch (Exception e)
@@ -1270,6 +1271,8 @@ public class BSScene : PhysicsScene, IPhysicsParameters
1270 public void DetailLog(string msg, params Object[] args) 1271 public void DetailLog(string msg, params Object[] args)
1271 { 1272 {
1272 PhysicsLogging.Write(msg, args); 1273 PhysicsLogging.Write(msg, args);
1274 // Add the Flush() if debugging crashes to get all the messages written out.
1275 PhysicsLogging.Flush(); // DEBUG DEBUG DEBUG
1273 } 1276 }
1274 // used to fill in the LocalID when there isn't one 1277 // used to fill in the LocalID when there isn't one
1275 public const string DetailLogZero = "0000000000"; 1278 public const string DetailLogZero = "0000000000";