Skip to main content

GameTimer Class

A game timer identified by a GameTimerId. More...

Declaration

class helios::engine::mechanics::timing::GameTimer { ... }

Public Constructors Index

GameTimer (const helios::engine::mechanics::timing::types::GameTimerId gameTimerId)

Constructs a GameTimer with the given identifier. More...

Public Member Functions Index

helios::engine::mechanics::timing::types::GameTimerIdgameTimerId () const noexcept

Returns the timer identifier. More...

voidreset (const TimerState state=TimerState::Undefined) noexcept

Resets the elapsed time to zero and sets timer state to Undefined. More...

voidrestart () noexcept

Resets timer by resetting its internal counter and setting its state to TimerState::Running. More...

voidcancel () noexcept

Cancels this timer by setting its state to TimerState::Cancelled. More...

voidsetDuration (float duration)

Sets the duration limit. More...

floatduration () const noexcept

Returns the duration limit. More...

floatelapsed () const noexcept

Returns the accumulated elapsed time. More...

TimerStatestate () const noexcept

Returns the current timer state. More...

voidsetState (const TimerState state) noexcept

Sets the timer state. More...

boolshouldUpdate () const noexcept

Returns whether this timer should accumulate time. More...

boolisFinished () const noexcept

Returns whether this timer's internal state represents the Finished-state. More...

TimerRevisiontimerRevision () const noexcept

Returns the current revision counter. More...

voidupdate (const float ft)

Advances the timer by the given frame time. More...

Private Member Attributes Index

TimerRevisiontimerRevision_ {}

Monotonically increasing revision counter, incremented on each update. More...

GameTimerIdgameTimerId_

Unique identifier for this timer. More...

floatelapsed_ {}

Accumulated elapsed time in seconds. More...

TimerStatetimerState_ {}

Current state of the timer. More...

floatduration_ = 0.0f

Optional duration limit in seconds. More...

Description

A game timer identified by a GameTimerId.

Tracks elapsed time while in the Running state. Each update increments a revision counter that observers can use to detect changes.

See Also

TimerManager

See Also

GameTimerBindingComponent

Definition at line 27 of file GameTimer.ixx.

Public Constructors

GameTimer()

helios::engine::mechanics::timing::GameTimer::GameTimer (const helios::engine::mechanics::timing::types::GameTimerId gameTimerId)
inline explicit

Constructs a GameTimer with the given identifier.

Parameters
gameTimerId

The unique identifier for this timer.

Definition at line 61 of file GameTimer.ixx.

Reference gameTimerId.

Public Member Functions

cancel()

void helios::engine::mechanics::timing::GameTimer::cancel ()
inline noexcept

Cancels this timer by setting its state to TimerState::Cancelled.

See Also

reset

Definition at line 98 of file GameTimer.ixx.

98 void cancel() noexcept {
100 }

References helios::engine::mechanics::timing::types::Cancelled and reset.

duration()

float helios::engine::mechanics::timing::GameTimer::duration ()
inline nodiscard noexcept

Returns the duration limit.

Returns

The duration in seconds.

Definition at line 116 of file GameTimer.ixx.

116 [[nodiscard]] float duration() const noexcept {
117 return duration_;
118 }

Referenced by setDuration.

elapsed()

float helios::engine::mechanics::timing::GameTimer::elapsed ()
inline nodiscard noexcept

Returns the accumulated elapsed time.

Returns

Elapsed time in seconds.

Definition at line 125 of file GameTimer.ixx.

125 [[nodiscard]] float elapsed() const noexcept {
126 return elapsed_;
127 }

gameTimerId()

helios::engine::mechanics::timing::types::GameTimerId helios::engine::mechanics::timing::GameTimer::gameTimerId ()
inline nodiscard noexcept

Returns the timer identifier.

Returns

The GameTimerId assigned to this timer.

Definition at line 69 of file GameTimer.ixx.

70 return gameTimerId_;
71 }

Referenced by GameTimer.

isFinished()

bool helios::engine::mechanics::timing::GameTimer::isFinished ()
inline nodiscard noexcept

Returns whether this timer's internal state represents the Finished-state.

Returns

True if the timer is finished.

Definition at line 162 of file GameTimer.ixx.

162 [[nodiscard]] bool isFinished() const noexcept {
163 return (timerState_ == TimerState::Finished);
164 }

Reference helios::engine::mechanics::timing::types::Finished.

reset()

void helios::engine::mechanics::timing::GameTimer::reset (const TimerState state=TimerState::Undefined)
inline noexcept

Resets the elapsed time to zero and sets timer state to Undefined.

Parameters
state

The new TimerState the timer should be resetted to.

Definition at line 78 of file GameTimer.ixx.

78 void reset(const TimerState state = TimerState::Undefined) noexcept {
79 elapsed_ = 0.0f;
81 }

References setState, state and helios::engine::mechanics::timing::types::Undefined.

Referenced by cancel and restart.

restart()

void helios::engine::mechanics::timing::GameTimer::restart ()
inline noexcept

Resets timer by resetting its internal counter and setting its state to TimerState::Running.

See Also

reset

Definition at line 89 of file GameTimer.ixx.

89 void restart() noexcept {
91 }

References reset and helios::engine::mechanics::timing::types::Running.

setDuration()

void helios::engine::mechanics::timing::GameTimer::setDuration (float duration)
inline

Sets the duration limit.

Parameters
duration

Duration in seconds.

Definition at line 107 of file GameTimer.ixx.

107 void setDuration(float duration) {
108 duration_ = duration;
109 }

Reference duration.

setState()

void helios::engine::mechanics::timing::GameTimer::setState (const TimerState state)
inline noexcept

Sets the timer state.

Parameters
state

The new TimerState.

Definition at line 143 of file GameTimer.ixx.

143 void setState(const TimerState state) noexcept {
144 timerState_ = state;
145 timerRevision_++;
146 }

Reference state.

Referenced by reset.

shouldUpdate()

bool helios::engine::mechanics::timing::GameTimer::shouldUpdate ()
inline nodiscard noexcept

Returns whether this timer should accumulate time.

Returns

True if the timer is in the Running state.

Definition at line 153 of file GameTimer.ixx.

153 [[nodiscard]] bool shouldUpdate() const noexcept {
154 return (timerState_ == TimerState::Running);
155 }

Reference helios::engine::mechanics::timing::types::Running.

Referenced by update.

state()

TimerState helios::engine::mechanics::timing::GameTimer::state ()
inline nodiscard noexcept

Returns the current timer state.

Returns

The current TimerState.

Definition at line 134 of file GameTimer.ixx.

134 [[nodiscard]] TimerState state() const noexcept {
135 return timerState_;
136 }

Referenced by reset and setState.

timerRevision()

TimerRevision helios::engine::mechanics::timing::GameTimer::timerRevision ()
inline nodiscard noexcept

Returns the current revision counter.

Returns

The TimerRevision value.

Definition at line 171 of file GameTimer.ixx.

171 [[nodiscard]] TimerRevision timerRevision() const noexcept {
172 return timerRevision_;
173 }

update()

void helios::engine::mechanics::timing::GameTimer::update (const float ft)
inline

Advances the timer by the given frame time.

Only accumulates time when the timer is in the Running state. Increments the revision counter on each successful update.

Parameters
ft

Frame time in seconds.

Definition at line 183 of file GameTimer.ixx.

183 void update(const float ft) {
184 if (!shouldUpdate() || ft == 0.0f) {
185 return;
186 }
187 timerRevision_++;
188 elapsed_ += ft;
189 }

Reference shouldUpdate.

Private Member Attributes

duration_

float helios::engine::mechanics::timing::GameTimer::duration_ = 0.0f

Optional duration limit in seconds.

Definition at line 52 of file GameTimer.ixx.

52 float duration_ = 0.0f;

elapsed_

float helios::engine::mechanics::timing::GameTimer::elapsed_ {}

Accumulated elapsed time in seconds.

Definition at line 42 of file GameTimer.ixx.

42 float elapsed_{};

gameTimerId_

GameTimerId helios::engine::mechanics::timing::GameTimer::gameTimerId_

Unique identifier for this timer.

Definition at line 37 of file GameTimer.ixx.

37 GameTimerId gameTimerId_;

timerRevision_

TimerRevision helios::engine::mechanics::timing::GameTimer::timerRevision_ {}

Monotonically increasing revision counter, incremented on each update.

Definition at line 32 of file GameTimer.ixx.

32 TimerRevision timerRevision_{};

timerState_

TimerState helios::engine::mechanics::timing::GameTimer::timerState_ {}

Current state of the timer.

Definition at line 47 of file GameTimer.ixx.

47 TimerState timerState_{};

The documentation for this class was generated from the following file:


Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.15.0.