00001 #ifndef __SCENEMANAGER_HPP__ 00002 #define __SCENEMANAGER_HPP__ 00003 00004 #include <QObject> 00005 #include <QTimer> 00006 #include <list> 00007 #include "animal.hpp" 00008 #include "obstacles.hpp" 00009 #include "history.hpp" 00010 #include "sceneConfig.hpp" 00011 00012 00020 class SceneManager : public QObject { 00021 Q_OBJECT 00022 protected: 00023 //informacje o scenie w danym momencie 00024 list<Animal> *_animals; //< lista zwierzakow (ofiary)*/ 00025 list<Animal> *_raptors; //< lista zwierzakow (drapiezcy)*/ 00026 Obstacles *_obs; //< przeszkody */ 00027 SceneConfig *_cfg; //< konfiguracja sceny */ 00028 unsigned int _simTime; //< czas symulacji dla biezacego interwalu */ 00029 00030 list<Animal>::iterator _iterAnim; //< miejsce na iterator */ 00031 list<Animal>::iterator _iterAnim_; //< miejsce na iterator */ 00032 list<Animal_> _animals_; //< miejsce na liste */ 00033 list<Animal_> _raptors_; //< miejsce na liste */ 00034 00035 History *_hist; //< historia symulacji */ 00036 QTimer *_timer; //<zegar, 'pilnujacy' kroki symulacji */ 00037 00038 protected: 00045 void step_(list<Animal> &animals, bool isRaptor=false); 00046 00047 protected slots: 00051 void step(); 00052 00053 public slots: 00054 00058 void play(); 00059 00063 void pause(); 00064 00065 public: 00074 SceneManager(SceneConfig *cfg, list<Animal> *animals, 00075 list<Animal> *raptors, Obstacles *obs=0, History *hist=0); 00076 00077 00084 void AnimalToAnimal_(list<Animal> &anim, list<Animal_> &anim_); 00085 00090 History* getHistory() const; 00091 }; 00092 00093 #endif 00094