aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/PhysicsModules/BulletS/BSCharacter.cs
diff options
context:
space:
mode:
authorRobert Adams2016-09-30 19:35:44 -0700
committerRobert Adams2016-09-30 19:35:44 -0700
commitc7e4b14a26c2c3a265b268a9e6c43e6c93db205e (patch)
tree7e0b9878a9acab973443b633b4c61b9343f844b3 /OpenSim/Region/PhysicsModules/BulletS/BSCharacter.cs
parentMySQLFSAssetData asset type is a int not a varchar (diff)
downloadopensim-SC_OLD-c7e4b14a26c2c3a265b268a9e6c43e6c93db205e.zip
opensim-SC_OLD-c7e4b14a26c2c3a265b268a9e6c43e6c93db205e.tar.gz
opensim-SC_OLD-c7e4b14a26c2c3a265b268a9e6c43e6c93db205e.tar.bz2
opensim-SC_OLD-c7e4b14a26c2c3a265b268a9e6c43e6c93db205e.tar.xz
BulletSim: fix problem with avatar velocity going to zero when flying across
region boundries. Move code for Velocity, ForceVelocity and SetMomentum to BSPhysObject and have both BSPrim and BSCharacter share the code.
Diffstat (limited to 'OpenSim/Region/PhysicsModules/BulletS/BSCharacter.cs')
-rw-r--r--OpenSim/Region/PhysicsModules/BulletS/BSCharacter.cs19
1 files changed, 4 insertions, 15 deletions
diff --git a/OpenSim/Region/PhysicsModules/BulletS/BSCharacter.cs b/OpenSim/Region/PhysicsModules/BulletS/BSCharacter.cs
index 5ad2136..213f2eb 100644
--- a/OpenSim/Region/PhysicsModules/BulletS/BSCharacter.cs
+++ b/OpenSim/Region/PhysicsModules/BulletS/BSCharacter.cs
@@ -52,7 +52,6 @@ public sealed class BSCharacter : BSPhysObject
52 private bool _setAlwaysRun; 52 private bool _setAlwaysRun;
53 private bool _throttleUpdates; 53 private bool _throttleUpdates;
54 private bool _floatOnWater; 54 private bool _floatOnWater;
55 private OMV.Vector3 _rotationalVelocity;
56 private bool _kinematic; 55 private bool _kinematic;
57 private float _buoyancy; 56 private float _buoyancy;
58 57
@@ -291,7 +290,7 @@ public sealed class BSCharacter : BSPhysObject
291 { 290 {
292 RawVelocity = OMV.Vector3.Zero; 291 RawVelocity = OMV.Vector3.Zero;
293 _acceleration = OMV.Vector3.Zero; 292 _acceleration = OMV.Vector3.Zero;
294 _rotationalVelocity = OMV.Vector3.Zero; 293 RawRotationalVelocity = OMV.Vector3.Zero;
295 294
296 // Zero some other properties directly into the physics engine 295 // Zero some other properties directly into the physics engine
297 PhysScene.TaintedObject(inTaintTime, LocalID, "BSCharacter.ZeroMotion", delegate() 296 PhysScene.TaintedObject(inTaintTime, LocalID, "BSCharacter.ZeroMotion", delegate()
@@ -303,7 +302,7 @@ public sealed class BSCharacter : BSPhysObject
303 302
304 public override void ZeroAngularMotion(bool inTaintTime) 303 public override void ZeroAngularMotion(bool inTaintTime)
305 { 304 {
306 _rotationalVelocity = OMV.Vector3.Zero; 305 RawRotationalVelocity = OMV.Vector3.Zero;
307 306
308 PhysScene.TaintedObject(inTaintTime, LocalID, "BSCharacter.ZeroMotion", delegate() 307 PhysScene.TaintedObject(inTaintTime, LocalID, "BSCharacter.ZeroMotion", delegate()
309 { 308 {
@@ -618,14 +617,6 @@ public sealed class BSCharacter : BSPhysObject
618 }); 617 });
619 } 618 }
620 } 619 }
621 public override OMV.Vector3 RotationalVelocity {
622 get { return _rotationalVelocity; }
623 set { _rotationalVelocity = value; }
624 }
625 public override OMV.Vector3 ForceRotationalVelocity {
626 get { return _rotationalVelocity; }
627 set { _rotationalVelocity = value; }
628 }
629 public override bool Kinematic { 620 public override bool Kinematic {
630 get { return _kinematic; } 621 get { return _kinematic; }
631 set { _kinematic = value; } 622 set { _kinematic = value; }
@@ -716,8 +707,6 @@ public sealed class BSCharacter : BSPhysObject
716 707
717 public override void AddAngularForce(bool inTaintTime, OMV.Vector3 force) { 708 public override void AddAngularForce(bool inTaintTime, OMV.Vector3 force) {
718 } 709 }
719 public override void SetMomentum(OMV.Vector3 momentum) {
720 }
721 710
722 // The avatar's physical shape (whether capsule or cube) is unit sized. BulletSim sets 711 // The avatar's physical shape (whether capsule or cube) is unit sized. BulletSim sets
723 // the scale of that unit shape to create the avatars full size. 712 // the scale of that unit shape to create the avatars full size.
@@ -841,7 +830,7 @@ public sealed class BSCharacter : BSPhysObject
841 RawVelocity = entprop.Velocity; 830 RawVelocity = entprop.Velocity;
842 831
843 _acceleration = entprop.Acceleration; 832 _acceleration = entprop.Acceleration;
844 _rotationalVelocity = entprop.RotationalVelocity; 833 RawRotationalVelocity = entprop.RotationalVelocity;
845 834
846 // Do some sanity checking for the avatar. Make sure it's above ground and inbounds. 835 // Do some sanity checking for the avatar. Make sure it's above ground and inbounds.
847 if (PositionSanityCheck(true)) 836 if (PositionSanityCheck(true))
@@ -861,7 +850,7 @@ public sealed class BSCharacter : BSPhysObject
861 // PhysScene.PostUpdate(this); 850 // PhysScene.PostUpdate(this);
862 851
863 DetailLog("{0},BSCharacter.UpdateProperties,call,pos={1},orient={2},vel={3},accel={4},rotVel={5}", 852 DetailLog("{0},BSCharacter.UpdateProperties,call,pos={1},orient={2},vel={3},accel={4},rotVel={5}",
864 LocalID, RawPosition, RawOrientation, RawVelocity, _acceleration, _rotationalVelocity); 853 LocalID, RawPosition, RawOrientation, RawVelocity, _acceleration, RawRotationalVelocity);
865 } 854 }
866} 855}
867} 856}