public override void update(double timeSinceLastFrame)
        {
            m_FrameEvent.timeSinceLastFrame = (int)timeSinceLastFrame;

            AdvancedMogreFramework.Singleton.m_pTrayMgr.frameRenderingQueued(m_FrameEvent);

            if (m_bQuit == true)
            {
                popAppState();
                return;
            }

            if (!AdvancedMogreFramework.Singleton.m_pTrayMgr.isDialogVisible())
            {
                m_pCameraMan.frameRenderingQueued(m_FrameEvent); // if dialog isn't up, then update the camera

                if (m_pDetailsPanel.isVisible())                 // if details panel is visible, then update its contents
                {
                    m_pDetailsPanel.setParamValue(0, StringConverter.ToString(m_pCamera.DerivedPosition.x));
                    m_pDetailsPanel.setParamValue(1, StringConverter.ToString(m_pCamera.DerivedPosition.y));
                    m_pDetailsPanel.setParamValue(2, StringConverter.ToString(m_pCamera.DerivedPosition.z));
                    m_pDetailsPanel.setParamValue(4, StringConverter.ToString(m_pCamera.DerivedOrientation.w));
                    m_pDetailsPanel.setParamValue(5, StringConverter.ToString(m_pCamera.DerivedOrientation.x));
                    m_pDetailsPanel.setParamValue(6, StringConverter.ToString(m_pCamera.DerivedOrientation.y));
                    m_pDetailsPanel.setParamValue(7, StringConverter.ToString(m_pCamera.DerivedOrientation.z));
                }
            }
        }
        public override void update(double timeSinceLastFrame)
        {
            if (physxScene != null && !paused)
            {
                physxScene.FlushStream();
                physxScene.FetchResults(SimulationStatuses.AllFinished, false);
                physxScene.Simulate(timeSinceLastFrame);
            }

            m_FrameEvent.timeSinceLastFrame = (float)timeSinceLastFrame;
            if (AdvancedMogreFramework.Singleton.m_pTrayMgr != null)
            {
                AdvancedMogreFramework.Singleton.m_pTrayMgr.frameRenderingQueued(m_FrameEvent);
            }

            if (m_bQuit == true)
            {
                popAppState();
                return;
            }
            if (AdvancedMogreFramework.Singleton.m_pTrayMgr != null)
            {
                if (!AdvancedMogreFramework.Singleton.m_pTrayMgr.isDialogVisible())
                {
                    if (m_pDetailsPanel != null && m_pDetailsPanel.isVisible())
                    {
                        m_pDetailsPanel.setParamValue(0, m_pCamera.DerivedPosition.x.ToString());
                        m_pDetailsPanel.setParamValue(1, m_pCamera.DerivedPosition.y.ToString());
                        m_pDetailsPanel.setParamValue(2, m_pCamera.DerivedPosition.z.ToString());
                        m_pDetailsPanel.setParamValue(3, m_pCamera.DerivedOrientation.w.ToString());
                        m_pDetailsPanel.setParamValue(4, m_pCamera.DerivedOrientation.x.ToString());
                        m_pDetailsPanel.setParamValue(5, m_pCamera.DerivedOrientation.y.ToString());
                        m_pDetailsPanel.setParamValue(6, m_pCamera.DerivedOrientation.z.ToString());
                        if (m_bSettingsMode)
                        {
                            m_pDetailsPanel.setParamValue(7, "Buffered Input");
                        }
                        else
                        {
                            m_pDetailsPanel.setParamValue(7, "Un-Buffered Input");
                        }
                    }
                }
            }

            m_MoveScale = m_MoveSpeed * (float)timeSinceLastFrame;
            m_RotScale  = m_RotateSpeed * (float)timeSinceLastFrame;

            m_TranslateVector = Mogre.Vector3.ZERO;

            getInput();
            moveCamera();
        }
        public override void update(double timeSinceLastFrame)
        {
            m_FrameEvent.timeSinceLastFrame = (int)timeSinceLastFrame;

            AdvancedMogreFramework.Singleton.m_pTrayMgr.frameRenderingQueued(m_FrameEvent);

            if (m_bQuit == true)
            {
                popAppState();
                return;
            }

            if (!AdvancedMogreFramework.Singleton.m_pTrayMgr.isDialogVisible())
            {
                m_pCameraMan.frameRenderingQueued(m_FrameEvent); // if dialog isn't up, then update the camera

                if (m_pDetailsPanel.isVisible())                 // if details panel is visible, then update its contents
                {
                    m_pDetailsPanel.setParamValue(0, StringConverter.ToString(m_pCamera.DerivedPosition.x));
                    m_pDetailsPanel.setParamValue(1, StringConverter.ToString(m_pCamera.DerivedPosition.y));
                    m_pDetailsPanel.setParamValue(2, StringConverter.ToString(m_pCamera.DerivedPosition.z));
                    m_pDetailsPanel.setParamValue(4, StringConverter.ToString(m_pCamera.DerivedOrientation.w));
                    m_pDetailsPanel.setParamValue(5, StringConverter.ToString(m_pCamera.DerivedOrientation.x));
                    m_pDetailsPanel.setParamValue(6, StringConverter.ToString(m_pCamera.DerivedOrientation.y));
                    m_pDetailsPanel.setParamValue(7, StringConverter.ToString(m_pCamera.DerivedOrientation.z));
                }
            }

            for (int i = 0; i < actorNodeList.Count; i++)
            {
                actorNodeList[i].Update((float)timeSinceLastFrame);
            }

            physicsScene.FlushStream();
            physicsScene.FetchResults(SimulationStatuses.AllFinished, true);
            physicsScene.Simulate(timeSinceLastFrame);
        }