diff options
author | Robert Adams | 2012-03-18 11:53:53 -0700 |
---|---|---|
committer | Robert Adams | 2012-03-23 13:15:17 -0700 |
commit | de24feb275ddd1c7e7c0b04900718a9000b8d49b (patch) | |
tree | ee2076519f9dfb19851593a38eef3f3cd5759ab0 /OpenSim/Region | |
parent | BulletSim: set buoyancy in only one place (diff) | |
download | opensim-SC-de24feb275ddd1c7e7c0b04900718a9000b8d49b.zip opensim-SC-de24feb275ddd1c7e7c0b04900718a9000b8d49b.tar.gz opensim-SC-de24feb275ddd1c7e7c0b04900718a9000b8d49b.tar.bz2 opensim-SC-de24feb275ddd1c7e7c0b04900718a9000b8d49b.tar.xz |
BulletSim: Add AvatarRestitution parameter. Centralize computation of buoyancy for flying. Tweek avatar default friction and resititution
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs | 9 | ||||
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BSScene.cs | 3 |
2 files changed, 9 insertions, 3 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs index e816b61..1a61431 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs | |||
@@ -94,7 +94,7 @@ public class BSCharacter : PhysicsActor | |||
94 | _flying = isFlying; | 94 | _flying = isFlying; |
95 | _orientation = Quaternion.Identity; | 95 | _orientation = Quaternion.Identity; |
96 | _velocity = Vector3.Zero; | 96 | _velocity = Vector3.Zero; |
97 | _buoyancy = isFlying ? 1f : 0f; | 97 | _buoyancy = ComputeBuoyancyFromFlying(isFlying); |
98 | _scale = new Vector3(1f, 1f, 1f); | 98 | _scale = new Vector3(1f, 1f, 1f); |
99 | _density = _scene.Params.avatarDensity; | 99 | _density = _scene.Params.avatarDensity; |
100 | ComputeAvatarVolumeAndMass(); // set _avatarVolume and _mass based on capsule size, _density and _scale | 100 | ComputeAvatarVolumeAndMass(); // set _avatarVolume and _mass based on capsule size, _density and _scale |
@@ -110,7 +110,7 @@ public class BSCharacter : PhysicsActor | |||
110 | shapeData.Buoyancy = _buoyancy; | 110 | shapeData.Buoyancy = _buoyancy; |
111 | shapeData.Static = ShapeData.numericFalse; | 111 | shapeData.Static = ShapeData.numericFalse; |
112 | shapeData.Friction = _scene.Params.avatarFriction; | 112 | shapeData.Friction = _scene.Params.avatarFriction; |
113 | shapeData.Restitution = _scene.Params.defaultRestitution; | 113 | shapeData.Restitution = _scene.Params.avatarRestitution; |
114 | 114 | ||
115 | // do actual create at taint time | 115 | // do actual create at taint time |
116 | _scene.TaintedObject(delegate() | 116 | _scene.TaintedObject(delegate() |
@@ -261,9 +261,12 @@ public class BSCharacter : PhysicsActor | |||
261 | set { | 261 | set { |
262 | _flying = value; | 262 | _flying = value; |
263 | // simulate flying by changing the effect of gravity | 263 | // simulate flying by changing the effect of gravity |
264 | this.Buoyancy(_flying ? 1f : 0f); | 264 | this.Buoyancy(ComputeBuoyancyFromFlying(_flying)); |
265 | } | 265 | } |
266 | } | 266 | } |
267 | private float ComputeBuoyancyFromFlying(bool ifFlying) { | ||
268 | return ifFlying ? 1f : 0f; | ||
269 | } | ||
267 | public override bool | 270 | public override bool |
268 | SetAlwaysRun { | 271 | SetAlwaysRun { |
269 | get { return _setAlwaysRun; } | 272 | get { return _setAlwaysRun; } |
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs index 977dcbe..9b12b4f 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs | |||
@@ -235,6 +235,7 @@ public class BSScene : PhysicsScene, IPhysicsParameters | |||
235 | parms.terrainHitFraction = 0.8f; | 235 | parms.terrainHitFraction = 0.8f; |
236 | parms.terrainRestitution = 0f; | 236 | parms.terrainRestitution = 0f; |
237 | parms.avatarFriction = 0.5f; | 237 | parms.avatarFriction = 0.5f; |
238 | parms.avatarRestitution = 0.0f; | ||
238 | parms.avatarDensity = 60f; | 239 | parms.avatarDensity = 60f; |
239 | parms.avatarCapsuleRadius = 0.37f; | 240 | parms.avatarCapsuleRadius = 0.37f; |
240 | parms.avatarCapsuleHeight = 1.5f; // 2.140599f | 241 | parms.avatarCapsuleHeight = 1.5f; // 2.140599f |
@@ -279,7 +280,9 @@ public class BSScene : PhysicsScene, IPhysicsParameters | |||
279 | parms.terrainHitFraction = pConfig.GetFloat("TerrainHitFraction", parms.terrainHitFraction); | 280 | parms.terrainHitFraction = pConfig.GetFloat("TerrainHitFraction", parms.terrainHitFraction); |
280 | parms.terrainRestitution = pConfig.GetFloat("TerrainRestitution", parms.terrainRestitution); | 281 | parms.terrainRestitution = pConfig.GetFloat("TerrainRestitution", parms.terrainRestitution); |
281 | parms.avatarFriction = pConfig.GetFloat("AvatarFriction", parms.avatarFriction); | 282 | parms.avatarFriction = pConfig.GetFloat("AvatarFriction", parms.avatarFriction); |
283 | parms.avatarRestitution = pConfig.GetFloat("AvatarRestitution", parms.avatarRestitution); | ||
282 | parms.avatarDensity = pConfig.GetFloat("AvatarDensity", parms.avatarDensity); | 284 | parms.avatarDensity = pConfig.GetFloat("AvatarDensity", parms.avatarDensity); |
285 | parms.avatarRestitution = pConfig.GetFloat("AvatarRestitution", parms.avatarRestitution); | ||
283 | parms.avatarCapsuleRadius = pConfig.GetFloat("AvatarCapsuleRadius", parms.avatarCapsuleRadius); | 286 | parms.avatarCapsuleRadius = pConfig.GetFloat("AvatarCapsuleRadius", parms.avatarCapsuleRadius); |
284 | parms.avatarCapsuleHeight = pConfig.GetFloat("AvatarCapsuleHeight", parms.avatarCapsuleHeight); | 287 | parms.avatarCapsuleHeight = pConfig.GetFloat("AvatarCapsuleHeight", parms.avatarCapsuleHeight); |
285 | } | 288 | } |