diff options
author | Robert Adams | 2012-08-10 16:22:44 -0700 |
---|---|---|
committer | Robert Adams | 2012-08-10 16:22:44 -0700 |
commit | 0c7ce4fc98d4be185d5a5d83d4cc1c596b5cb1d3 (patch) | |
tree | cf1df356454765a2de5920db78146b0f408a00b4 /OpenSim/Region/Physics/BulletSPlugin/BSScene.cs | |
parent | BulletSim: Add module names to DetailLog output. Fix some problems with links... (diff) | |
download | opensim-SC_OLD-0c7ce4fc98d4be185d5a5d83d4cc1c596b5cb1d3.zip opensim-SC_OLD-0c7ce4fc98d4be185d5a5d83d4cc1c596b5cb1d3.tar.gz opensim-SC_OLD-0c7ce4fc98d4be185d5a5d83d4cc1c596b5cb1d3.tar.bz2 opensim-SC_OLD-0c7ce4fc98d4be185d5a5d83d4cc1c596b5cb1d3.tar.xz |
BulletSim: many, many detailed logging messages for physical linkset
debugging.
Linkset bugs fixed where accounting of children would get lost.
Moved scene based vehicle tracking logic from prim to the scene.
Added GetCollisionFlags2 method to BulletSimAPI.
Updated DLLs and SOs.
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BSScene.cs')
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BSScene.cs | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs index 65a8014..beaea1f 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs | |||
@@ -255,7 +255,7 @@ public class BSScene : PhysicsScene, IPhysicsParameters | |||
255 | 255 | ||
256 | // Initialization to support the transition to a new API which puts most of the logic | 256 | // Initialization to support the transition to a new API which puts most of the logic |
257 | // into the C# code so it is easier to modify and add to. | 257 | // into the C# code so it is easier to modify and add to. |
258 | m_worldSim = new BulletSim(m_worldID, BulletSimAPI.GetSimHandle2(m_worldID)); | 258 | m_worldSim = new BulletSim(m_worldID, this, BulletSimAPI.GetSimHandle2(m_worldID)); |
259 | m_constraintCollection = new BSConstraintCollection(World); | 259 | m_constraintCollection = new BSConstraintCollection(World); |
260 | 260 | ||
261 | m_initialized = true; | 261 | m_initialized = true; |
@@ -362,6 +362,7 @@ public class BSScene : PhysicsScene, IPhysicsParameters | |||
362 | BSPrim bsprim = prim as BSPrim; | 362 | BSPrim bsprim = prim as BSPrim; |
363 | if (bsprim != null) | 363 | if (bsprim != null) |
364 | { | 364 | { |
365 | DetailLog("{0},RemovePrim,call", bsprim.LocalID); | ||
365 | // m_log.DebugFormat("{0}: RemovePrim. id={1}/{2}", LogHeader, bsprim.Name, bsprim.LocalID); | 366 | // m_log.DebugFormat("{0}: RemovePrim. id={1}/{2}", LogHeader, bsprim.Name, bsprim.LocalID); |
366 | try | 367 | try |
367 | { | 368 | { |
@@ -387,6 +388,8 @@ public class BSScene : PhysicsScene, IPhysicsParameters | |||
387 | 388 | ||
388 | if (!m_initialized) return null; | 389 | if (!m_initialized) return null; |
389 | 390 | ||
391 | DetailLog("{0},AddPrimShape,call", localID); | ||
392 | |||
390 | BSPrim prim = new BSPrim(localID, primName, this, position, size, rotation, pbs, isPhysical); | 393 | BSPrim prim = new BSPrim(localID, primName, this, position, size, rotation, pbs, isPhysical); |
391 | lock (m_prims) m_prims.Add(localID, prim); | 394 | lock (m_prims) m_prims.Add(localID, prim); |
392 | return prim; | 395 | return prim; |
@@ -426,12 +429,12 @@ public class BSScene : PhysicsScene, IPhysicsParameters | |||
426 | { | 429 | { |
427 | numSubSteps = BulletSimAPI.PhysicsStep(m_worldID, timeStep, m_maxSubSteps, m_fixedTimeStep, | 430 | numSubSteps = BulletSimAPI.PhysicsStep(m_worldID, timeStep, m_maxSubSteps, m_fixedTimeStep, |
428 | out updatedEntityCount, out updatedEntitiesPtr, out collidersCount, out collidersPtr); | 431 | out updatedEntityCount, out updatedEntitiesPtr, out collidersCount, out collidersPtr); |
429 | DetailLog("{0},Simulate,call, substeps={1}, updates={2}, colliders={3}", "0000000000", numSubSteps, updatedEntityCount, collidersCount); | 432 | DetailLog("{0},Simulate,call, substeps={1}, updates={2}, colliders={3}", DetailLogZero, numSubSteps, updatedEntityCount, collidersCount); |
430 | } | 433 | } |
431 | catch (Exception e) | 434 | catch (Exception e) |
432 | { | 435 | { |
433 | m_log.WarnFormat("{0},PhysicsStep Exception: substeps={1}, updates={2}, colliders={3}, e={4}", LogHeader, numSubSteps, updatedEntityCount, collidersCount, e); | 436 | m_log.WarnFormat("{0},PhysicsStep Exception: substeps={1}, updates={2}, colliders={3}, e={4}", LogHeader, numSubSteps, updatedEntityCount, collidersCount, e); |
434 | DetailLog("{0},PhysicsStepException,call, substeps={1}, updates={2}, colliders={3}", "0000000000", numSubSteps, updatedEntityCount, collidersCount); | 437 | DetailLog("{0},PhysicsStepException,call, substeps={1}, updates={2}, colliders={3}", DetailLogZero, numSubSteps, updatedEntityCount, collidersCount); |
435 | // updatedEntityCount = 0; | 438 | // updatedEntityCount = 0; |
436 | collidersCount = 0; | 439 | collidersCount = 0; |
437 | } | 440 | } |
@@ -777,6 +780,20 @@ public class BSScene : PhysicsScene, IPhysicsParameters | |||
777 | } | 780 | } |
778 | 781 | ||
779 | #region Vehicles | 782 | #region Vehicles |
783 | |||
784 | public void VehicleInSceneTypeChanged(BSPrim vehic, Vehicle newType) | ||
785 | { | ||
786 | if (newType == Vehicle.TYPE_NONE) | ||
787 | { | ||
788 | RemoveVehiclePrim(vehic); | ||
789 | } | ||
790 | else | ||
791 | { | ||
792 | // make it so the scene will call us each tick to do vehicle things | ||
793 | AddVehiclePrim(vehic); | ||
794 | } | ||
795 | } | ||
796 | |||
780 | // Make so the scene will call this prim for vehicle actions each tick. | 797 | // Make so the scene will call this prim for vehicle actions each tick. |
781 | // Safe to call if prim is already in the vehicle list. | 798 | // Safe to call if prim is already in the vehicle list. |
782 | public void AddVehiclePrim(BSPrim vehicle) | 799 | public void AddVehiclePrim(BSPrim vehicle) |
@@ -1304,10 +1321,12 @@ public class BSScene : PhysicsScene, IPhysicsParameters | |||
1304 | #endregion Runtime settable parameters | 1321 | #endregion Runtime settable parameters |
1305 | 1322 | ||
1306 | // Invoke the detailed logger and output something if it's enabled. | 1323 | // Invoke the detailed logger and output something if it's enabled. |
1307 | private void DetailLog(string msg, params Object[] args) | 1324 | public void DetailLog(string msg, params Object[] args) |
1308 | { | 1325 | { |
1309 | PhysicsLogging.Write(msg, args); | 1326 | PhysicsLogging.Write(msg, args); |
1310 | } | 1327 | } |
1328 | // used to fill in the LocalID when there isn't one | ||
1329 | public const string DetailLogZero = "0000000000"; | ||
1311 | 1330 | ||
1312 | } | 1331 | } |
1313 | } | 1332 | } |