aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorRobert Adams2012-12-27 06:58:07 -0800
committerRobert Adams2012-12-27 22:12:25 -0800
commitf3baed5827853c5041f042ff36cf394b1e45538f (patch)
tree3560e4990a9eb4be19e30be88e4bcbff6718fce7
parentBulletSim: complete applyImpulse function in BSCharacter (like I said (diff)
downloadopensim-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.
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BSParam.cs12
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs4
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSScene.cs9
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BulletSimTODO.txt1
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;
38using log4net; 38using log4net;
39using OpenMetaverse; 39using 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//
50namespace OpenSim.Region.Physics.BulletSPlugin 41namespace OpenSim.Region.Physics.BulletSPlugin
51{ 42{
52public sealed class BSScene : PhysicsScene, IPhysicsParameters 43public 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.
97Re-implement buoyancy as a separate force on the object rather than diddling gravity. 97Re-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.
99More efficient memory usage when passing hull information from BSPrim to BulletSim
99 100
100LINKSETS 101LINKSETS
101====================================================== 102======================================================