aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs9
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs17
2 files changed, 13 insertions, 13 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index ec7fde0..012ba90 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -467,13 +467,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
467 467
468 public LSL_Vector llVecNorm(LSL_Vector v) 468 public LSL_Vector llVecNorm(LSL_Vector v)
469 { 469 {
470 m_host.AddScriptLPS(1); 470 m_host.AddScriptLPS(1);
471 double mag = LSL_Vector.Mag(v); 471 return LSL_Vector.Norm(v);
472 LSL_Vector nor = new LSL_Vector();
473 nor.x = v.x / mag;
474 nor.y = v.y / mag;
475 nor.z = v.z / mag;
476 return nor;
477 } 472 }
478 473
479 public LSL_Float llVecDist(LSL_Vector a, LSL_Vector b) 474 public LSL_Float llVecDist(LSL_Vector a, LSL_Vector b)
diff --git a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
index 1ea52c5..326f327 100644
--- a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
@@ -257,12 +257,17 @@ namespace OpenSim.Region.ScriptEngine.Shared
257 public static double Mag(Vector3 v) 257 public static double Mag(Vector3 v)
258 { 258 {
259 return Math.Sqrt(v.x * v.x + v.y * v.y + v.z * v.z); 259 return Math.Sqrt(v.x * v.x + v.y * v.y + v.z * v.z);
260 } 260 }
261 261
262 public static Vector3 Norm(Vector3 vector) 262 public static Vector3 Norm(Vector3 vector)
263 { 263 {
264 double mag = Mag(vector); 264 double mag = Mag(vector);
265 return new Vector3(vector.x / mag, vector.y / mag, vector.z / mag); 265 if (mag > 0.0)
266 {
267 double invMag = 1.0 / mag;
268 return vector * invMag;
269 }
270 return new Vector3(0, 0, 0);
266 } 271 }
267 272
268 #endregion 273 #endregion