aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Common
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Common')
-rw-r--r--OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs10
1 files changed, 9 insertions, 1 deletions
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
index 2eb50ef..dbb61fd 100644
--- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
+++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
@@ -562,7 +562,15 @@ namespace OpenSim.Region.ScriptEngine.Common
562 LSL_Types.Vector3 axis = LSL_Types.Vector3.Norm(crossProduct); 562 LSL_Types.Vector3 axis = LSL_Types.Vector3.Norm(crossProduct);
563 double s = Math.Sin(angle / 2); 563 double s = Math.Sin(angle / 2);
564 564
565 return new LSL_Types.Quaternion(axis.x * s, axis.y * s, axis.z * s, (float)Math.Cos(angle / 2)); 565 double x = axis.x * s;
566 double y = axis.y * s;
567 double z = axis.z * s;
568 double w = Math.Cos(angle / 2);
569
570 if(Double.IsNaN(x) || Double.IsNaN(y) || Double.IsNaN(z) || Double.IsNaN(w))
571 return new LSL_Types.Quaternion(0.0f, 0.0f, 0.0f, 1.0f);
572
573 return new LSL_Types.Quaternion((float)x, (float)y, (float)z, (float)w);
566 } 574 }
567 575
568 public void llWhisper(int channelID, string text) 576 public void llWhisper(int channelID, string text)