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

llGetRot() public method

See http://lslwiki.net/lslwiki/wakka.php?wakka=ChildRotation
public llGetRot ( ) : OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion
return OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion
        public LSL_Rotation llGetRot()
        {
            // unlinked or root prim then use llRootRotation
            // see llRootRotaion for references.
            if (m_host.LinkNum == 0 || m_host.LinkNum == 1)
            {
                return llGetRootRotation();
            }

            m_host.AddScriptLPS(1);
            Quaternion q = m_host.GetWorldRotation();

            if (m_host.ParentGroup != null && m_host.ParentGroup.AttachmentPoint != 0)
            {
                ScenePresence avatar = World.GetScenePresence(m_host.ParentGroup.AttachedAvatar);
                if (avatar != null)
                {
                    if ((avatar.AgentControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_MOUSELOOK) != 0)
                        q = avatar.CameraRotation * q; // Mouselook
                    else
                        q = avatar.Rotation * q; // Currently infrequently updated so may be inaccurate
                }
            }

            return new LSL_Rotation(q.X, q.Y, q.Z, q.W);
        }
LSL_Api