The ITimeline interface. More...
#include "murl_logic_i_timeline.h"
Public Member Functions | |
virtual IStepablePtr | GetStepable ()=0 |
Get the stepable interface. More... | |
virtual Bool | SetAppTimeline (IAppTimelinePtr appTimeline)=0 |
Set the timeline callback object. More... | |
virtual void | Evaluate ()=0 |
Evaluate the current time immediately. More... | |
virtual void | Reset ()=0 |
Reset the timeline. More... | |
virtual void | ResetTo (Real startTime)=0 |
Reset the timeline to a specified start time. More... | |
virtual Bool | Start ()=0 |
Start or continue the timeline. More... | |
virtual Bool | Start (Real startTime, Real endTime)=0 |
Start the timeline with specified parameters. More... | |
virtual Bool | Start (Real startTime, Real endTime, SInt32 numberOfLoops)=0 |
Start the timeline with specified parameters. More... | |
virtual Bool | Start (Real startTime, Real endTime, Real loopStartTime, Real loopEndTime, SInt32 numberOfLoops)=0 |
Start the timeline with specified parameters. More... | |
virtual Bool | Pause ()=0 |
Pause the timeline. More... | |
virtual Bool | Stop ()=0 |
Stop the timeline. More... | |
virtual Bool | Rewind ()=0 |
Rewind the timeline. More... | |
virtual void | SetStartTime (Real startTime)=0 |
Set the start time. More... | |
virtual Real | GetStartTime () const =0 |
Get the start time. More... | |
virtual void | SetEndTime (Real endTime)=0 |
Set the end time. More... | |
virtual Real | GetEndTime () const =0 |
Get the end time. More... | |
virtual void | SetLoopStartTime (Real startTime)=0 |
Set the loop start time. More... | |
virtual Real | GetLoopStartTime () const =0 |
Get the loop start time. More... | |
virtual void | SetLoopEndTime (Real endTime)=0 |
Set the loop end time. More... | |
virtual Real | GetLoopEndTime () const =0 |
Get the loop end time. More... | |
virtual void | SetNumberOfLoops (SInt32 numberOfLoops)=0 |
Set the number of loops. More... | |
virtual SInt32 | GetNumberOfLoops () const =0 |
Get the number of loops. More... | |
virtual void | SetTimeScale (Real timeScale)=0 |
Set the time scale factor. More... | |
virtual Real | GetTimeScale () const =0 |
Get the time scale factor. More... | |
virtual void | SetAutoRewindEnabled (Bool enabled)=0 |
Enable/disable automatic rewind. More... | |
virtual Bool | IsAutoRewindEnabled () const =0 |
Check if automatic rewind is enabled. More... | |
virtual Bool | IsRunning () const =0 |
Check if the timeline is running. More... | |
virtual Bool | IsPaused () const =0 |
Check if the timeline is paused. More... | |
virtual Bool | IsStopped () const =0 |
Check if the timeline is stopped. More... | |
virtual Bool | WasStarted () const =0 |
Check if the timeline was started from stopped state. More... | |
virtual Bool | WasRunning () const =0 |
Check if the timeline has stopped running. More... | |
virtual Bool | IsOrWasRunning () const =0 |
Check if the timeline is or was running. More... | |
virtual Bool | HasPassedTime (Real time) const =0 |
Check if the current time has passed a specified time within the most recent tick. More... | |
virtual Bool | HasPassedLoop (SInt32 loop) const =0 |
Check if the current loop has passed a specified loop number within the most recent tick. More... | |
virtual Double | GetCurrentTime () const =0 |
Get the current time. More... | |
virtual Double | GetRemainingTime () const =0 |
Get the remaining time. More... | |
virtual void | SetCurrentTime (Double time)=0 |
Set the current time. More... | |
virtual SInt32 | GetCurrentLoop () const =0 |
Get the current loop. More... | |
virtual SInt32 | GetRemainingLoops () const =0 |
Get the remaining loops. More... | |
virtual Bool | SetCurrentLoop (SInt32 loop)=0 |
Set the current loop. More... | |
virtual IEnums::AnimationState | GetCurrentState () const =0 |
Get the current animation state. More... | |
Detailed Description
The ITimeline interface.
The timeline is evaluated each logic tick using the IStepable interface.
A simple timeline is specified by a start/end time.
The timeline can be controlled by Start(), Pause() and Stop() calls.
All setters are taking effect immediately even if the timeline is running.
A more detailed timeline can use a loop start/end time, resulting in 3 phases:
- Intro running from start to loop start time.
- Loop running from loop start to loop end time several times.
- Outro running from loop end to end time.
The number of loops specifies the counter for of the loop phase.
Endless looping can be achieved by setting number of loops to < 0.
If number of loops is 0 the loop start/end time is ignored which means the timeline simply runs from start to end time.
If the start time is equal to the loop start time the intro phase is skipped.
If the end time is equal to the loop end time the outro phase is skipped.
Member Function Documentation
◆ GetStepable()
|
pure virtual |
Get the stepable interface.
The ITimeline conforms to the IStepable interface.
- Returns
- The stepable interface shared pointer.
Implemented in Murl::Logic::Timeline.
◆ SetAppTimeline()
|
pure virtual |
Set the timeline callback object.
The IAppTimeline::OnEvaluate() callback method is processed if the timeline's current time is set by IStepable::ProcessTick() or Rewind().
- Parameters
-
appTimeline The timeline callback object.
- Returns
- true if successful.
Implemented in Murl::Logic::Timeline.
◆ Evaluate()
|
pure virtual |
Evaluate the current time immediately.
Process the IAppTimeline::OnEvaluate() callback method immediately. This method is rarely used after modifying the timeline's current time. This method is typically called when the timeline's current time was evaluated by IStepable::ProcessTick() within each logic tick. This method is called immediately by Reset(), ResetTo(), Rewind(), Start() with parameters and Stop() if auto rewind is enabled.
Implemented in Murl::Logic::Timeline.
◆ Reset()
|
pure virtual |
Reset the timeline.
Stop the timeline, reset the WasRunning() state and call Rewind(). Finally Evaluate() is called.
Implemented in Murl::Logic::Timeline, Murl::Logic::SoundFader, Murl::Logic::Animation< DataType >, and Murl::Logic::Animation< Vector >.
◆ ResetTo()
|
pure virtual |
Reset the timeline to a specified start time.
Set the start time and call Reset(). Finally Evaluate() is called.
- Parameters
-
startTime The start time in seconds.
Implemented in Murl::Logic::Timeline.
◆ Start() [1/4]
|
pure virtual |
Start or continue the timeline.
Reset the WasRunning() state. Does not modify the current time and loop.
- Returns
- true if successful.
Implemented in Murl::Logic::Timeline.
◆ Start() [2/4]
Start the timeline with specified parameters.
Set start/end time, calls Rewind() and Start(). Finally Evaluate() is called.
- Parameters
-
startTime The start time in seconds. endTime The end time in seconds.
- Returns
- true if successful.
Implemented in Murl::Logic::Timeline.
◆ Start() [3/4]
|
pure virtual |
Start the timeline with specified parameters.
Set start/end time, number of loops, calls Rewind() and Start(). Finally Evaluate() is called.
- Parameters
-
startTime The start time in seconds. endTime The end time in seconds. numberOfLoops Number of loops.
- Returns
- true if successful.
Implemented in Murl::Logic::Timeline.
◆ Start() [4/4]
|
pure virtual |
Start the timeline with specified parameters.
Set start/end time, loop start/end time, number of loops, calls Rewind() and Start(). Finally Evaluate() is called.
- Parameters
-
startTime The start time in seconds. endTime The end time in seconds. loopStartTime The loop start time in seconds. loopEndTime The loop end time in seconds. numberOfLoops Number of loops.
- Returns
- true if successful.
Implemented in Murl::Logic::Timeline.
◆ Pause()
|
pure virtual |
Pause the timeline.
- Returns
- true if timeline was paused, false if timeline is not running.
Implemented in Murl::Logic::Timeline.
◆ Stop()
|
pure virtual |
Stop the timeline.
Rewind() is called if auto rewind is enabled. Finally Evaluate() is called if auto rewind is enabled.
- Returns
- true if timeline was stopped, false if timeline is already stopped.
Implemented in Murl::Logic::Timeline.
◆ Rewind()
|
pure virtual |
Rewind the timeline.
Sets the current time to the start time and the current loop to the start loop. Does not affect the current running state. Finally Evaluate() is called.
- Returns
- true if successful.
Implemented in Murl::Logic::Timeline.
◆ SetStartTime()
|
pure virtual |
Set the start time.
- Parameters
-
startTime The start time in seconds.
Implemented in Murl::Logic::Timeline.
◆ GetStartTime()
|
pure virtual |
◆ SetEndTime()
|
pure virtual |
◆ GetEndTime()
|
pure virtual |
◆ SetLoopStartTime()
|
pure virtual |
Set the loop start time.
- Parameters
-
startTime The loop start time in seconds.
Implemented in Murl::Logic::Timeline.
◆ GetLoopStartTime()
|
pure virtual |
Get the loop start time.
- Returns
- The loop start time in seconds.
Implemented in Murl::Logic::Timeline.
◆ SetLoopEndTime()
|
pure virtual |
Set the loop end time.
- Parameters
-
endTime The loop end time in seconds.
Implemented in Murl::Logic::Timeline.
◆ GetLoopEndTime()
|
pure virtual |
◆ SetNumberOfLoops()
|
pure virtual |
Set the number of loops.
- Parameters
-
numberOfLoops Number of loops.
Implemented in Murl::Logic::Timeline.
◆ GetNumberOfLoops()
|
pure virtual |
◆ SetTimeScale()
|
pure virtual |
Set the time scale factor.
The recent tick duration is multiplied by the time scale factor and added to the current time each logic tick. The default time scale factor is 1.
- Parameters
-
timeScale The time scale factor.
Implemented in Murl::Logic::Timeline.
◆ GetTimeScale()
|
pure virtual |
◆ SetAutoRewindEnabled()
|
pure virtual |
Enable/disable automatic rewind.
Automatic rewind is calling Rewind() when the timeline is stopped.
- Parameters
-
enabled Enable automatic rewind if true.
Implemented in Murl::Logic::Timeline.
◆ IsAutoRewindEnabled()
|
pure virtual |
Check if automatic rewind is enabled.
- Returns
- true if automatic rewind.
Implemented in Murl::Logic::Timeline.
◆ IsRunning()
|
pure virtual |
Check if the timeline is running.
A timeline can be started by calling Start() and stopped by calling Stop().
- Returns
- true if running.
Implemented in Murl::Logic::Timeline.
◆ IsPaused()
|
pure virtual |
Check if the timeline is paused.
A timeline can be paused by calling Pause() and continued by calling Start().
- Returns
- true if paused.
Implemented in Murl::Logic::Timeline.
◆ IsStopped()
|
pure virtual |
Check if the timeline is stopped.
A timeline can be stopped by calling Stop() and started by calling Start().
- Returns
- true if stopped.
Implemented in Murl::Logic::Timeline.
◆ WasStarted()
|
pure virtual |
Check if the timeline was started from stopped state.
- Returns
- true if started.
Implemented in Murl::Logic::Timeline.
◆ WasRunning()
|
pure virtual |
Check if the timeline has stopped running.
If the timeline is stopped this state is true within the current logic tick only and will be cleared at the next logic tick.
(!) This state remains unchanged if the processor holding the timeline's observer is set to inactive within the current logic tick. In such a case the Reset() method can be called to clear the state.
- Returns
- true if stopped.
Implemented in Murl::Logic::Timeline.
◆ IsOrWasRunning()
|
pure virtual |
Check if the timeline is or was running.
Returns (IsRunning() || WasRunning()) state.
- Returns
- true if IsRunning() or WasRunning() is true.
Implemented in Murl::Logic::Timeline.
◆ HasPassedTime()
Check if the current time has passed a specified time within the most recent tick.
Does not consider loops, for evaluating loops see HasPassedLoop().
- Parameters
-
time The time to check in seconds.
- Returns
- true if the current time has passed a specified time within the most recent tick.
Implemented in Murl::Logic::Timeline.
◆ HasPassedLoop()
Check if the current loop has passed a specified loop number within the most recent tick.
If the loop number to check is negative, true is returned each time the current loop has changed.
- Parameters
-
loop The loop number to check.
- Returns
- true if the current loop has passed a specified loop within the most recent tick.
Implemented in Murl::Logic::Timeline.
◆ GetCurrentTime()
|
pure virtual |
Get the current time.
This method does not consider loops, for evaluating loops see GetCurrentLoop().
- Returns
- The current time in seconds.
Implemented in Murl::Logic::Timeline.
◆ GetRemainingTime()
|
pure virtual |
Get the remaining time.
This method calculates GetEndTime() - GetCurrentTime() which does not consider loops, for evaluating loops see GetCurrentLoop().
- Returns
- The remaining time in seconds.
Implemented in Murl::Logic::Timeline.
◆ SetCurrentTime()
|
pure virtual |
Set the current time.
This method does not consider loops, for setting loops see SetCurrentLoop().
- Parameters
-
time The current time to set in seconds.
Implemented in Murl::Logic::Timeline.
◆ GetCurrentLoop()
|
pure virtual |
Get the current loop.
The current loop provides the following information for n loops:
- 0 Intro running from start to loop start time.
- 1 .. n Loop running from loop start to loop end time.
- n + 1 Outro running from loop end to end time.
- Returns
- The current loop, 0 if number of loops is 0.
Implemented in Murl::Logic::Timeline.
◆ GetRemainingLoops()
|
pure virtual |
Get the remaining loops.
Calculates GetNumberOfLoops() - GetCurrentLoop().
- Returns
- The remaining loops, -1 if number of loops is < 0, 0 if number of loops is 0 or intro/outro is running.
Implemented in Murl::Logic::Timeline.
◆ SetCurrentLoop()
Set the current loop.
The current loop represents the following information for n loops:
- 0 Intro running from start to loop start time.
- 1 .. n Loop running from loop start to loop end time.
- n + 1 Outro running from loop end to end time.
- Parameters
-
loop The current loop to set.
- Returns
- true if successful, false if the loop number is out of range.
Implemented in Murl::Logic::Timeline.
◆ GetCurrentState()
|
pure virtual |
Get the current animation state.
- Returns
- The current animation state.
Implemented in Murl::Logic::Timeline.
The documentation for this interface was generated from the following file:
- murl_logic_i_timeline.h