The IClip graph node interface. More...

#include "murl_graph_i_clip.h"

Inheritance diagram for Murl::Graph::IClip:

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 ITimelineNodeTargetGetTimelineNodeTarget ()=0
 Get the mutable Graph::ITimelineNodeTarget container. More...
 
virtual const ITimelineNodeTargetGetTimelineNodeTarget () const =0
 Get the constant Graph::ITimelineNodeTarget container. More...
 
virtual IBlendableNodeTargetGetBlendableNodeTarget ()=0
 Get the mutable Graph::IBlendableNodeTarget container. More...
 
virtual const IBlendableNodeTargetGetBlendableNodeTarget () const =0
 Get the constant Graph::IBlendableNodeTarget container. More...
 
virtual Bool ResetTransitions ()=0
 Reset all transitions. More...
 
virtual Bool TriggerInTransition (Double startTime, Double duration)=0
 Trigger an "in" transition for the clip. More...
 
virtual Bool TriggerOutTransition (Double startTime, Double duration)=0
 Trigger an "out" transition for the clip. More...
 
virtual Bool IsInTransitionFinished () const =0
 Check if the "in" transition is finished. More...
 
virtual Bool IsOutTransitionFinished () const =0
 Check if the "out" transition is finished. More...
 
virtual Double GetRemainingClipTime () const =0
 Get the total remaining clip time. More...
 
virtual Double GetRemainingLoopTime () const =0
 Get the remaining loop time. More...
 

Detailed Description

The IClip graph node interface.

Clip nodes must be defined as direct children of a node implementing the Graph::IClipSequencer interface, which is responsible for managing any transitions between those clips. See Graph::IClipSequencer and Graph::IClipTransition for details.

Each clip can reference any number of Graph::ITimeline nodes from within its sub-graph. All referenced timelines are started whenever that clip starts an "in" transition, and stopped whenever the clip finished an "out" transition (of course, if a referenced timeline expires before an "out" transition is finished, it is also stopped).

Additionally, a clip can reference any number of nodes implementing the Graph::IBlendable interface (also from the nodes within its sub-graph), which receive the current "in" or "out" transition value in the range from 0.0 (hidden) to 1.0 (fully visible).

Note: If it is desired to start a specific Graph::ITimeline and also blend that timeline, (as Graph::ITimeline also implements the Graph::IBlendable interface), the same node must be specified in both node targets (GetTimelineNodeTarget() and GetBlendableNodeTarget()).

A clip can also signal the expiration of the last active timeline (or the last loop), in order to perform automatic transitions. See GetRemainingClipTime(), GetRemainingLoopTime() and the Graph::IClipTransition interface.

Member Function Documentation

◆ GetNodeInterface() [1/2]

virtual INode* Murl::Graph::IClip::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::IClip::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

◆ GetTimelineNodeTarget() [1/2]

virtual ITimelineNodeTarget* Murl::Graph::IClip::GetTimelineNodeTarget ( )
pure virtual

Get the mutable Graph::ITimelineNodeTarget container.

This method returns a mutable pointer to the node's Graph::ITimelineNodeTarget container, which allows to set or query the timelines that are affected by the clip.

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

◆ GetTimelineNodeTarget() [2/2]

virtual const ITimelineNodeTarget* Murl::Graph::IClip::GetTimelineNodeTarget ( ) const
pure virtual

Get the constant Graph::ITimelineNodeTarget container.

This method returns a constant pointer to the node's Graph::ITimelineNodeTarget container, which allows to query the timelines that are affected by the clip.

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

◆ GetBlendableNodeTarget() [1/2]

virtual IBlendableNodeTarget* Murl::Graph::IClip::GetBlendableNodeTarget ( )
pure virtual

Get the mutable Graph::IBlendableNodeTarget container.

This method returns a mutable pointer to the node's Graph::IBlendableNodeTarget container, which allows to set or query any blendable objects that are affected by the clip.

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

◆ GetBlendableNodeTarget() [2/2]

virtual const IBlendableNodeTarget* Murl::Graph::IClip::GetBlendableNodeTarget ( ) const
pure virtual

Get the constant Graph::IBlendableNodeTarget container.

This method returns a constant pointer to the node's Graph::IBlendableNodeTarget container, which allows to query any blendable objects that are affected by the clip.

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

◆ ResetTransitions()

virtual Bool Murl::Graph::IClip::ResetTransitions ( )
pure virtual

Reset all transitions.

Returns
true if successful.

◆ TriggerInTransition()

virtual Bool Murl::Graph::IClip::TriggerInTransition ( Double  startTime,
Double  duration 
)
pure virtual

Trigger an "in" transition for the clip.

This method gets called by the parent Graph::IClipSequencer whenever the clip is supposed to become visible. The startTime parameter represents the actual start time for the transition, given as an absolute logic time value in seconds. If the startTime value is greater than the current absolute logic tick time, the transition is delayed.

Parameters
startTimeThe absolute start time when the transition shall start.
durationThe transition duration.
Returns
true if successful.

◆ TriggerOutTransition()

virtual Bool Murl::Graph::IClip::TriggerOutTransition ( Double  startTime,
Double  duration 
)
pure virtual

Trigger an "out" transition for the clip.

See TriggerInTransition().

Parameters
startTimeThe absolute start time when the transition shall start.
durationThe transition duration.
Returns
true if successful.

◆ IsInTransitionFinished()

virtual Bool Murl::Graph::IClip::IsInTransitionFinished ( ) const
pure virtual

Check if the "in" transition is finished.

This method returns true only when all transitions are finished and the clip is fully visible.

Returns
true if the clip is fully visible.

◆ IsOutTransitionFinished()

virtual Bool Murl::Graph::IClip::IsOutTransitionFinished ( ) const
pure virtual

Check if the "out" transition is finished.

This method returns true only when all transitions are finished and the clip is fully hidden.

Returns
true if the clip is fully hidden.

◆ GetRemainingClipTime()

virtual Double Murl::Graph::IClip::GetRemainingClipTime ( ) const
pure virtual

Get the total remaining clip time.

This method returns the remaining time until all timelines have expired, i.e. including the durations for intro, outro and all loops.

Returns
The total remaining time.

◆ GetRemainingLoopTime()

virtual Double Murl::Graph::IClip::GetRemainingLoopTime ( ) const
pure virtual

Get the remaining loop time.

This method returns the remaining time until all loops have finished for all timelines affected by the clip, i.e. including only the durations for intro and loops, without outro durations.

Returns
The remaining loop time.

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


Copyright © 2011-2024 Spraylight GmbH.