diff options
author | Robert Adams | 2016-09-30 19:35:44 -0700 |
---|---|---|
committer | Robert Adams | 2016-09-30 19:35:44 -0700 |
commit | c7e4b14a26c2c3a265b268a9e6c43e6c93db205e (patch) | |
tree | 7e0b9878a9acab973443b633b4c61b9343f844b3 /OpenSim/Region/PhysicsModules/BulletS/BSCharacter.cs | |
parent | MySQLFSAssetData asset type is a int not a varchar (diff) | |
download | opensim-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.cs | 19 |
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 | } |