GraphicsInteractionManager.h

Go to the documentation of this file.
00001 /*
00002  * GraphicsInteractionManager.h
00003  *
00004  *  Created on: Dec 20, 2011
00005  *      Author: sushil
00006  */
00007 
00008 
00009 #ifndef GRAPHICSINTERACTIONMANAGER_H_
00010 #define GRAPHICSINTERACTIONMANAGER_H_
00011 
00012 
00013 #include <map>
00014 
00015 #include <OgreCamera.h>
00016 /*
00017  *
00018 #include <OgreLogManager.h>
00019 */
00020 #include <OgreRoot.h>
00021 #include <OgreViewport.h>
00022 #include <OgreSceneManager.h>
00023 #include <OgreRenderWindow.h>
00024 #include <OgreConfigFile.h>
00025 #include <OgreSceneNode.h>
00026 
00027 /*
00028 #include <OISEvents.h>
00029 #include <OISInputManager.h>
00030 #include <OISKeyboard.h>
00031 #include <OISMouse.h>
00032 */
00033 
00034 //#include <SdkTrays.h>
00035 //#include <SdkCameraMan.h>
00036 #include <OgreFrameListener.h>
00037 #include <OgreWindowEventUtilities.h>
00038 
00039 #include <gfxNode.h>
00040 #include <const.h>
00041 #include <engine.h>
00042 #include <uiMgr.h>
00043 #include <widgetMgr.h>
00044 #include <gfxConst.h>
00045 
00046 
00047 extern const int FastEcslent::MaxEnts;
00048 
00049 namespace OgreGFX {
00050 
00051         //class GraphicsInteractionManager : public Ogre::FrameListener, public Ogre::WindowEventListener, public OIS::KeyListener, public OIS::MouseListener, OgreBites::SdkTrayListener
00052         class GraphicsInteractionManager : public Ogre::FrameListener, public Ogre::WindowEventListener {
00053         public:
00054                 GraphicsInteractionManager(FastEcslent::Engine* eng);
00055                 ~GraphicsInteractionManager(void);
00056 
00057                 void go(void);
00058                 FastEcslent::Engine* engine;
00059                 UIMgr*  uiMgr;
00060                 WidgetMgr* widgetMgr;
00061 
00062                 Ogre::Root *mRoot;
00063                 Ogre::SceneManager* mSceneMgr;
00064                 Ogre::RenderWindow* mWindow;
00065                 Ogre::Camera* mCamera;
00066 
00067                 Ogre::SceneNode* headNode;
00068                 Ogre::SceneNode* referenceNode;
00069                 Ogre::SceneNode* armoury;
00070                 Ogre::SceneNode* commandCenter;
00071                 GFXNode          gfxNodes[FastEcslent::MaxEnts];
00072                 std::map<Ogre::SceneNode*, int> sceneNodeToEntIdMap;
00073                 int              nGFXNodes;
00074                 /*
00075                 Ogre::SceneNode* entityNodes[FastEcslent::MaxEnts];
00076                 bool             selectable[FastEcslent::MaxEnts];
00077                 */
00078 
00079                 Ogre::Plane oceanSurface;
00080 
00081         public:
00082                 bool setup();
00083                 void initManagers();
00084                 bool configure(void);
00085                 void chooseSceneManager(void);
00086                 void createCamera(void);
00087                 void createFrameListener(void);
00088 
00089                 void createUIMgr(void);
00090                 void createWidgetMgr(void);
00091 //               void createInputSystem(void);
00092 
00093                 void createScene(void);// = 0; // Override me!
00094                 void destroyScene(void);
00095                 void createViewports(void);
00096                 void setupResources(void);
00097                 void createResourceListener(void);
00098                 void loadResources(void);
00099 
00100                 // Ogre::FrameListener
00101                 bool frameRenderingQueued(const Ogre::FrameEvent& evt);
00102 
00103                 // Ogre::WindowEventListener
00104                 //Adjust mouse clipping area
00105                 void windowResized(Ogre::RenderWindow* rw);
00106                 //Unattach OIS before window shutdown (very important under Linux)
00107                 void windowClosed(Ogre::RenderWindow* rw);
00108 
00109                 //Simulation bridge
00110                 void makeInitialEntityNodes();
00111                 void makeNode(FastEcslent::Entity *);
00112 
00113                 void handleDevelopingEnts();
00114                 void handleBornEnts();
00115                 void copySimState();
00116 
00117                 Ogre::String mResourcesCfg;
00118                 Ogre::String mPluginsCfg;
00119 
00120                 bool mCursorWasVisible;                    // was cursor visible before dialog appeared
00121                 bool mShutDown;
00122 
00123         };
00124 
00125 }
00126 
00127 #endif /* GRAPHICSINTERACTIONMANAGER_H_ */

Generated on Fri Dec 13 14:54:16 2013 for FastECSLent by  doxygen 1.5.4