aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs
diff options
context:
space:
mode:
authorRobert Adams2013-03-01 08:52:06 -0800
committerRobert Adams2013-03-01 09:44:37 -0800
commit1c740798b45dddb3e056b2e281fe98de6bf35143 (patch)
tree47f205e9679e4428a7fa7f9e868ee02218ee61bd /OpenSim/Region/Physics/BulletSPlugin/BSParam.cs
parentMerge branch 'master' of ssh://opensimulator.org/var/git/opensim (diff)
downloadopensim-SC_OLD-1c740798b45dddb3e056b2e281fe98de6bf35143.zip
opensim-SC_OLD-1c740798b45dddb3e056b2e281fe98de6bf35143.tar.gz
opensim-SC_OLD-1c740798b45dddb3e056b2e281fe98de6bf35143.tar.bz2
opensim-SC_OLD-1c740798b45dddb3e056b2e281fe98de6bf35143.tar.xz
BulletSim: add parameters, code cleanup around checking and enforcing
maximum velocity and angular velocity values for prims.
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BSParam.cs')
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BSParam.cs20
1 files changed, 14 insertions, 6 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs b/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs
index dc57b67..fa58109 100755
--- a/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs
@@ -47,12 +47,16 @@ public static class BSParam
47 public static float SculptLOD { get; private set; } 47 public static float SculptLOD { get; private set; }
48 48
49 public static int CrossingFailuresBeforeOutOfBounds { get; private set; } 49 public static int CrossingFailuresBeforeOutOfBounds { get; private set; }
50 public static float UpdateVelocityChangeThreshold { get; private set; }
50 51
51 public static float MinimumObjectMass { get; private set; } 52 public static float MinimumObjectMass { get; private set; }
52 public static float MaximumObjectMass { get; private set; } 53 public static float MaximumObjectMass { get; private set; }
53 public static float MaxLinearVelocity { get; private set; } 54 public static float MaxLinearVelocity { get; private set; }
55 public static float MaxLinearVelocitySquared { get; private set; }
54 public static float MaxAngularVelocity { get; private set; } 56 public static float MaxAngularVelocity { get; private set; }
57 public static float MaxAngularVelocitySquared { get; private set; }
55 public static float MaxAddForceMagnitude { get; private set; } 58 public static float MaxAddForceMagnitude { get; private set; }
59 public static float MaxAddForceMagnitudeSquared { get; private set; }
56 public static float DensityScaleFactor { get; private set; } 60 public static float DensityScaleFactor { get; private set; }
57 61
58 public static float LinearDamping { get; private set; } 62 public static float LinearDamping { get; private set; }
@@ -109,7 +113,7 @@ public static class BSParam
109 113
110 // Vehicle parameters 114 // Vehicle parameters
111 public static float VehicleMaxLinearVelocity { get; private set; } 115 public static float VehicleMaxLinearVelocity { get; private set; }
112 public static float VehicleMaxLinearVelocitySq { get; private set; } 116 public static float VehicleMaxLinearVelocitySquared { get; private set; }
113 public static float VehicleMaxAngularVelocity { get; private set; } 117 public static float VehicleMaxAngularVelocity { get; private set; }
114 public static float VehicleMaxAngularVelocitySq { get; private set; } 118 public static float VehicleMaxAngularVelocitySq { get; private set; }
115 public static float VehicleAngularDamping { get; private set; } 119 public static float VehicleAngularDamping { get; private set; }
@@ -265,7 +269,7 @@ public static class BSParam
265 // The single letter parameters for the delegates are: 269 // The single letter parameters for the delegates are:
266 // s = BSScene 270 // s = BSScene
267 // o = BSPhysObject 271 // o = BSPhysObject
268 // v = value (float) 272 // v = value (appropriate type)
269 private static ParameterDefnBase[] ParameterDefinitions = 273 private static ParameterDefnBase[] ParameterDefinitions =
270 { 274 {
271 new ParameterDefn<bool>("MeshSculptedPrim", "Whether to create meshes for sculpties", 275 new ParameterDefn<bool>("MeshSculptedPrim", "Whether to create meshes for sculpties",
@@ -289,6 +293,10 @@ public static class BSParam
289 5, 293 5,
290 (s) => { return CrossingFailuresBeforeOutOfBounds; }, 294 (s) => { return CrossingFailuresBeforeOutOfBounds; },
291 (s,v) => { CrossingFailuresBeforeOutOfBounds = v; } ), 295 (s,v) => { CrossingFailuresBeforeOutOfBounds = v; } ),
296 new ParameterDefn<float>("UpdateVelocityChangeThreshold", "Change in updated velocity required before reporting change to simulator",
297 0.1f,
298 (s) => { return UpdateVelocityChangeThreshold; },
299 (s,v) => { UpdateVelocityChangeThreshold = v; } ),
292 300
293 new ParameterDefn<float>("MeshLevelOfDetail", "Level of detail to render meshes (32, 16, 8 or 4. 32=most detailed)", 301 new ParameterDefn<float>("MeshLevelOfDetail", "Level of detail to render meshes (32, 16, 8 or 4. 32=most detailed)",
294 32f, 302 32f,
@@ -343,16 +351,16 @@ public static class BSParam
343 new ParameterDefn<float>("MaxLinearVelocity", "Maximum velocity magnitude that can be assigned to an object", 351 new ParameterDefn<float>("MaxLinearVelocity", "Maximum velocity magnitude that can be assigned to an object",
344 1000.0f, 352 1000.0f,
345 (s) => { return MaxLinearVelocity; }, 353 (s) => { return MaxLinearVelocity; },
346 (s,v) => { MaxLinearVelocity = v; } ), 354 (s,v) => { MaxLinearVelocity = v; MaxLinearVelocitySquared = v * v; } ),
347 new ParameterDefn<float>("MaxAngularVelocity", "Maximum rotational velocity magnitude that can be assigned to an object", 355 new ParameterDefn<float>("MaxAngularVelocity", "Maximum rotational velocity magnitude that can be assigned to an object",
348 1000.0f, 356 1000.0f,
349 (s) => { return MaxAngularVelocity; }, 357 (s) => { return MaxAngularVelocity; },
350 (s,v) => { MaxAngularVelocity = v; } ), 358 (s,v) => { MaxAngularVelocity = v; MaxAngularVelocitySquared = v * v; } ),
351 // LL documentation says thie number should be 20f for llApplyImpulse and 200f for llRezObject 359 // LL documentation says thie number should be 20f for llApplyImpulse and 200f for llRezObject
352 new ParameterDefn<float>("MaxAddForceMagnitude", "Maximum force that can be applied by llApplyImpulse (SL says 20f)", 360 new ParameterDefn<float>("MaxAddForceMagnitude", "Maximum force that can be applied by llApplyImpulse (SL says 20f)",
353 20000.0f, 361 20000.0f,
354 (s) => { return MaxAddForceMagnitude; }, 362 (s) => { return MaxAddForceMagnitude; },
355 (s,v) => { MaxAddForceMagnitude = v; } ), 363 (s,v) => { MaxAddForceMagnitude = v; MaxAddForceMagnitudeSquared = v * v; } ),
356 // Density is passed around as 100kg/m3. This scales that to 1kg/m3. 364 // Density is passed around as 100kg/m3. This scales that to 1kg/m3.
357 new ParameterDefn<float>("DensityScaleFactor", "Conversion for simulator/viewer density (100kg/m3) to physical density (1kg/m3)", 365 new ParameterDefn<float>("DensityScaleFactor", "Conversion for simulator/viewer density (100kg/m3) to physical density (1kg/m3)",
358 0.01f, 366 0.01f,
@@ -505,7 +513,7 @@ public static class BSParam
505 new ParameterDefn<float>("VehicleMaxLinearVelocity", "Maximum velocity magnitude that can be assigned to a vehicle", 513 new ParameterDefn<float>("VehicleMaxLinearVelocity", "Maximum velocity magnitude that can be assigned to a vehicle",
506 1000.0f, 514 1000.0f,
507 (s) => { return (float)VehicleMaxLinearVelocity; }, 515 (s) => { return (float)VehicleMaxLinearVelocity; },
508 (s,v) => { VehicleMaxLinearVelocity = v; VehicleMaxLinearVelocitySq = v * v; } ), 516 (s,v) => { VehicleMaxLinearVelocity = v; VehicleMaxLinearVelocitySquared = v * v; } ),
509 new ParameterDefn<float>("VehicleMaxAngularVelocity", "Maximum rotational velocity magnitude that can be assigned to a vehicle", 517 new ParameterDefn<float>("VehicleMaxAngularVelocity", "Maximum rotational velocity magnitude that can be assigned to a vehicle",
510 12.0f, 518 12.0f,
511 (s) => { return (float)VehicleMaxAngularVelocity; }, 519 (s) => { return (float)VehicleMaxAngularVelocity; },