Changeset 8051 for code/branches/tutorial/src/libraries/tools/Timer.h
- Timestamp:
- Mar 9, 2011, 11:27:05 AM (14 years ago)
- Location:
- code/branches/tutorial
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/tutorial
- Property svn:mergeinfo changed
/code/branches/usability merged: 8018-8041
- Property svn:mergeinfo changed
-
code/branches/tutorial/src/libraries/tools/Timer.h
r7851 r8051 81 81 #include "core/OrxonoxClass.h" 82 82 #include "core/command/Executor.h" 83 #include "tools/interfaces/TimeFactorListener.h"84 83 85 84 namespace orxonox 86 85 { 87 void delay(float delay, const std::string& command); 88 void killdelays(); 86 unsigned int delay(float delay, const std::string& command); 87 unsigned int delayreal(float delay, const std::string& command); 88 89 unsigned int addDelayedCommand(Timer* timer, float delay, const std::string& command); 89 90 void executeDelayedCommand(Timer* timer, const std::string& command); 90 91 92 void killdelay(unsigned int handle); 93 void killdelays(); 94 91 95 /** 92 @brief Timer is a helper class that executes a function after a given amount of time.96 @brief Timer is a helper class that executes a function after a given amount of seconds in game-time. 93 97 94 98 @see See @ref TimerExample "Timer.h" for an example. 99 100 The time interval of Timer depends on the game time, hence it stops if the game is paused or runs 101 slower/faster if the game-speed is modified. See RealTimer for a timer class which doesn't depend 102 on the game time. 95 103 */ 96 class _ToolsExport Timer : public TimeFactorListener104 class _ToolsExport Timer : virtual public OrxonoxClass 97 105 { 98 106 public: … … 123 131 void run(); 124 132 125 /// Re-starts the Timer: The executor will be called after @a interval seconds.133 /// Re-starts the timer: The executor will be called after @a interval seconds. 126 134 inline void startTimer() 127 135 { this->bActive_ = true; this->time_ = this->interval_; } 128 /// Stops the Timer.136 /// Stops the timer. 129 137 inline void stopTimer() 130 138 { this->bActive_ = false; this->time_ = this->interval_; } 131 /// Pauses the Timer - it will continue with the actual state if you call unpauseTimer().139 /// Pauses the timer - it will continue with the actual state if you call unpauseTimer(). 132 140 inline void pauseTimer() 133 141 { this->bActive_ = false; } 134 /// Unpauses the Timer - continues with the given state.142 /// Unpauses the timer - continues with the given state. 135 143 inline void unpauseTimer() 136 144 { this->bActive_ = true; } 137 /// Returns true if the Timer is active (neither stopped nor paused).145 /// Returns true if the timer is active (neither stopped nor paused). 138 146 inline bool isActive() const 139 147 { return this->bActive_; } 140 /// Returns the remaining time until the Timer calls the executor.148 /// Returns the remaining time until the timer calls the executor. 141 149 inline float getRemainingTime() const 142 150 { return static_cast<float>(this->time_ / 1000000.0f); } 143 /// Increases the remaining time of the Timer by the given amount of time (in seconds).151 /// Increases the remaining time of the timer by the given amount of time (in seconds). 144 152 inline void addTime(float time) 145 153 { if (time > 0.0f) this->time_ += static_cast<long long>(time * 1000000.0f); } 146 /// Decreases the remaining time of the Timer by the given amount of time (in seconds)154 /// Decreases the remaining time of the timer by the given amount of time (in seconds) 147 155 inline void removeTime(float time) 148 156 { if (time > 0.0f) this->time_ -= static_cast<long long>(time * 1000000.0f); } … … 156 164 void tick(const Clock& time); 157 165 166 protected: 167 virtual float getTimeFactor(); 168 158 169 private: 159 170 void init(); … … 163 174 long long interval_; //!< The time-interval in micro seconds 164 175 bool bLoop_; //!< If true, the executor gets called every @a interval seconds 165 bool bActive_; //!< If true, the Timer ticks and calls the executor if the time's up176 bool bActive_; //!< If true, the timer ticks and calls the executor if the time's up 166 177 bool bKillAfterCall_; //!< If true the timer gets deleted after it expired and called the executor 167 178 168 179 long long time_; //!< Internal variable, counting the time untill the next executor-call 169 180 }; 181 182 /** 183 @brief RealTimer is a helper class that executes a function after a given amount of seconds in real-time. 184 185 The time interval of RealTimer doesn't depend on the game time, it will also call the function 186 if the game is paused. See Timer for a timer class that depends on the game time. 187 */ 188 class _ToolsExport RealTimer : public Timer 189 { 190 public: 191 RealTimer(); 192 RealTimer(float interval, bool bLoop, const ExecutorPtr& executor, bool bKillAfterCall = false); 193 194 protected: 195 virtual float getTimeFactor(); 196 }; 170 197 } 171 198
Note: See TracChangeset
for help on using the changeset viewer.