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

llRot2Axis() public method

Returns the axis of rotation for a quaternion
public llRot2Axis ( OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion rot ) : OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3
rot OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion
return OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3
        public LSL_Vector llRot2Axis(LSL_Rotation rot)
        {
            m_host.AddScriptLPS(1);

            if (Math.Abs(rot.s) > 1) // normalization needed
                rot.Normalize();

            double s = Math.Sqrt(1 - rot.s * rot.s);
            if (s < 0.001)
            {
                return new LSL_Vector(1, 0, 0);
            }
            else
            {
                double invS = 1.0 / s;
                if (rot.s < 0) invS = -invS;
                return new LSL_Vector(rot.x * invS, rot.y * invS, rot.z * invS);
            }
        }
LSL_Api