www.pudn.com > TestForNetwonOgre.rar > BaseApplication.h


/* 
----------------------------------------------------------------------------- 
Filename:    BaseApplication.h 
----------------------------------------------------------------------------- 
 
This source file is generated by the Ogre AppWizard. 
 
Check out: http://conglomerate.berlios.de/wiki/doku.php?id=ogrewizards 
 
Based on the Example Framework for OGRE 
(Object-oriented Graphics Rendering Engine) 
 
Copyright (c) 2000-2007 The OGRE Team 
For the latest info, see http://www.ogre3d.org/ 
 
You may use this sample code for anything you like, it is not covered by the 
LGPL like the rest of the OGRE engine. 
----------------------------------------------------------------------------- 
*/ 
#ifndef __BaseApplication_h_ 
#define __BaseApplication_h_ 
 
#include  
#include  
#include  
 
//Use this define to signify OIS will be used as a DLL 
//(so that dll import/export macros are in effect) 
#define OIS_DYNAMIC_LIB 
#include  
 
using namespace Ogre; 
 
#include  
#include  
 
class BaseApplication : public Ogre::Singleton,  public FrameListener, public WindowEventListener, public OIS::KeyListener, public OIS::MouseListener 
{ 
public: 
	BaseApplication(void); 
	virtual ~BaseApplication(void); 
	virtual void go(void); 
	CEGUI::System *mSystem; 
	CEGUI::OgreCEGUIRenderer *mRenderer; 
 
protected: 
	virtual bool setup(); 
	virtual bool configure(void); 
	virtual void chooseSceneManager(void); 
	virtual void createCamera(void); 
	virtual void createFrameListener(void); 
	virtual void createScene(void) = 0; // Override me! 
	virtual void destroyScene(void); 
	virtual void createViewports(void); 
	virtual void setupResources(void); 
	virtual void createResourceListener(void); 
	virtual void loadResources(void); 
	virtual void updateStats(void); 
	virtual bool processUnbufferedKeyInput(const FrameEvent& evt); 
	virtual bool processUnbufferedMouseInput(const FrameEvent& evt); 
	virtual void moveCamera(); 
	virtual bool frameStarted(const FrameEvent& evt); 
	virtual bool frameEnded(const FrameEvent& evt); 
 
	void showDebugOverlay(bool show); 
	void switchMouseMode(); 
	void switchKeyMode(); 
	bool keyPressed( const OIS::KeyEvent &arg ); 
	bool keyReleased( const OIS::KeyEvent &arg ); 
	bool mouseMoved( const OIS::MouseEvent &arg ); 
	bool mousePressed( const OIS::MouseEvent &arg, OIS::MouseButtonID id ); 
	bool mouseReleased( const OIS::MouseEvent &arg, OIS::MouseButtonID id ); 
	CEGUI::MouseButton convertButton(OIS::MouseButtonID buttonID); 
	//Adjust mouse clipping area 
	virtual void windowResized(RenderWindow* rw); 
	//Unattach OIS before window shutdown (very important under Linux) 
	virtual void windowClosed(RenderWindow* rw); 
 
 
	Root *mRoot; 
	Camera* mCamera; 
	SceneManager* mSceneMgr; 
	RenderWindow* mWindow; 
	int mSceneDetailIndex ; 
	Real mMoveSpeed; 
	Degree mRotateSpeed; 
	Overlay* mDebugOverlay; 
	std::string mDebugText; 
	//OIS Input devices 
	OIS::InputManager* mInputManager; 
	OIS::Mouse*    mMouse; 
	OIS::Keyboard* mKeyboard; 
	Vector3 mTranslateVector; 
	bool mStatsOn; 
	bool mUseBufferedInputKeys, mUseBufferedInputMouse, mInputTypeSwitchingOn; 
	unsigned int mNumScreenShots; 
	float mMoveScale; 
	Degree mRotScale; 
	Real mTimeUntilNextToggle; // just to stop toggles flipping too fast 
	Radian mRotX, mRotY; 
	TextureFilterOptions mFiltering; 
	int mAniso; 
	bool mKeyPressed[OIS::KC_MEDIASELECT]; 
}; 
 
#endif // #ifndef __BaseApplication_h_