diff options
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BSScene.cs')
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BSScene.cs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs index eb1d798..150326e 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs | |||
@@ -107,6 +107,8 @@ public class BSScene : PhysicsScene, IPhysicsParameters | |||
107 | private long m_simulationStep = 0; | 107 | private long m_simulationStep = 0; |
108 | public long SimulationStep { get { return m_simulationStep; } } | 108 | public long SimulationStep { get { return m_simulationStep; } } |
109 | 109 | ||
110 | public float LastSimulatedTimestep { get; private set; } | ||
111 | |||
110 | // A value of the time now so all the collision and update routines do not have to get their own | 112 | // A value of the time now so all the collision and update routines do not have to get their own |
111 | // Set to 'now' just before all the prims and actors are called for collisions and updates | 113 | // Set to 'now' just before all the prims and actors are called for collisions and updates |
112 | private int m_simulationNowTime; | 114 | private int m_simulationNowTime; |
@@ -123,6 +125,9 @@ public class BSScene : PhysicsScene, IPhysicsParameters | |||
123 | private bool _meshSculptedPrim = true; // cause scuplted prims to get meshed | 125 | private bool _meshSculptedPrim = true; // cause scuplted prims to get meshed |
124 | private bool _forceSimplePrimMeshing = false; // if a cube or sphere, let Bullet do internal shapes | 126 | private bool _forceSimplePrimMeshing = false; // if a cube or sphere, let Bullet do internal shapes |
125 | 127 | ||
128 | public float PID_D { get; private set; } // derivative | ||
129 | public float PID_P { get; private set; } // proportional | ||
130 | |||
126 | public const uint TERRAIN_ID = 0; // OpenSim senses terrain with a localID of zero | 131 | public const uint TERRAIN_ID = 0; // OpenSim senses terrain with a localID of zero |
127 | public const uint GROUNDPLANE_ID = 1; | 132 | public const uint GROUNDPLANE_ID = 1; |
128 | 133 | ||
@@ -222,6 +227,9 @@ public class BSScene : PhysicsScene, IPhysicsParameters | |||
222 | m_maxUpdatesPerFrame = 2048; | 227 | m_maxUpdatesPerFrame = 2048; |
223 | m_maximumObjectMass = 10000.01f; | 228 | m_maximumObjectMass = 10000.01f; |
224 | 229 | ||
230 | PID_D = 2200f; | ||
231 | PID_P = 900f; | ||
232 | |||
225 | parms.defaultFriction = 0.5f; | 233 | parms.defaultFriction = 0.5f; |
226 | parms.defaultDensity = 10.000006836f; // Aluminum g/cm3 | 234 | parms.defaultDensity = 10.000006836f; // Aluminum g/cm3 |
227 | parms.defaultRestitution = 0f; | 235 | parms.defaultRestitution = 0f; |
@@ -278,6 +286,9 @@ public class BSScene : PhysicsScene, IPhysicsParameters | |||
278 | m_maxUpdatesPerFrame = pConfig.GetInt("MaxUpdatesPerFrame", m_maxUpdatesPerFrame); | 286 | m_maxUpdatesPerFrame = pConfig.GetInt("MaxUpdatesPerFrame", m_maxUpdatesPerFrame); |
279 | m_maximumObjectMass = pConfig.GetFloat("MaxObjectMass", m_maximumObjectMass); | 287 | m_maximumObjectMass = pConfig.GetFloat("MaxObjectMass", m_maximumObjectMass); |
280 | 288 | ||
289 | PID_D = pConfig.GetFloat("PIDDerivative", PID_D); | ||
290 | PID_P = pConfig.GetFloat("PIDProportional", PID_P); | ||
291 | |||
281 | parms.defaultFriction = pConfig.GetFloat("DefaultFriction", parms.defaultFriction); | 292 | parms.defaultFriction = pConfig.GetFloat("DefaultFriction", parms.defaultFriction); |
282 | parms.defaultDensity = pConfig.GetFloat("DefaultDensity", parms.defaultDensity); | 293 | parms.defaultDensity = pConfig.GetFloat("DefaultDensity", parms.defaultDensity); |
283 | parms.defaultRestitution = pConfig.GetFloat("DefaultRestitution", parms.defaultRestitution); | 294 | parms.defaultRestitution = pConfig.GetFloat("DefaultRestitution", parms.defaultRestitution); |
@@ -415,6 +426,8 @@ public class BSScene : PhysicsScene, IPhysicsParameters | |||
415 | int collidersCount; | 426 | int collidersCount; |
416 | IntPtr collidersPtr; | 427 | IntPtr collidersPtr; |
417 | 428 | ||
429 | LastSimulatedTimestep = timeStep; | ||
430 | |||
418 | // prevent simulation until we've been initialized | 431 | // prevent simulation until we've been initialized |
419 | if (!m_initialized) return 10.0f; | 432 | if (!m_initialized) return 10.0f; |
420 | 433 | ||