OpenSim.Region.ScriptEngine.Shared.Api.LSL_Api.llAngleBetween C# (CSharp) Method

llAngleBetween() public method

public llAngleBetween ( OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion a, OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion b ) : OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat
a OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion
b OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion
return OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat
        public LSL_Float llAngleBetween(LSL_Rotation a, LSL_Rotation b)
        {
            m_host.AddScriptLPS(1);

            double aa = (a.x * a.x + a.y * a.y + a.z * a.z + a.s * a.s);
            double bb = (b.x * b.x + b.y * b.y + b.z * b.z + b.s * b.s);
            double aa_bb = aa * bb;
            if (aa_bb == 0) return 0.0;
            double ab = (a.x * b.x + a.y * b.y + a.z * b.z + a.s * b.s);
            double quotient = (ab * ab) / aa_bb;
            if (quotient >= 1.0) return 0.0;
            return Math.Acos(2 * quotient - 1);
        }
LSL_Api