The ITimeline graph node interface. More...

#include "murl_graph_i_timeline.h"

Inheritance diagram for Murl::Graph::ITimeline:

Public Member Functions

virtual INodeGetNodeInterface ()=0
 Get the mutable Graph::INode interface. More...
 
virtual const INodeGetNodeInterface () const =0
 Get the constant Graph::INode interface. More...
 
virtual ITimelineNodeTargetGetParentTimelineNodeTarget ()=0
 Get the mutable container holding an optional parent timeline. More...
 
virtual const ITimelineNodeTargetGetParentTimelineNodeTarget () const =0
 Get the constant container holding an optional parent timeline. More...
 
virtual ITimelineNodeTargetGetSubTimelineNodeTarget ()=0
 Get the mutable container holding the optional sub-timelines. More...
 
virtual const ITimelineNodeTargetGetSubTimelineNodeTarget () const =0
 Get the constant container holding the optional sub-timelines. More...
 
virtual IAnimationResourceTargetGetAnimationResourceTarget ()=0
 Get a mutable Graph::IAnimationResourceTarget container. More...
 
virtual const IAnimationResourceTargetGetAnimationResourceTarget () const =0
 Get a constant Graph::IAnimationResourceTarget container. More...
 
virtual Bool Stall () const =0
 Stall the timeline. More...
 
virtual Bool SetClipIndex (UInt32 clipIndex)=0
 Set the clip index. More...
 
virtual UInt32 GetClipIndex () const =0
 Get the clip index. More...
 
virtual Bool SetClipName (const String &clipName)=0
 Set the current clip by name. More...
 
virtual String GetClipName () const =0
 Get the current clip's name. More...
 
virtual Bool SetTriggerGroupMask (UInt32 mask)=0
 Set the active trigger groups for this timeline. More...
 
virtual UInt32 GetTriggerGroupMask () const =0
 Get the active trigger groups for this timeline. More...
 
virtual Bool SetStartOnActivateEnabled (Bool enabled)=0
 Enable/disable starting on node activation. More...
 
virtual Bool IsStartOnActivateEnabled () const =0
 Check if starting on node activation is enabled. More...
 
virtual Bool SetStopOnDeactivateEnabled (Bool enabled)=0
 Enable/disable stopping on node deactivation. More...
 
virtual Bool IsStopOnDeactivateEnabled () const =0
 Check if stopping on node deactivation is enabled. More...
 
virtual UInt32 GetNumberOfStages () const =0
 Get the timeline's number of stages. More...
 
virtual const ITimelineGetTimeline (UInt32 stage) const =0
 Get the timeline's actual node at a given stage. More...
 
- Public Member Functions inherited from Murl::Graph::IStateUnit
virtual Bool SetUnit (UInt32 unit)=0
 Set the unit index to use. More...
 
virtual UInt32 GetUnit () const =0
 Get the unit index to use. More...
 
- Public Member Functions inherited from Murl::Graph::IRunnable
virtual Bool Reset ()=0
 Reset the timeline. More...
 
virtual Bool 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 Bool SetAutoRewindEnabled (Bool enabled)=0
 Enable/disable automatic rewind. More...
 
virtual Bool IsAutoRewindEnabled () const =0
 Check if automatic rewind is enabled. More...
 
virtual Bool SetStartTime (Real startTime)=0
 Set the start time. More...
 
virtual Real GetStartTime () const =0
 Get the start time. More...
 
virtual Bool SetEndTime (Real endTime)=0
 Set the end time. More...
 
virtual Real GetEndTime () const =0
 Get the end time. More...
 
virtual Bool SetLoopStartTime (Real startTime)=0
 Set the loop start time. More...
 
virtual Real GetLoopStartTime () const =0
 Get the loop start time. More...
 
virtual Bool SetLoopEndTime (Real endTime)=0
 Set the loop end time. More...
 
virtual Real GetLoopEndTime () const =0
 Get the loop end time. More...
 
virtual Bool SetStartLoop (SInt32 startLoop)=0
 Set the start loop. More...
 
virtual SInt32 GetStartLoop () const =0
 Get the start loop. More...
 
virtual Bool SetNumberOfLoops (SInt32 numberOfLoops)=0
 Set the number of loops. More...
 
virtual SInt32 GetNumberOfLoops () const =0
 Get the number of loops. More...
 
virtual Bool SetTimeShift (Double timeShift)=0
 Set the time shift value. More...
 
virtual Double GetTimeShift () const =0
 Get the time shift value. More...
 
virtual Bool SetTimeOffset (Double timeOffset)=0
 Set the time offset value. More...
 
virtual Double GetTimeOffset () const =0
 Get the time offset value. More...
 
virtual Bool SetTimeScale (Real timeScale)=0
 Set the time scale factor. More...
 
virtual Real GetTimeScale () const =0
 Get the time scale factor. 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 the beginning. 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=-1) const =0
 Check if the current loop has passed a specified loop number within the most recent tick. More...
 
virtual Double GetRecentTime () const =0
 Get the recent time. 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 GetRecentLoop () const =0
 Get the recent loop. 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 GetRecentState () const =0
 Get the recent animation state. More...
 
virtual IEnums::AnimationState GetCurrentState () const =0
 Get the current animation state. More...
 
- Public Member Functions inherited from Murl::Graph::IBlendable
virtual Bool SetBlendFactor (UInt32 stageIndex, Real blendFactor)=0
 Set the blend factor for a given stage. More...
 
virtual Real GetBlendFactor (UInt32 stageIndex) const =0
 Get the blend factor set for a given stage. More...
 

Detailed Description

The ITimeline graph node interface.

The timeline node is evaluated each logic traversal if activated.
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.

Timelines may depend on an optional parent timeline, which is in control of actually starting and stopping the current timeline. See GetParentTimelineNodeTarget().

Optionally, a Resource::IAnimation object may be defined, which can be used to retrieve the time range of an animation clip, which is then used for playback. See GetAnimationResourceTarget(), SetClipIndex() and SetClipName().

A timeline also implements the Graph::IBlendable interface, in order to blend multiple timelines together. Blending can be performed both between multiple timeline units as well as multiple stages from a Graph::MultiTimeline. See GetSubTimelineNodeTarget() for latter case.

It is possible to define a bit mask of up to 32 different global trigger groups, which can be used to selectively enable/disable the timeline's effect on e.g. controllers that implement the Graph::ITimeController interface. See SetTriggerGroupMask() and Graph::ITimeController::SetResponseGroupMask(). By default, all 32 groups are triggered.

See Output-States, Slots und Units for an overview of state handling during scene graph traversal.
See Graph::ITimelineState for activating a timeline.

Member Function Documentation

◆ GetNodeInterface() [1/2]

virtual INode* Murl::Graph::ITimeline::GetNodeInterface ( )
pure virtual

Get the mutable Graph::INode interface.

This method returns a mutable pointer to the node's Graph::INode interface, to be able to query or modify common node properties such as active state, visibility or ID.

Returns
The mutable Graph::INode interface, or null if not available

◆ GetNodeInterface() [2/2]

virtual const INode* Murl::Graph::ITimeline::GetNodeInterface ( ) const
pure virtual

Get the constant Graph::INode interface.

This method returns a constant pointer to the node's Graph::INode interface, to be able to query common node properties such as active state, visibility or ID.

Returns
The constant Graph::INode interface, or null if not available

◆ GetParentTimelineNodeTarget() [1/2]

virtual ITimelineNodeTarget* Murl::Graph::ITimeline::GetParentTimelineNodeTarget ( )
pure virtual

Get the mutable container holding an optional parent timeline.

This method returns a mutable pointer to the node's Graph::ITimelineNodeTarget parent container, which is used to store an optional timeline parent to inherit values from.

Returns
The mutable Graph::ITimelineNodeTarget container, or null if not available.

◆ GetParentTimelineNodeTarget() [2/2]

virtual const ITimelineNodeTarget* Murl::Graph::ITimeline::GetParentTimelineNodeTarget ( ) const
pure virtual

Get the constant container holding an optional parent timeline.

This method returns a constant pointer to the node's Graph::ITimelineNodeTarget parent container, which is used to store an optional timeline parent to inherit values from.

Returns
The constant Graph::ITimelineNodeTarget container, or null if not available.

◆ GetSubTimelineNodeTarget() [1/2]

virtual ITimelineNodeTarget* Murl::Graph::ITimeline::GetSubTimelineNodeTarget ( )
pure virtual

Get the mutable container holding the optional sub-timelines.

This method returns a mutable pointer to the node's Graph::ITimelineNodeTarget sub container, which is used to store multiple sub-timeline stages.

Returns
The mutable Graph::ITimelineNodeTarget container, or null if not available.

◆ GetSubTimelineNodeTarget() [2/2]

virtual const ITimelineNodeTarget* Murl::Graph::ITimeline::GetSubTimelineNodeTarget ( ) const
pure virtual

Get the constant container holding the optional sub-timelines.

This method returns a constant pointer to the node's Graph::ITimelineNodeTarget sub container, which is used to store multiple sub-timeline stages.

Returns
The constant Graph::ITimelineNodeTarget container, or null if not available.

◆ GetAnimationResourceTarget() [1/2]

virtual IAnimationResourceTarget* Murl::Graph::ITimeline::GetAnimationResourceTarget ( )
pure virtual

Get a mutable Graph::IAnimationResourceTarget container.

This method returns a mutable pointer to a Graph::IAnimationResourceTarget container, which allows to add, remove or query the optional animation resource that can be used to configure the timeline to play back the time range of a specific animation clip from the resource. See also ITimeline::SetClipIndex().

Returns
The mutable Graph::IAnimationResourceTarget container.

◆ GetAnimationResourceTarget() [2/2]

virtual const IAnimationResourceTarget* Murl::Graph::ITimeline::GetAnimationResourceTarget ( ) const
pure virtual

Get a constant Graph::IAnimationResourceTarget container.

This method returns a constant pointer to a Graph::IAnimationResourceTarget container, which allows to query the optional animation resource that can be used to configure the timeline to play back the time range of a specific animation clip from the resource. See also ITimeline::SetClipIndex().

Returns
The constant Graph::IAnimationResourceTarget container.

◆ Stall()

virtual Bool Murl::Graph::ITimeline::Stall ( ) const
pure virtual

Stall the timeline.

This method acts as a trigger to pause the timeline for a single logic tick. Usually this is called by some node that depends on a steady flow of input data (such as a movie stream) whenever it has to wait for new input data in order to continue decoding. In this case, the timeline may be stalled so that other animations depending on that timeline are kept in sync.

Returns
true if successful.

◆ SetClipIndex()

virtual Bool Murl::Graph::ITimeline::SetClipIndex ( UInt32  clipIndex)
pure virtual

Set the clip index.

Setting the clip index works in conjunction with an animation resource set via the resource target obtained from GetAnimationResourceTarget().

Parameters
clipIndexThe clip index to set.
Returns
true if successful.

◆ GetClipIndex()

virtual UInt32 Murl::Graph::ITimeline::GetClipIndex ( ) const
pure virtual

Get the clip index.

Returns
The clip index.

◆ SetClipName()

virtual Bool Murl::Graph::ITimeline::SetClipName ( const String clipName)
pure virtual

Set the current clip by name.

Setting the clip works only in conjunction with an animation resource set via the resource target obtained from GetAnimationResourceTarget(), from which the actual clip index is retrieved by its name. This method fails if the given clip name is empty, no animation resource is set, or no clip with that name was found in the animation resource.

Parameters
clipNameThe clip name.
Returns
true if successful.

◆ GetClipName()

virtual String Murl::Graph::ITimeline::GetClipName ( ) const
pure virtual

Get the current clip's name.

This method returns an empty string when no animation resource is defined or the currently active clip is unnamed.

Returns
The clip name if available.

◆ SetTriggerGroupMask()

virtual Bool Murl::Graph::ITimeline::SetTriggerGroupMask ( UInt32  mask)
pure virtual

Set the active trigger groups for this timeline.

A timeline can be configured to influence a number of user-defined controller groups stored as a UInt32 bit mask, allowing up to 32 individual groups. See Graph::IController::SetResponseGroupMask().

Parameters
maskThe trigger group bit mask.
Returns
true if successful.

◆ GetTriggerGroupMask()

virtual UInt32 Murl::Graph::ITimeline::GetTriggerGroupMask ( ) const
pure virtual

Get the active trigger groups for this timeline.

Returns
The bit mask specifying active trigger groups.

◆ SetStartOnActivateEnabled()

virtual Bool Murl::Graph::ITimeline::SetStartOnActivateEnabled ( Bool  enabled)
pure virtual

Enable/disable starting on node activation.

If the timeline node or a sub-tree containing the node is changed to active the Start() method is called within the next logic traversal.

Parameters
enabledEnable starting if true.
Returns
true if successful.

◆ IsStartOnActivateEnabled()

virtual Bool Murl::Graph::ITimeline::IsStartOnActivateEnabled ( ) const
pure virtual

Check if starting on node activation is enabled.

Returns
true if enabled.

◆ SetStopOnDeactivateEnabled()

virtual Bool Murl::Graph::ITimeline::SetStopOnDeactivateEnabled ( Bool  enabled)
pure virtual

Enable/disable stopping on node deactivation.

If the timeline node or a sub-tree containing the node is changed to inactive the Stop() method is called within the next logic traversal. For potential sideffects see WasRunning().

Parameters
enabledEnable stopping if true.
Returns
true if successful.

◆ IsStopOnDeactivateEnabled()

virtual Bool Murl::Graph::ITimeline::IsStopOnDeactivateEnabled ( ) const
pure virtual

Check if stopping on node deactivation is enabled.

Returns
true if enabled.

◆ GetNumberOfStages()

virtual UInt32 Murl::Graph::ITimeline::GetNumberOfStages ( ) const
pure virtual

Get the timeline's number of stages.

Returns
The number of stages.

◆ GetTimeline()

virtual const ITimeline* Murl::Graph::ITimeline::GetTimeline ( UInt32  stage) const
pure virtual

Get the timeline's actual node at a given stage.

Parameters
stageThe stage to query.
Returns
The timeline sub-object.

The documentation for this interface was generated from the following file:
  • murl_graph_i_timeline.h


Copyright © 2011-2022 Spraylight GmbH.