3
#include <OgreRenderTargetListener.h>
4
#include "../ogre/QTimer.h"
8
public Ogre::FrameListener, public Ogre::WindowEventListener,
9
public OIS::KeyListener, public OIS::MouseListener
10
//public Ogre::RenderTargetListener
13
BaseApp(); virtual ~BaseApp();
14
virtual void Run( bool showDialolg );
16
class SplineRoad* road; //-
19
HANDLE hpr; QTimer timer;
20
void OnTimer(double dTime);
23
bool mShowDialog;//, mShutDown;
24
bool setup(), configure(); void updateStats();
27
virtual void createScene() = 0;
28
virtual void destroyScene();
30
void createCamera(), createFrameListener();
31
void setupResources(), createResourceListener(), loadResources();
35
virtual bool frameStarted(const FrameEvent& evt);
36
virtual bool frameRenderingQueued(const FrameEvent& evt);
37
virtual bool frameEnded(const FrameEvent& evt);
38
virtual void processMouse() { }
42
virtual bool keyPressed(const OIS::KeyEvent &arg);
43
virtual bool keyReleased(const OIS::KeyEvent &arg);
45
bool mouseMoved(const OIS::MouseEvent &arg);
46
bool mousePressed(const OIS::MouseEvent &arg, OIS::MouseButtonID id);
47
bool mouseReleased(const OIS::MouseEvent &arg, OIS::MouseButtonID id);
48
void windowResized(RenderWindow* rw), windowClosed(RenderWindow* rw);
50
/// input event queues for gui ------------------------------------
51
struct CmdKey { public:
54
unsigned int text; bool gui;
55
CmdKey() : key(OIS::KC_UNASSIGNED), text(0) { }
56
CmdKey(const OIS::KeyEvent& k) : key(k.key), text(k.text) { }
58
struct CmdMouseMove { public:
61
CmdMouseMove(const OIS::MouseEvent& m) : ms(m.state) { }
63
struct CmdMouseBtn { public:
64
OIS::MouseState ms; OIS::MouseButtonID btn;
66
CmdMouseBtn(const OIS::MouseEvent& m, OIS::MouseButtonID b) : ms(m.state),btn(b) { }
69
//std::deque<CmdKey> cmdKeyPress, cmdKeyRel;
70
//std::deque<CmdMouseMove> cmdMouseMove;
71
//std::deque<CmdMouseBtn> cmdMousePress, cmdMouseRel;
72
CmdKey* cmdKeyPress, *cmdKeyRel; int i_cmdKeyPress, i_cmdKeyRel;
73
CmdMouseMove* cmdMouseMove; int i_cmdMouseMove;
74
CmdMouseBtn* cmdMousePress, *cmdMouseRel; int i_cmdMousePress, i_cmdMouseRel;
78
Root *mRoot; SceneManager* mSceneMgr;
79
Viewport* mViewport; RenderWindow* mWindow;
80
Camera* mCamera, *mCameraT;
81
Vector3 /*mCamPosPrv,mCamDirPrv,*/mCamPosOld,mCamDirOld;
84
OIS::InputManager* mInputManager;
85
OIS::Mouse* mMouse; OIS::Keyboard* mKeyboard;
89
Overlay* mDebugOverlay;
90
OverlayElement* ovFps, *ovTri, *ovBat, *ovSt,
91
*ovPos, *ovDbg, *ovInfo, *ovStat, *ovFocus, *ovFocBck; Real fStFade;
93
bool alt, ctrl, shift; // key modifiers
94
bool mbLeft, mbRight, mbMiddle; // mouse buttons
95
String mDebugText, mFilText; // info texts
96
bool mbWireFrame, mShowCamPos, mStatsOn;
101
bool bMoveCam; int mx,my,mz; double mDTime;
102
Real mRotX, mRotY, mRotKX, mRotKY, moveMul, rotMul;
104
enum ED_MODE { ED_Deform=0, ED_Smooth, /*ED_Paint,*/ ED_Road, ED_Start, ED_PrvCam, ED_ALL }
109
bool bGuiFocus; // gui shown
110
MyGUI::Gui* mGUI; MyGUI::OgrePlatform* mPlatform;
111
MyGUI::WidgetPtr mWndOpts, mWndBrush, mWndCam,
112
mWndRoadCur, mWndRoadNew, mWndRoadStats; // gui windows
113
MyGUI::TabPtr mWndTabs;
116
inline bool bCam() { return bMoveCam && !bGuiFocus; }
117
inline bool bEdit() { return !bMoveCam && !bGuiFocus; }
b'\\ No newline at end of file'