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/Physics/BulletSPlugin/BSCharacter.cs | |
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 |
1 files changed, 6 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; } |