#ifndef _OBAOGREFRAMELISTENERMODE_H #define _OBAOGREFRAMELISTENERMODE_H #include namespace OBA { class _OBAExport OgreFrameListenerMode: public Ogre::KeyListener { protected: Ogre::Real mMoveSpeed; Ogre::Degree mRotateSpeed; Ogre::Overlay* mDebugOverlay; Ogre::Camera* mCamera; Ogre::Vector3 mTranslateVector; Ogre::RenderWindow* mWindow; Ogre::Degree mRotScale; // just to stop toggles flipping too fast Ogre::Real mTimeUntilNextToggle ; Ogre::Radian mRotX, mRotY; Ogre::TextureFilterOptions mFiltering; Ogre::SceneManager *mSceneMgr; int mAniso; int mSceneDetailIndex; bool mStatsOn; bool mUseBufferedInputKeys, mUseBufferedInputMouse, mInputTypeSwitchingOn; float mMoveScale; unsigned int mNumScreenShots; unsigned int mOgreFrameListenerModeHandle; Ogre::InputReader *mInputDevice; public: OgreFrameListenerMode(Ogre::RenderWindow* win, unsigned int ogreFrameListenerModeHandle, bool useBufferedInputKeys = false, bool useBufferedInputMouse = false); virtual ~OgreFrameListenerMode(); virtual void chooseSceneManager(void); virtual Ogre::SceneManager* getSceneManager(void); virtual void createCamera(void); virtual void createViewports(void); virtual Ogre::Camera* getCamera(); virtual bool frameStarted(const Ogre::FrameEvent& evt, Ogre::InputReader *inputReader); virtual bool frameEnded(const Ogre::FrameEvent& evt); virtual void switchMouseMode(); virtual void switchKeyMode(); virtual void keyClicked(Ogre::KeyEvent* e); virtual void keyPressed(Ogre::KeyEvent* e); virtual void keyReleased(Ogre::KeyEvent* e); virtual bool processUnbufferedKeyInput(const Ogre::FrameEvent& evt); virtual bool processUnbufferedMouseInput(const Ogre::FrameEvent& evt); virtual void moveCamera(); virtual void showDebugOverlay(bool show); virtual void updateStats(void); virtual void createScene(void); // pure virtual - this has to be overridden virtual void destroyScene(void); // Optional to override this }; } #endif