Go to the documentation of this file.00001 #pragma once
00002
00003 #define NOMINMAX
00004 #include "windows.h"
00005 #include "glew.h"
00006 #include <vector>
00007 #include <string>
00008 #include "constants.h"
00009 #include "GSingletonManager.h"
00010 #include "GGraphicsObject.h"
00011 #include "GCamera.h"
00012 #include "GLightSource.h"
00013 #include "GKeyboardManager.h"
00014 #include "GMouseManager.h"
00015 #include "GModel.h"
00016 #include "GTextureManager.h"
00017 #include "GModelLoader.h"
00018 #include "GPhysicsManager.h"
00019 #include "GSkyBox.h"
00020 #include "GGame.h"
00021 #include "Bullet.h"
00022 #include "Portal.h"
00023 #include "SpawnPoint.h"
00024 using namespace std;
00025
00026 class GHud;
00027 class GSceneManager : public GSingletonManager<GSceneManager>
00028 {
00029 protected:
00030 unsigned int ActiveCamera;
00031 vector<GCamera*> Cameras;
00032 vector<GLightSource*> LightSources;
00033 vector<GModel*> Models;
00034 vector<GModel*> ModelsToDelete;
00035 vector<Bullet*> BulletsToDelete;
00036 vector<GMesh*> StaticMeshes;
00037 vector<Bullet*> Bullets;
00038 vector<SpawnPoint*> SpawnPoints;
00039 vector<Portal*>Portals;
00040 GSkyBox *SkyBox;
00041 GHud *Hud;
00042
00043 public:
00044 vector<GModel*> GetModels(void);
00045 GHud *GetHud();
00046 GSkyBox *GetSkyBox();
00047 GCamera *GetActiveCamera();
00048 void SetActiveCamera(const int newActiveCam);
00049 void SetActiveCamera(GCamera *cam);
00050 int AddCamera(GCamera *cam);
00051 int RemoveCamera(unsigned int i);
00052 int ProcessStateMachine(GModel *Model);
00053 int InitializeAnimationManagers(double now);
00054 int Draw(double time, double dtime, int FLAGS);
00055 int AddModel(GModel *Model, int FLAGS);
00056 vector <GModel*> GetModelsByTag(char *Tag);
00057 int UpdateModels(double time, double dtime, int FLAGS);
00058 int LoadScene(std::string scene);
00059 int Dispose(int FLAGS);
00060 int UpdateControllers(double time, double dt, int FLAGS);
00061 int UpdateCameras(double time, double dt, int FLAGS);
00062 int UpdatePortals(double time, double dt, int FLAGS);
00063 vector <GModel*> GetModelsByTagValue(char *Tag, char *Value);
00064 int RegisterBullet(Bullet *_bullet, int FLAGS);
00065 int RegisterPortal(Portal *_portal, int FLAGS);
00066 int DrawGrid(GMatrix16* viewmatrix, int FLAGS);
00067 int CleanUp(int FLAGS);
00068 int MarkModelForRemoval(GModel* _Model);
00069 int MarkBulletForRemoval(Bullet *Bullet);
00070 int RemoveDeadModels(int FLAGS);
00071 int RemoveModel(GModel* _model);
00072 int RemoveDeadBullets(int FLAGS);
00073 int RemoveBullet(Bullet *_bullet);
00074 int HandleBullets(double time, double dtime,
00075 GMatrix16 *viewmatrix,
00076 GMatrix16 *worldmatrix, int FLAGS);
00077 int UpdateSpawnPoints(double time, double dt, int FLAGS);
00078 };
00079