Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/FICN/src/orxonox/orxonox.h @ 531

Last change on this file since 531 was 531, checked in by scheusso, 16 years ago

started implementing presentation ;)

File size: 2.0 KB
Line 
1/**
2 @file  orxonox.h
3 @brief Main Orxonox Class File
4 @author Benjamin Knecht <beni_at_orxonox.net>
5 */
6
7#ifndef ORXONOX_H
8#define ORXONOX_H
9
10//#include <OgreSingleton.h>
11#include <OgreSceneManager.h>
12
13#include <OIS/OIS.h>
14
15#include "graphicsEngine.h"
16#include "../loader/LevelLoader.h"
17#include "../audio/AudioManager.h"
18#include "spaceship_steering.h"
19
20
21// TODO: Orxonox should maybe derive from BaseObject
22//! Orxonox singleton class
23namespace orxonox {
24
25  class OrxListener;
26
27  class Orxonox
28  {
29    public:
30      void init(int argc, char **argv, std::string path);
31      void start();
32      // not sure if this should be private
33      void die(/* some error code */);
34      static Orxonox* getSingleton();
35      inline SceneManager* getSceneManager() { return ogre_->getSceneManager(); };
36      inline GraphicsEngine* getOgrePointer() { return ogre_; };
37      inline SpaceshipSteering* getSteeringPointer() { return steering_; };
38    private:
39      Orxonox();
40      virtual ~Orxonox();
41      void serverInit(std::string path);
42      void clientInit(std::string path);
43      void standalone(std::string path);
44      void playableServer(std::string path);
45      void defineResources();
46      void setupRenderSystem();
47      void createRenderWindow();
48      void initializeResourceGroups();
49      void createScene(void);
50      void setupScene();
51      void setupInputSystem();
52      void createFrameListener();
53      void startRenderLoop();
54    private:
55
56      GraphicsEngine*       ogre_;      //!< our dearest graphics engine <3
57      std::string           dataPath_;  //!< path to data
58      loader::LevelLoader*  loader_;    //!< level loader builds the scene
59      audio::AudioManager*  auMan_;     //!< audio manager
60      SpaceshipSteering*        steering_;
61      static Orxonox*       singletonRef_;
62      OIS::Keyboard*        keyboard_;
63      OIS::Mouse*           mouse_;
64      OIS::InputManager*    inputManager_;
65      OrxListener*          frameListener_;
66      Ogre::Root*           root_;
67  };
68}
69#endif /* ORXONOX_H */
Note: See TracBrowser for help on using the repository browser.