diff options
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BSParam.cs')
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BSParam.cs | 47 |
1 files changed, 35 insertions, 12 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs b/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs index 3e80aa4..9460daf 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs | |||
@@ -45,6 +45,9 @@ public static class BSParam | |||
45 | 45 | ||
46 | public static float MinimumObjectMass { get; private set; } | 46 | public static float MinimumObjectMass { get; private set; } |
47 | public static float MaximumObjectMass { get; private set; } | 47 | public static float MaximumObjectMass { get; private set; } |
48 | public static float MaxLinearVelocity { get; private set; } | ||
49 | public static float MaxAngularVelocity { get; private set; } | ||
50 | public static float MaxAddForceMagnitude { get; private set; } | ||
48 | 51 | ||
49 | public static float LinearDamping { get; private set; } | 52 | public static float LinearDamping { get; private set; } |
50 | public static float AngularDamping { get; private set; } | 53 | public static float AngularDamping { get; private set; } |
@@ -79,6 +82,8 @@ public static class BSParam | |||
79 | public static float AvatarStepApproachFactor { get; private set; } | 82 | public static float AvatarStepApproachFactor { get; private set; } |
80 | public static float AvatarStepForceFactor { get; private set; } | 83 | public static float AvatarStepForceFactor { get; private set; } |
81 | 84 | ||
85 | public static float VehicleMaxLinearVelocity { get; private set; } | ||
86 | public static float VehicleMaxAngularVelocity { get; private set; } | ||
82 | public static float VehicleAngularDamping { get; private set; } | 87 | public static float VehicleAngularDamping { get; private set; } |
83 | public static float VehicleDebuggingEnabled { get; private set; } | 88 | public static float VehicleDebuggingEnabled { get; private set; } |
84 | 89 | ||
@@ -103,7 +108,6 @@ public static class BSParam | |||
103 | public const float MaxDensity = 22587f; | 108 | public const float MaxDensity = 22587f; |
104 | public const float MinRestitution = 0f; | 109 | public const float MinRestitution = 0f; |
105 | public const float MaxRestitution = 1f; | 110 | public const float MaxRestitution = 1f; |
106 | public const float MaxAddForceMagnitude = 20f; | ||
107 | 111 | ||
108 | // =========================================================================== | 112 | // =========================================================================== |
109 | public delegate void ParamUser(BSScene scene, IConfig conf, string paramName, float val); | 113 | public delegate void ParamUser(BSScene scene, IConfig conf, string paramName, float val); |
@@ -232,11 +236,7 @@ public static class BSParam | |||
232 | (s,cf,p,v) => { s.m_maxUpdatesPerFrame = cf.GetInt(p, (int)v); }, | 236 | (s,cf,p,v) => { s.m_maxUpdatesPerFrame = cf.GetInt(p, (int)v); }, |
233 | (s) => { return (float)s.m_maxUpdatesPerFrame; }, | 237 | (s) => { return (float)s.m_maxUpdatesPerFrame; }, |
234 | (s,p,l,v) => { s.m_maxUpdatesPerFrame = (int)v; } ), | 238 | (s,p,l,v) => { s.m_maxUpdatesPerFrame = (int)v; } ), |
235 | new ParameterDefn("MaxTaintsToProcessPerStep", "Number of update taints to process before each simulation step", | 239 | |
236 | 500f, | ||
237 | (s,cf,p,v) => { s.m_taintsToProcessPerStep = cf.GetInt(p, (int)v); }, | ||
238 | (s) => { return (float)s.m_taintsToProcessPerStep; }, | ||
239 | (s,p,l,v) => { s.m_taintsToProcessPerStep = (int)v; } ), | ||
240 | new ParameterDefn("MinObjectMass", "Minimum object mass (0.0001)", | 240 | new ParameterDefn("MinObjectMass", "Minimum object mass (0.0001)", |
241 | 0.0001f, | 241 | 0.0001f, |
242 | (s,cf,p,v) => { MinimumObjectMass = cf.GetFloat(p, v); }, | 242 | (s,cf,p,v) => { MinimumObjectMass = cf.GetFloat(p, v); }, |
@@ -247,6 +247,22 @@ public static class BSParam | |||
247 | (s,cf,p,v) => { MaximumObjectMass = cf.GetFloat(p, v); }, | 247 | (s,cf,p,v) => { MaximumObjectMass = cf.GetFloat(p, v); }, |
248 | (s) => { return (float)MaximumObjectMass; }, | 248 | (s) => { return (float)MaximumObjectMass; }, |
249 | (s,p,l,v) => { MaximumObjectMass = v; } ), | 249 | (s,p,l,v) => { MaximumObjectMass = v; } ), |
250 | new ParameterDefn("MaxLinearVelocity", "Maximum velocity magnitude that can be assigned to an object", | ||
251 | 1000.0f, | ||
252 | (s,cf,p,v) => { MaxLinearVelocity = cf.GetFloat(p, v); }, | ||
253 | (s) => { return (float)MaxLinearVelocity; }, | ||
254 | (s,p,l,v) => { MaxLinearVelocity = v; } ), | ||
255 | new ParameterDefn("MaxAngularVelocity", "Maximum rotational velocity magnitude that can be assigned to an object", | ||
256 | 1000.0f, | ||
257 | (s,cf,p,v) => { MaxAngularVelocity = cf.GetFloat(p, v); }, | ||
258 | (s) => { return (float)MaxAngularVelocity; }, | ||
259 | (s,p,l,v) => { MaxAngularVelocity = v; } ), | ||
260 | // LL documentation says thie number should be 20f for llApplyImpulse and 200f for llRezObject | ||
261 | new ParameterDefn("MaxAddForceMagnitude", "Maximum force that can be applied by llApplyImpulse (SL says 20f)", | ||
262 | 20000.0f, | ||
263 | (s,cf,p,v) => { MaxAddForceMagnitude = cf.GetFloat(p, v); }, | ||
264 | (s) => { return (float)MaxAddForceMagnitude; }, | ||
265 | (s,p,l,v) => { MaxAddForceMagnitude = v; } ), | ||
250 | 266 | ||
251 | new ParameterDefn("PID_D", "Derivitive factor for motion smoothing", | 267 | new ParameterDefn("PID_D", "Derivitive factor for motion smoothing", |
252 | 2200f, | 268 | 2200f, |
@@ -423,8 +439,18 @@ public static class BSParam | |||
423 | (s) => { return AvatarStepForceFactor; }, | 439 | (s) => { return AvatarStepForceFactor; }, |
424 | (s,p,l,v) => { AvatarStepForceFactor = v; } ), | 440 | (s,p,l,v) => { AvatarStepForceFactor = v; } ), |
425 | 441 | ||
442 | new ParameterDefn("VehicleMaxLinearVelocity", "Maximum velocity magnitude that can be assigned to a vehicle", | ||
443 | 1000.0f, | ||
444 | (s,cf,p,v) => { VehicleMaxLinearVelocity = cf.GetFloat(p, v); }, | ||
445 | (s) => { return (float)VehicleMaxLinearVelocity; }, | ||
446 | (s,p,l,v) => { VehicleMaxLinearVelocity = v; } ), | ||
447 | new ParameterDefn("VehicleMaxAngularVelocity", "Maximum rotational velocity magnitude that can be assigned to a vehicle", | ||
448 | 12.0f, | ||
449 | (s,cf,p,v) => { VehicleMaxAngularVelocity = cf.GetFloat(p, v); }, | ||
450 | (s) => { return (float)VehicleMaxAngularVelocity; }, | ||
451 | (s,p,l,v) => { VehicleMaxAngularVelocity = v; } ), | ||
426 | new ParameterDefn("VehicleAngularDamping", "Factor to damp vehicle angular movement per second (0.0 - 1.0)", | 452 | new ParameterDefn("VehicleAngularDamping", "Factor to damp vehicle angular movement per second (0.0 - 1.0)", |
427 | 0.95f, | 453 | 0.0f, |
428 | (s,cf,p,v) => { VehicleAngularDamping = cf.GetFloat(p, v); }, | 454 | (s,cf,p,v) => { VehicleAngularDamping = cf.GetFloat(p, v); }, |
429 | (s) => { return VehicleAngularDamping; }, | 455 | (s) => { return VehicleAngularDamping; }, |
430 | (s,p,l,v) => { VehicleAngularDamping = v; } ), | 456 | (s,p,l,v) => { VehicleAngularDamping = v; } ), |
@@ -619,11 +645,8 @@ public static class BSParam | |||
619 | entries.Add(new PhysParameterEntry(pd.name, pd.desc)); | 645 | entries.Add(new PhysParameterEntry(pd.name, pd.desc)); |
620 | } | 646 | } |
621 | 647 | ||
622 | // make the list in alphabetical order for estetic reasons | 648 | // make the list alphabetical for estetic reasons |
623 | entries.Sort(delegate(PhysParameterEntry ppe1, PhysParameterEntry ppe2) | 649 | entries.Sort((ppe1, ppe2) => { return ppe1.name.CompareTo(ppe2.name); }); |
624 | { | ||
625 | return ppe1.name.CompareTo(ppe2.name); | ||
626 | }); | ||
627 | 650 | ||
628 | SettableParameters = entries.ToArray(); | 651 | SettableParameters = entries.ToArray(); |
629 | } | 652 | } |