diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BSScene.cs | 19 | ||||
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | 6 |
2 files changed, 22 insertions, 3 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs index 5e70a23..17cc7b4 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs | |||
@@ -96,6 +96,9 @@ public sealed class BSScene : PhysicsScene, IPhysicsParameters | |||
96 | public long SimulationStep { get { return m_simulationStep; } } | 96 | public long SimulationStep { get { return m_simulationStep; } } |
97 | private int m_taintsToProcessPerStep; | 97 | private int m_taintsToProcessPerStep; |
98 | 98 | ||
99 | public delegate void PreStepAction(float timeStep); | ||
100 | public event PreStepAction BeforeStep; | ||
101 | |||
99 | // A value of the time now so all the collision and update routines do not have to get their own | 102 | // A value of the time now so all the collision and update routines do not have to get their own |
100 | // Set to 'now' just before all the prims and actors are called for collisions and updates | 103 | // Set to 'now' just before all the prims and actors are called for collisions and updates |
101 | public int SimulationNowTime { get; private set; } | 104 | public int SimulationNowTime { get; private set; } |
@@ -487,8 +490,10 @@ public sealed class BSScene : PhysicsScene, IPhysicsParameters | |||
487 | ProcessTaints(); | 490 | ProcessTaints(); |
488 | 491 | ||
489 | // Some of the prims operate with special vehicle properties | 492 | // Some of the prims operate with special vehicle properties |
490 | ProcessVehicles(timeStep); | 493 | DoPreStepActions(timeStep); |
491 | ProcessTaints(); // the vehicles might have added taints | 494 | |
495 | // the prestep actions might have added taints | ||
496 | ProcessTaints(); | ||
492 | 497 | ||
493 | // step the physical world one interval | 498 | // step the physical world one interval |
494 | m_simulationStep++; | 499 | m_simulationStep++; |
@@ -907,6 +912,16 @@ public sealed class BSScene : PhysicsScene, IPhysicsParameters | |||
907 | } | 912 | } |
908 | } | 913 | } |
909 | 914 | ||
915 | private void DoPreStepActions(float timeStep) | ||
916 | { | ||
917 | ProcessVehicles(timeStep); | ||
918 | |||
919 | PreStepAction actions = BeforeStep; | ||
920 | if (actions != null) | ||
921 | actions(timeStep); | ||
922 | |||
923 | } | ||
924 | |||
910 | // Some prims have extra vehicle actions | 925 | // Some prims have extra vehicle actions |
911 | // Called at taint time! | 926 | // Called at taint time! |
912 | private void ProcessVehicles(float timeStep) | 927 | private void ProcessVehicles(float timeStep) |
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index cf112fb..ca71313 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | |||
@@ -27,6 +27,7 @@ Small physical objects do not interact correctly | |||
27 | Chains above 2x2x.4 are move stable and get stablier as torui get larger. | 27 | Chains above 2x2x.4 are move stable and get stablier as torui get larger. |
28 | Add material type linkage and input all the material property definitions. | 28 | Add material type linkage and input all the material property definitions. |
29 | Skeleton classes and table are in the sources but are not filled or used. | 29 | Skeleton classes and table are in the sources but are not filled or used. |
30 | Add PID motor for avatar movement (slow to stop, ...) | ||
30 | 31 | ||
31 | After getting off a vehicle, the root prim is phantom (can be walked through) | 32 | After getting off a vehicle, the root prim is phantom (can be walked through) |
32 | Need to force a position update for the root prim after compound shape destruction | 33 | Need to force a position update for the root prim after compound shape destruction |
@@ -78,7 +79,10 @@ Breakout code for mesh/hull/compound/native into separate BSShape* classes | |||
78 | Generalize Dynamics and PID with standardized motors. | 79 | Generalize Dynamics and PID with standardized motors. |
79 | Generalize Linkset and vehicles into PropertyManagers | 80 | Generalize Linkset and vehicles into PropertyManagers |
80 | Methods for Refresh, RemoveBodyDependencies, RestoreBodyDependencies | 81 | Methods for Refresh, RemoveBodyDependencies, RestoreBodyDependencies |
81 | Possibly generalized a 'per step action' registration. | 82 | Possibly generalized a 'pre step action' registration. |
83 | Complete implemention of preStepActions | ||
84 | Replace vehicle step call with prestep event. | ||
85 | Is there a need for postStepActions? postStepTaints? | ||
82 | Implement linkset by setting position of children when root updated. (LinksetManual) | 86 | Implement linkset by setting position of children when root updated. (LinksetManual) |
83 | LinkablePrim class? Would that simplify/centralize the linkset logic? | 87 | LinkablePrim class? Would that simplify/centralize the linkset logic? |
84 | Linkset implementation using manual prim movement. | 88 | Linkset implementation using manual prim movement. |