diff options
author | Robert Adams | 2013-01-27 12:48:36 -0800 |
---|---|---|
committer | Robert Adams | 2013-01-27 12:50:07 -0800 |
commit | b546af9ac290951f22e8c8e56798adb176076591 (patch) | |
tree | 23f60e1100732357122ffa073c838d8747609507 /OpenSim/Region/Physics/BulletSPlugin/BSParam.cs | |
parent | BulletSim: reinstate the supression of rotational velocity for vehicles (diff) | |
download | opensim-SC-b546af9ac290951f22e8c8e56798adb176076591.zip opensim-SC-b546af9ac290951f22e8c8e56798adb176076591.tar.gz opensim-SC-b546af9ac290951f22e8c8e56798adb176076591.tar.bz2 opensim-SC-b546af9ac290951f22e8c8e56798adb176076591.tar.xz |
BulletSim: simplify the initialization of some of the parameters.
Disable vertical attraction for vehicles by default (for the moment).
Fix bug where vehicle would go crazy when velocity got above a
certain speed.
Diffstat (limited to '')
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BSParam.cs | 36 |
1 files changed, 10 insertions, 26 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs b/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs index 75eed86..4ece944 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs | |||
@@ -84,32 +84,16 @@ public static class BSParam | |||
84 | 84 | ||
85 | // Vehicle parameters | 85 | // Vehicle parameters |
86 | public static float VehicleMaxLinearVelocity { get; private set; } | 86 | public static float VehicleMaxLinearVelocity { get; private set; } |
87 | public static float VehicleMaxLinearVelocitySq { get; private set; } | ||
87 | public static float VehicleMaxAngularVelocity { get; private set; } | 88 | public static float VehicleMaxAngularVelocity { get; private set; } |
89 | public static float VehicleMaxAngularVelocitySq { get; private set; } | ||
88 | public static float VehicleAngularDamping { get; private set; } | 90 | public static float VehicleAngularDamping { get; private set; } |
89 | public static float VehicleFriction { get; private set; } | 91 | public static float VehicleFriction { get; private set; } |
90 | public static float VehicleRestitution { get; private set; } | 92 | public static float VehicleRestitution { get; private set; } |
91 | public static float VehicleLinearFactor { get; private set; } | 93 | public static float VehicleLinearFactor { get; private set; } |
92 | private static Vector3? vehicleLinearFactorV; | 94 | public static Vector3 VehicleLinearFactorV { get; private set; } |
93 | public static Vector3 VehicleLinearFactorV | ||
94 | { | ||
95 | get | ||
96 | { | ||
97 | if (!vehicleLinearFactorV.HasValue) | ||
98 | vehicleLinearFactorV = new Vector3(VehicleLinearFactor, VehicleLinearFactor, VehicleLinearFactor); | ||
99 | return (Vector3)vehicleLinearFactorV; | ||
100 | } | ||
101 | } | ||
102 | public static float VehicleAngularFactor { get; private set; } | 95 | public static float VehicleAngularFactor { get; private set; } |
103 | private static Vector3? vehicleAngularFactorV; | 96 | public static Vector3 VehicleAngularFactorV { get; private set; } |
104 | public static Vector3 VehicleAngularFactorV | ||
105 | { | ||
106 | get | ||
107 | { | ||
108 | if (!vehicleAngularFactorV.HasValue) | ||
109 | vehicleAngularFactorV = new Vector3(VehicleAngularFactor, VehicleAngularFactor, VehicleAngularFactor); | ||
110 | return (Vector3)vehicleAngularFactorV; | ||
111 | } | ||
112 | } | ||
113 | public static float VehicleGroundGravityFudge { get; private set; } | 97 | public static float VehicleGroundGravityFudge { get; private set; } |
114 | public static float VehicleDebuggingEnabled { get; private set; } | 98 | public static float VehicleDebuggingEnabled { get; private set; } |
115 | 99 | ||
@@ -469,12 +453,12 @@ public static class BSParam | |||
469 | 1000.0f, | 453 | 1000.0f, |
470 | (s,cf,p,v) => { VehicleMaxLinearVelocity = cf.GetFloat(p, v); }, | 454 | (s,cf,p,v) => { VehicleMaxLinearVelocity = cf.GetFloat(p, v); }, |
471 | (s) => { return (float)VehicleMaxLinearVelocity; }, | 455 | (s) => { return (float)VehicleMaxLinearVelocity; }, |
472 | (s,p,l,v) => { VehicleMaxLinearVelocity = v; } ), | 456 | (s,p,l,v) => { VehicleMaxLinearVelocity = v; VehicleMaxLinearVelocitySq = v * v; } ), |
473 | new ParameterDefn("VehicleMaxAngularVelocity", "Maximum rotational velocity magnitude that can be assigned to a vehicle", | 457 | new ParameterDefn("VehicleMaxAngularVelocity", "Maximum rotational velocity magnitude that can be assigned to a vehicle", |
474 | 12.0f, | 458 | 12.0f, |
475 | (s,cf,p,v) => { VehicleMaxAngularVelocity = cf.GetFloat(p, v); }, | 459 | (s,cf,p,v) => { VehicleMaxAngularVelocity = cf.GetFloat(p, v); }, |
476 | (s) => { return (float)VehicleMaxAngularVelocity; }, | 460 | (s) => { return (float)VehicleMaxAngularVelocity; }, |
477 | (s,p,l,v) => { VehicleMaxAngularVelocity = v; } ), | 461 | (s,p,l,v) => { VehicleMaxAngularVelocity = v; VehicleMaxAngularVelocitySq = v * v; } ), |
478 | new ParameterDefn("VehicleAngularDamping", "Factor to damp vehicle angular movement per second (0.0 - 1.0)", | 462 | new ParameterDefn("VehicleAngularDamping", "Factor to damp vehicle angular movement per second (0.0 - 1.0)", |
479 | 0.0f, | 463 | 0.0f, |
480 | (s,cf,p,v) => { VehicleAngularDamping = cf.GetFloat(p, v); }, | 464 | (s,cf,p,v) => { VehicleAngularDamping = cf.GetFloat(p, v); }, |
@@ -484,24 +468,24 @@ public static class BSParam | |||
484 | 1.0f, | 468 | 1.0f, |
485 | (s,cf,p,v) => { VehicleLinearFactor = cf.GetFloat(p, v); }, | 469 | (s,cf,p,v) => { VehicleLinearFactor = cf.GetFloat(p, v); }, |
486 | (s) => { return VehicleLinearFactor; }, | 470 | (s) => { return VehicleLinearFactor; }, |
487 | (s,p,l,v) => { VehicleLinearFactor = v; } ), | 471 | (s,p,l,v) => { VehicleLinearFactor = v; VehicleLinearFactorV = new Vector3(v, v, v); } ), |
488 | new ParameterDefn("VehicleAngularFactor", "Fraction of physical angular changes applied to vehicle (0.0 - 1.0)", | 472 | new ParameterDefn("VehicleAngularFactor", "Fraction of physical angular changes applied to vehicle (0.0 - 1.0)", |
489 | 1.0f, | 473 | 1.0f, |
490 | (s,cf,p,v) => { VehicleAngularFactor = cf.GetFloat(p, v); }, | 474 | (s,cf,p,v) => { VehicleAngularFactor = cf.GetFloat(p, v); }, |
491 | (s) => { return VehicleAngularFactor; }, | 475 | (s) => { return VehicleAngularFactor; }, |
492 | (s,p,l,v) => { VehicleAngularFactor = v; } ), | 476 | (s,p,l,v) => { VehicleAngularFactor = v; VehicleAngularFactorV = new Vector3(v, v, v); } ), |
493 | new ParameterDefn("VehicleFriction", "Friction of vehicle on the ground (0.0 - 1.0)", | 477 | new ParameterDefn("VehicleFriction", "Friction of vehicle on the ground (0.0 - 1.0)", |
494 | 0.0f, | 478 | 0.0f, |
495 | (s,cf,p,v) => { VehicleFriction = cf.GetFloat(p, v); }, | 479 | (s,cf,p,v) => { VehicleFriction = cf.GetFloat(p, v); }, |
496 | (s) => { return VehicleFriction; }, | 480 | (s) => { return VehicleFriction; }, |
497 | (s,p,l,v) => { VehicleFriction = v; } ), | 481 | (s,p,l,v) => { VehicleFriction = v; } ), |
498 | new ParameterDefn("VehicleRestitution", "Bouncyness factor for vehicles (0.0 - 1.0)", | 482 | new ParameterDefn("VehicleRestitution", "Bouncyness factor for vehicles (0.0 - 1.0)", |
499 | 0.2f, | 483 | 0.0f, |
500 | (s,cf,p,v) => { VehicleRestitution = cf.GetFloat(p, v); }, | 484 | (s,cf,p,v) => { VehicleRestitution = cf.GetFloat(p, v); }, |
501 | (s) => { return VehicleRestitution; }, | 485 | (s) => { return VehicleRestitution; }, |
502 | (s,p,l,v) => { VehicleRestitution = v; } ), | 486 | (s,p,l,v) => { VehicleRestitution = v; } ), |
503 | new ParameterDefn("VehicleGroundGravityFudge", "Factor to multiple gravity if a ground vehicle is probably on the ground (0.0 - 1.0)", | 487 | new ParameterDefn("VehicleGroundGravityFudge", "Factor to multiple gravity if a ground vehicle is probably on the ground (0.0 - 1.0)", |
504 | 1.0f, | 488 | 0.2f, |
505 | (s,cf,p,v) => { VehicleGroundGravityFudge = cf.GetFloat(p, v); }, | 489 | (s,cf,p,v) => { VehicleGroundGravityFudge = cf.GetFloat(p, v); }, |
506 | (s) => { return VehicleGroundGravityFudge; }, | 490 | (s) => { return VehicleGroundGravityFudge; }, |
507 | (s,p,l,v) => { VehicleGroundGravityFudge = v; } ), | 491 | (s,p,l,v) => { VehicleGroundGravityFudge = v; } ), |