aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Physics/OdePlugin/OdePlugin.cs')
-rw-r--r--OpenSim/Region/Physics/OdePlugin/OdePlugin.cs22
1 files changed, 16 insertions, 6 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
index a50c5ae..031848c 100644
--- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
+++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
@@ -2475,10 +2475,15 @@ namespace OpenSim.Region.Physics.OdePlugin
2475 switch ((Char)ch) 2475 switch ((Char)ch)
2476 { 2476 {
2477 case 'w': 2477 case 'w':
2478 Vector3 rotate = (new Vector3(1, 0, 0) * Quaternion.CreateFromEulers(hpr.Z * Utils.DEG_TO_RAD, hpr.Y * Utils.DEG_TO_RAD, hpr.X * Utils.DEG_TO_RAD)); 2478 try
2479 {
2480 Vector3 rotate = (new Vector3(1, 0, 0) * Quaternion.CreateFromEulers(hpr.Z * Utils.DEG_TO_RAD, hpr.Y * Utils.DEG_TO_RAD, hpr.X * Utils.DEG_TO_RAD));
2479 2481
2480 xyz.X += rotate.X; xyz.Y += rotate.Y; xyz.Z += rotate.Z; 2482 xyz.X += rotate.X; xyz.Y += rotate.Y; xyz.Z += rotate.Z;
2481 ds.SetViewpoint(ref xyz, ref hpr); 2483 ds.SetViewpoint(ref xyz, ref hpr);
2484 }
2485 catch (ArgumentException)
2486 { hpr.X = 0; }
2482 break; 2487 break;
2483 2488
2484 case 'a': 2489 case 'a':
@@ -2487,10 +2492,15 @@ namespace OpenSim.Region.Physics.OdePlugin
2487 break; 2492 break;
2488 2493
2489 case 's': 2494 case 's':
2490 Vector3 rotate2 = (new Vector3(-1, 0, 0) * Quaternion.CreateFromEulers(hpr.Z * Utils.DEG_TO_RAD, hpr.Y * Utils.DEG_TO_RAD, hpr.X * Utils.DEG_TO_RAD)); 2495 try
2496 {
2497 Vector3 rotate2 = (new Vector3(-1, 0, 0) * Quaternion.CreateFromEulers(hpr.Z * Utils.DEG_TO_RAD, hpr.Y * Utils.DEG_TO_RAD, hpr.X * Utils.DEG_TO_RAD));
2491 2498
2492 xyz.X += rotate2.X; xyz.Y += rotate2.Y; xyz.Z += rotate2.Z; 2499 xyz.X += rotate2.X; xyz.Y += rotate2.Y; xyz.Z += rotate2.Z;
2493 ds.SetViewpoint(ref xyz, ref hpr); 2500 ds.SetViewpoint(ref xyz, ref hpr);
2501 }
2502 catch (ArgumentException)
2503 { hpr.X = 0; }
2494 break; 2504 break;
2495 case 'd': 2505 case 'd':
2496 hpr.X--; 2506 hpr.X--;