diff options
Diffstat (limited to 'OpenSim/Region/Physics/OdePlugin/OdePlugin.cs')
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index 873abc7..d795e45 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | |||
@@ -166,6 +166,16 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
166 | private float mAvatarObjectContactBounce = 0.1f; | 166 | private float mAvatarObjectContactBounce = 0.1f; |
167 | 167 | ||
168 | 168 | ||
169 | private float avPIDD = 3200f; | ||
170 | private float avPIDP = 1400f; | ||
171 | private float avCapRadius = 0.37f; | ||
172 | private float avStandupTensor = 2000000f; | ||
173 | private float avDensity = 80f; | ||
174 | private float avHeightFudgeFactor = 0.52f; | ||
175 | private float avMovementDivisorWalk = 1.3f; | ||
176 | private float avMovementDivisorRun = 0.8f; | ||
177 | |||
178 | |||
169 | private float[] _heightmap; | 179 | private float[] _heightmap; |
170 | 180 | ||
171 | private float[] _watermap; | 181 | private float[] _watermap; |
@@ -271,6 +281,21 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
271 | { | 281 | { |
272 | mesher = meshmerizer; | 282 | mesher = meshmerizer; |
273 | m_config = config; | 283 | m_config = config; |
284 | // Defaults | ||
285 | |||
286 | if (Environment.OSVersion.Platform == PlatformID.Unix) | ||
287 | { | ||
288 | avPIDD = 3200.0f; | ||
289 | avPIDP = 1400.0f; | ||
290 | avStandupTensor = 2000000f; | ||
291 | } | ||
292 | else | ||
293 | { | ||
294 | avPIDD = 2200.0f; | ||
295 | avPIDP = 900.0f; | ||
296 | avStandupTensor = 550000f; | ||
297 | } | ||
298 | |||
274 | if (m_config != null) | 299 | if (m_config != null) |
275 | { | 300 | { |
276 | IConfig physicsconfig = m_config.Configs["ODEPhysicsSettings"]; | 301 | IConfig physicsconfig = m_config.Configs["ODEPhysicsSettings"]; |
@@ -306,6 +331,26 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
306 | ODE_STEPSIZE = physicsconfig.GetFloat("world_stepsize", 0.020f); | 331 | ODE_STEPSIZE = physicsconfig.GetFloat("world_stepsize", 0.020f); |
307 | m_physicsiterations = physicsconfig.GetInt("world_internal_steps_without_collisions", 10); | 332 | m_physicsiterations = physicsconfig.GetInt("world_internal_steps_without_collisions", 10); |
308 | 333 | ||
334 | avDensity = physicsconfig.GetFloat("av_density", 80f); | ||
335 | avHeightFudgeFactor = physicsconfig.GetFloat("av_height_fudge_factor", 0.52f); | ||
336 | avMovementDivisorWalk = physicsconfig.GetFloat("av_movement_divisor_walk", 1.3f); | ||
337 | avMovementDivisorRun = physicsconfig.GetFloat("av_movement_divisor_run", 0.8f); | ||
338 | avCapRadius = physicsconfig.GetFloat("av_capsule_radius", 0.37f); | ||
339 | |||
340 | if (Environment.OSVersion.Platform == PlatformID.Unix) | ||
341 | { | ||
342 | avPIDD = physicsconfig.GetFloat("av_pid_derivative_linux", 3200.0f); | ||
343 | avPIDP = physicsconfig.GetFloat("av_pid_proportional_linux", 1400.0f); | ||
344 | avStandupTensor = physicsconfig.GetFloat("av_capsule_standup_tensor_linux", 2000000f); | ||
345 | } | ||
346 | else | ||
347 | { | ||
348 | avPIDD = physicsconfig.GetFloat("av_pid_derivative_win", 2200.0f); | ||
349 | avPIDP = physicsconfig.GetFloat("av_pid_proportional_win", 900.0f); | ||
350 | avStandupTensor = physicsconfig.GetFloat("av_capsule_standup_tensor_win", 550000f); | ||
351 | } | ||
352 | |||
353 | |||
309 | } | 354 | } |
310 | 355 | ||
311 | } | 356 | } |
@@ -1054,7 +1099,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1054 | pos.X = position.X; | 1099 | pos.X = position.X; |
1055 | pos.Y = position.Y; | 1100 | pos.Y = position.Y; |
1056 | pos.Z = position.Z; | 1101 | pos.Z = position.Z; |
1057 | OdeCharacter newAv = new OdeCharacter(avName, this, pos, ode, size); | 1102 | OdeCharacter newAv = new OdeCharacter(avName, this, pos, ode, size, avPIDD, avPIDP, avCapRadius, avStandupTensor, avDensity, avHeightFudgeFactor, avMovementDivisorWalk, avMovementDivisorRun); |
1058 | _characters.Add(newAv); | 1103 | _characters.Add(newAv); |
1059 | return newAv; | 1104 | return newAv; |
1060 | } | 1105 | } |