diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | 10 |
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) |