aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
diff options
context:
space:
mode:
authorRobert Adams2012-12-27 18:19:25 -0800
committerRobert Adams2012-12-27 22:12:28 -0800
commitc1e7539c77480b839d513dbb7db74aa8f260eba0 (patch)
treec67c637a678b0ec432438eb56a66481a258eab19 /OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
parentBulletSim: move logic for IsColliding, CollidingGround and CollidingObj from ... (diff)
downloadopensim-SC-c1e7539c77480b839d513dbb7db74aa8f260eba0.zip
opensim-SC-c1e7539c77480b839d513dbb7db74aa8f260eba0.tar.gz
opensim-SC-c1e7539c77480b839d513dbb7db74aa8f260eba0.tar.bz2
opensim-SC-c1e7539c77480b839d513dbb7db74aa8f260eba0.tar.xz
BulletSim: Parameterize nominal frame rate (55) and add parameters to dynamially turn on/off detailed, unmanaged data dumping of prims and vehicles.
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BSScene.cs')
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSScene.cs11
1 files changed, 8 insertions, 3 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
index a5fbf10..8edcd20 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
@@ -74,6 +74,7 @@ public sealed class BSScene : PhysicsScene, IPhysicsParameters
74 internal int m_maxSubSteps; 74 internal int m_maxSubSteps;
75 internal float m_fixedTimeStep; 75 internal float m_fixedTimeStep;
76 internal long m_simulationStep = 0; 76 internal long m_simulationStep = 0;
77 internal float NominalFrameRate { get; set; }
77 public long SimulationStep { get { return m_simulationStep; } } 78 public long SimulationStep { get { return m_simulationStep; } }
78 internal int m_taintsToProcessPerStep; 79 internal int m_taintsToProcessPerStep;
79 internal float LastTimeStep { get; private set; } 80 internal float LastTimeStep { get; private set; }
@@ -162,6 +163,7 @@ public sealed class BSScene : PhysicsScene, IPhysicsParameters
162 private string m_physicsLoggingPrefix; 163 private string m_physicsLoggingPrefix;
163 private int m_physicsLoggingFileMinutes; 164 private int m_physicsLoggingFileMinutes;
164 private bool m_physicsLoggingDoFlush; 165 private bool m_physicsLoggingDoFlush;
166 private bool m_physicsPhysicalDumpEnabled;
165 // 'true' of the vehicle code is to log lots of details 167 // 'true' of the vehicle code is to log lots of details
166 public bool VehicleLoggingEnabled { get; private set; } 168 public bool VehicleLoggingEnabled { get; private set; }
167 public bool VehiclePhysicalLoggingEnabled { get; private set; } 169 public bool VehiclePhysicalLoggingEnabled { get; private set; }
@@ -272,6 +274,7 @@ public sealed class BSScene : PhysicsScene, IPhysicsParameters
272 m_physicsLoggingPrefix = pConfig.GetString("PhysicsLoggingPrefix", "physics-%REGIONNAME%-"); 274 m_physicsLoggingPrefix = pConfig.GetString("PhysicsLoggingPrefix", "physics-%REGIONNAME%-");
273 m_physicsLoggingFileMinutes = pConfig.GetInt("PhysicsLoggingFileMinutes", 5); 275 m_physicsLoggingFileMinutes = pConfig.GetInt("PhysicsLoggingFileMinutes", 5);
274 m_physicsLoggingDoFlush = pConfig.GetBoolean("PhysicsLoggingDoFlush", false); 276 m_physicsLoggingDoFlush = pConfig.GetBoolean("PhysicsLoggingDoFlush", false);
277 m_physicsPhysicalDumpEnabled = pConfig.GetBoolean("PhysicsPhysicalDumpEnabled", false);
275 // Very detailed logging for vehicle debugging 278 // Very detailed logging for vehicle debugging
276 VehicleLoggingEnabled = pConfig.GetBoolean("VehicleLoggingEnabled", false); 279 VehicleLoggingEnabled = pConfig.GetBoolean("VehicleLoggingEnabled", false);
277 VehiclePhysicalLoggingEnabled = pConfig.GetBoolean("VehiclePhysicalLoggingEnabled", false); 280 VehiclePhysicalLoggingEnabled = pConfig.GetBoolean("VehiclePhysicalLoggingEnabled", false);
@@ -488,7 +491,8 @@ public sealed class BSScene : PhysicsScene, IPhysicsParameters
488 491
489 // The following causes the unmanaged code to output ALL the values found in ALL the objects in the world. 492 // The following causes the unmanaged code to output ALL the values found in ALL the objects in the world.
490 // Only enable this in a limited test world with few objects. 493 // Only enable this in a limited test world with few objects.
491 // BulletSimAPI.DumpAllInfo2(World.ptr); // DEBUG DEBUG DEBUG 494 if (m_physicsPhysicalDumpEnabled)
495 BulletSimAPI.DumpAllInfo2(World.ptr);
492 496
493 // step the physical world one interval 497 // step the physical world one interval
494 m_simulationStep++; 498 m_simulationStep++;
@@ -587,12 +591,13 @@ public sealed class BSScene : PhysicsScene, IPhysicsParameters
587 591
588 // The following causes the unmanaged code to output ALL the values found in ALL the objects in the world. 592 // The following causes the unmanaged code to output ALL the values found in ALL the objects in the world.
589 // Only enable this in a limited test world with few objects. 593 // Only enable this in a limited test world with few objects.
590 // BulletSimAPI.DumpAllInfo2(World.ptr); // DEBUG DEBUG DEBUG 594 if (m_physicsPhysicalDumpEnabled)
595 BulletSimAPI.DumpAllInfo2(World.ptr);
591 596
592 // The physics engine returns the number of milliseconds it simulated this call. 597 // The physics engine returns the number of milliseconds it simulated this call.
593 // These are summed and normalized to one second and divided by 1000 to give the reported physics FPS. 598 // These are summed and normalized to one second and divided by 1000 to give the reported physics FPS.
594 // Multiply by 55 to give a nominal frame rate of 55. 599 // Multiply by 55 to give a nominal frame rate of 55.
595 return (float)numSubSteps * m_fixedTimeStep * 1000f * 55f; 600 return (float)numSubSteps * m_fixedTimeStep * 1000f * NominalFrameRate;
596 } 601 }
597 602
598 // Something has collided 603 // Something has collided