diff options
author | Robert Adams | 2012-12-27 06:58:07 -0800 |
---|---|---|
committer | Robert Adams | 2012-12-27 22:12:25 -0800 |
commit | f3baed5827853c5041f042ff36cf394b1e45538f (patch) | |
tree | 3560e4990a9eb4be19e30be88e4bcbff6718fce7 | |
parent | BulletSim: complete applyImpulse function in BSCharacter (like I said (diff) | |
download | opensim-SC-f3baed5827853c5041f042ff36cf394b1e45538f.zip opensim-SC-f3baed5827853c5041f042ff36cf394b1e45538f.tar.gz opensim-SC-f3baed5827853c5041f042ff36cf394b1e45538f.tar.bz2 opensim-SC-f3baed5827853c5041f042ff36cf394b1e45538f.tar.xz |
BulletSim: add physical parameter min/max constants in BSParam. I just don't like raw numbers scattered around the code.
Diffstat (limited to '')
4 files changed, 15 insertions, 11 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs b/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs index 7454718..8366cef 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSParam.cs | |||
@@ -89,6 +89,18 @@ public static class BSParam | |||
89 | public static float PID_D { get; private set; } // derivative | 89 | public static float PID_D { get; private set; } // derivative |
90 | public static float PID_P { get; private set; } // proportional | 90 | public static float PID_P { get; private set; } // proportional |
91 | 91 | ||
92 | // Various constants that come from that other virtual world that shall not be named | ||
93 | public const float MinGravityZ = -1f; | ||
94 | public const float MaxGravityZ = 28f; | ||
95 | public const float MinFriction = 0f; | ||
96 | public const float MaxFriction = 255f; | ||
97 | public const float MinDensity = 0f; | ||
98 | public const float MaxDensity = 22587f; | ||
99 | public const float MinRestitution = 0f; | ||
100 | public const float MaxRestitution = 1f; | ||
101 | public const float MaxAddForceMagnitude = 20000f; | ||
102 | |||
103 | // =========================================================================== | ||
92 | public delegate void ParamUser(BSScene scene, IConfig conf, string paramName, float val); | 104 | public delegate void ParamUser(BSScene scene, IConfig conf, string paramName, float val); |
93 | public delegate float ParamGet(BSScene scene); | 105 | public delegate float ParamGet(BSScene scene); |
94 | public delegate void ParamSet(BSScene scene, string paramName, uint localID, float val); | 106 | public delegate void ParamSet(BSScene scene, string paramName, uint localID, float val); |
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs index 9013414..c7a81e0 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs | |||
@@ -1025,10 +1025,10 @@ public sealed class BSPrim : BSPhysObject | |||
1025 | if (force.IsFinite()) | 1025 | if (force.IsFinite()) |
1026 | { | 1026 | { |
1027 | float magnitude = force.Length(); | 1027 | float magnitude = force.Length(); |
1028 | if (magnitude > 20000f) | 1028 | if (magnitude > BSParam.MaxAddForceMagnitude) |
1029 | { | 1029 | { |
1030 | // Force has a limit | 1030 | // Force has a limit |
1031 | force = force / magnitude * 20000f; | 1031 | force = force / magnitude * BSParam.MaxAddForceMagnitude; |
1032 | } | 1032 | } |
1033 | 1033 | ||
1034 | OMV.Vector3 addForce = force; | 1034 | OMV.Vector3 addForce = force; |
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs index b67c0ed..a5fbf10 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs | |||
@@ -38,15 +38,6 @@ using Nini.Config; | |||
38 | using log4net; | 38 | using log4net; |
39 | using OpenMetaverse; | 39 | using OpenMetaverse; |
40 | 40 | ||
41 | // TODOs for BulletSim (for BSScene, BSPrim, BSCharacter and BulletSim) | ||
42 | // Based on material, set density and friction | ||
43 | // More efficient memory usage when passing hull information from BSPrim to BulletSim | ||
44 | // Do attachments need to be handled separately? Need collision events. Do not collide with VolumeDetect | ||
45 | // Implement LockAngularMotion | ||
46 | // Add PID movement operations. What does ScenePresence.MoveToTarget do? | ||
47 | // Check terrain size. 128 or 127? | ||
48 | // Raycast | ||
49 | // | ||
50 | namespace OpenSim.Region.Physics.BulletSPlugin | 41 | namespace OpenSim.Region.Physics.BulletSPlugin |
51 | { | 42 | { |
52 | public sealed class BSScene : PhysicsScene, IPhysicsParameters | 43 | public sealed class BSScene : PhysicsScene, IPhysicsParameters |
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt index 78cc26c..bc6dd7e 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt +++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt | |||
@@ -96,6 +96,7 @@ Selecting and deselecting physical objects causes CPU processing time to jump | |||
96 | put thousand physical objects, select and deselect same. CPU time will be large. | 96 | put thousand physical objects, select and deselect same. CPU time will be large. |
97 | Re-implement buoyancy as a separate force on the object rather than diddling gravity. | 97 | Re-implement buoyancy as a separate force on the object rather than diddling gravity. |
98 | Register a pre-step event to add the force. | 98 | Register a pre-step event to add the force. |
99 | More efficient memory usage when passing hull information from BSPrim to BulletSim | ||
99 | 100 | ||
100 | LINKSETS | 101 | LINKSETS |
101 | ====================================================== | 102 | ====================================================== |