![]() |
Murl Engine API
Version 2018.3
|
The ITimeline interface. More...
#include <murl_logic_i_timeline.h>
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:
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.
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... | |
|
pure virtual |
Get the stepable interface.
The ITimeline conforms to the IStepable interface.
Implemented in Murl::Logic::Timeline.
|
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().
appTimeline | The timeline callback object. |
Implemented in Murl::Logic::Timeline.
|
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.
|
pure virtual |
Reset the timeline.
Stop the timeline, reset the WasRunning() state and call Rewind(). Finally Evaluate() is called.
Implemented in Murl::Logic::Animation< DataType >, Murl::Logic::Animation< Vector >, Murl::Logic::SoundFader, and Murl::Logic::Timeline.
|
pure virtual |
Reset the timeline to a specified start time.
Set the start time and call Reset(). Finally Evaluate() is called.
startTime | The start time in seconds. |
Implemented in Murl::Logic::Timeline.
|
pure virtual |
Start or continue the timeline.
Reset the WasRunning() state. Does not modify the current time and loop.
Implemented in Murl::Logic::Timeline.
Start the timeline with specified parameters.
Set start/end time, calls Rewind() and Start(). Finally Evaluate() is called.
startTime | The start time in seconds. |
endTime | The end time in seconds. |
Implemented in Murl::Logic::Timeline.
|
pure virtual |
Start the timeline with specified parameters.
Set start/end time, number of loops, calls Rewind() and Start(). Finally Evaluate() is called.
startTime | The start time in seconds. |
endTime | The end time in seconds. |
numberOfLoops | Number of loops. |
Implemented in Murl::Logic::Timeline.
|
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.
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. |
Implemented in Murl::Logic::Timeline.
|
pure virtual |
Pause the timeline.
Implemented in Murl::Logic::Timeline.
|
pure virtual |
Stop the timeline.
Rewind() is called if auto rewind is enabled. Finally Evaluate() is called if auto rewind is enabled.
Implemented in Murl::Logic::Timeline.
|
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.
Implemented in Murl::Logic::Timeline.
|
pure virtual |
Set the start time.
startTime | The start time in seconds. |
Implemented in Murl::Logic::Timeline.
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
Set the loop start time.
startTime | The loop start time in seconds. |
Implemented in Murl::Logic::Timeline.
|
pure virtual |
Get the loop start time.
Implemented in Murl::Logic::Timeline.
|
pure virtual |
Set the loop end time.
endTime | The loop end time in seconds. |
Implemented in Murl::Logic::Timeline.
|
pure virtual |
|
pure virtual |
Set the number of loops.
numberOfLoops | Number of loops. |
Implemented in Murl::Logic::Timeline.
|
pure virtual |
|
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.
timeScale | The time scale factor. |
Implemented in Murl::Logic::Timeline.
|
pure virtual |
|
pure virtual |
Enable/disable automatic rewind.
Automatic rewind is calling Rewind() when the timeline is stopped.
enabled | Enable automatic rewind if true. |
Implemented in Murl::Logic::Timeline.
|
pure virtual |
Check if automatic rewind is enabled.
Implemented in Murl::Logic::Timeline.
|
pure virtual |
Check if the timeline is running.
A timeline can be started by calling Start() and stopped by calling Stop().
Implemented in Murl::Logic::Timeline.
|
pure virtual |
Check if the timeline is paused.
A timeline can be paused by calling Pause() and continued by calling Start().
Implemented in Murl::Logic::Timeline.
|
pure virtual |
Check if the timeline is stopped.
A timeline can be stopped by calling Stop() and started by calling Start().
Implemented in Murl::Logic::Timeline.
|
pure virtual |
Check if the timeline was started from stopped state.
Implemented in Murl::Logic::Timeline.
|
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.
Implemented in Murl::Logic::Timeline.
|
pure virtual |
Check if the timeline is or was running.
Returns (IsRunning() || WasRunning()) state.
Implemented in Murl::Logic::Timeline.
Check if the current time has passed a specified time within the most recent tick.
Does not consider loops, for evaluating loops see HasPassedLoop().
time | The time to check in seconds. |
Implemented in Murl::Logic::Timeline.
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.
loop | The loop number to check. |
Implemented in Murl::Logic::Timeline.
|
pure virtual |
Get the current time.
This method does not consider loops, for evaluating loops see GetCurrentLoop().
Implemented in Murl::Logic::Timeline.
|
pure virtual |
Get the remaining time.
This method calculates GetEndTime() - GetCurrentTime() which does not consider loops, for evaluating loops see GetCurrentLoop().
Implemented in Murl::Logic::Timeline.
|
pure virtual |
Set the current time.
This method does not consider loops, for setting loops see SetCurrentLoop().
time | The current time to set in seconds. |
Implemented in Murl::Logic::Timeline.
|
pure virtual |
Get the current loop.
The current loop provides the following information for n loops:
Implemented in Murl::Logic::Timeline.
|
pure virtual |
Get the remaining loops.
Calculates GetNumberOfLoops() - GetCurrentLoop().
Implemented in Murl::Logic::Timeline.
Set the current loop.
The current loop represents the following information for n loops:
loop | The current loop to set. |
Implemented in Murl::Logic::Timeline.
|
pure virtual |
Get the current animation state.
Implemented in Murl::Logic::Timeline.