aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/BulletSPlugin
diff options
context:
space:
mode:
authorRobert Adams2013-05-22 16:06:06 -0700
committerRobert Adams2013-05-22 16:06:06 -0700
commit61cdf9390d8dc124b0ef3afabb5bcb63328686eb (patch)
tree9dd711b5cde974b113605b3d4627236ae68f6dac /OpenSim/Region/Physics/BulletSPlugin
parentImplement llSetSoundQueueing(). (diff)
downloadopensim-SC_OLD-61cdf9390d8dc124b0ef3afabb5bcb63328686eb.zip
opensim-SC_OLD-61cdf9390d8dc124b0ef3afabb5bcb63328686eb.tar.gz
opensim-SC_OLD-61cdf9390d8dc124b0ef3afabb5bcb63328686eb.tar.bz2
opensim-SC_OLD-61cdf9390d8dc124b0ef3afabb5bcb63328686eb.tar.xz
BulletSim: fix problem with walking up stairs that are oriented
in certain directions. The problem was really that the avatar capsule orientation was being set incorrectly.
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin')
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs11
1 files changed, 9 insertions, 2 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs
index ff5b6ab..48f842e 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs
@@ -483,8 +483,15 @@ public sealed class BSCharacter : BSPhysObject
483 { 483 {
484 // Bullet assumes we know what we are doing when forcing orientation 484 // Bullet assumes we know what we are doing when forcing orientation
485 // so it lets us go against all the rules and just compensates for them later. 485 // so it lets us go against all the rules and just compensates for them later.
486 // This keeps us from flipping the capsule over which the veiwer does not understand. 486 // This forces rotation to be only around the Z axis and doesn't change any of the other axis.
487 ForceOrientation = new OMV.Quaternion(0, 0, _orientation.Z,0); 487 // This keeps us from flipping the capsule over which the veiwer does not understand.
488 float oRoll, oPitch, oYaw;
489 _orientation.GetEulerAngles(out oRoll, out oPitch, out oYaw);
490 OMV.Quaternion trimmedOrientation = OMV.Quaternion.CreateFromEulers(0f, 0f, oYaw);
491 // DetailLog("{0},BSCharacter.setOrientation,taint,val={1},valDir={2},conv={3},convDir={4}",
492 // LocalID, _orientation, OMV.Vector3.UnitX * _orientation,
493 // trimmedOrientation, OMV.Vector3.UnitX * trimmedOrientation);
494 ForceOrientation = trimmedOrientation;
488 }); 495 });
489 } 496 }
490 } 497 }