The ITimeController interface. More...

#include "murl_graph_i_time_controller.h"

Inheritance diagram for Murl::Graph::ITimeController:

Public Member Functions

virtual IControllerGetControllerInterface ()=0
 Get the mutable IController interface. More...
 
virtual const IControllerGetControllerInterface () const =0
 Get the constant IController interface. More...
 
virtual Bool SetTimeShift (Double timeShift)=0
 Set the time shift value used for evaluation. More...
 
virtual Double GetTimeShift () const =0
 Get the time shift value used for evaluation. More...
 
virtual Bool SetTimeOffset (Double timeOffset)=0
 Set the time offset value used for evaluation. More...
 
virtual Double GetTimeOffset () const =0
 Get the time offset value used for evaluation. More...
 
virtual Bool SetTimeScale (Double timeScale)=0
 Set the time scale value used for evaluation. More...
 
virtual Double GetTimeScale () const =0
 Get the time scale value used for evaluation. More...
 
virtual Bool SetTimelineUnitEnabled (UInt32 unit, Bool enabled)=0
 Activate/deactivate processing of a timeline at a given unit. More...
 
virtual Bool IsTimelineUnitEnabled (UInt32 unit) const =0
 Check if a given timeline unit is used. More...
 
virtual Bool SetBlendFactorNormalizationEnabled (Bool enabled)=0
 Enable/disable blend factor normalization. More...
 
virtual Bool IsBlendFactorNormalizationEnabled () const =0
 Check if blend factor normalization is enabled. More...
 
virtual Bool SetResponseGroupMask (UInt32 mask)=0
 Set the active response groups for this controller. More...
 
virtual UInt32 GetResponseGroupMask () const =0
 Get the active response groups for this controller. More...
 

Detailed Description

The ITimeController interface.

This interface provides a way to automatically manipulate individual properties of a given Graph::INode by via individual Graph::ITimeEvaluator objects created upon initialization.

The Graph::TimeController class implementing this interface provides a default implementation that can be used to add individual custom Graph::ITimeEvaluator objects for the purpose of manipulating different node properties.

The Graph::AnimationTimeController class is a specialized implementation that acts on a given Resource::IAnimation object, with different evaluators for each individual type of key frame defined in the animation.

See Graph::Node for details on creating controllers via an XML scene graph description.

Member Function Documentation

◆ GetControllerInterface() [1/2]

virtual IController* Murl::Graph::ITimeController::GetControllerInterface ( )
pure virtual

Get the mutable IController interface.

Returns
The mutable IController interface.

◆ GetControllerInterface() [2/2]

virtual const IController* Murl::Graph::ITimeController::GetControllerInterface ( ) const
pure virtual

Get the constant IController interface.

Returns
The constant IController interface.

◆ SetTimeShift()

virtual Bool Murl::Graph::ITimeController::SetTimeShift ( Double  timeShift)
pure virtual

Set the time shift value used for evaluation.

Parameters
timeShiftThe time shift value.
Returns
true if successful.

◆ GetTimeShift()

virtual Double Murl::Graph::ITimeController::GetTimeShift ( ) const
pure virtual

Get the time shift value used for evaluation.

Returns
The time shift value.

◆ SetTimeOffset()

virtual Bool Murl::Graph::ITimeController::SetTimeOffset ( Double  timeOffset)
pure virtual

Set the time offset value used for evaluation.

A positive value represents an actual controller start time after the given input time t, which results in an already started animation for t=0. Negative values result in a delay before the animation is started (at t=0 the controller's shifted time is still negative and has has not reached its actual start time). By default, the time shift value is 0.

Parameters
timeOffsetThe time offset value.
Returns
true if successful.

◆ GetTimeOffset()

virtual Double Murl::Graph::ITimeController::GetTimeOffset ( ) const
pure virtual

Get the time offset value used for evaluation.

Returns
The time offset value.

◆ SetTimeScale()

virtual Bool Murl::Graph::ITimeController::SetTimeScale ( Double  timeScale)
pure virtual

Set the time scale value used for evaluation.

By default, the time scale value equals 1.0. Values less than 1.0 result in a reduced animation time, for values higher than 1.0 the animation is running faster than normal. Time scaling is applied before shifting, so the time scale value does not affect a given time shift value.

Parameters
timeScaleThe time scale value.
Returns
true if successful.

◆ GetTimeScale()

virtual Double Murl::Graph::ITimeController::GetTimeScale ( ) const
pure virtual

Get the time scale value used for evaluation.

Returns
The time scale value.

◆ SetTimelineUnitEnabled()

virtual Bool Murl::Graph::ITimeController::SetTimelineUnitEnabled ( UInt32  unit,
Bool  enabled 
)
pure virtual

Activate/deactivate processing of a timeline at a given unit.

Parameters
unitThe timeline unit.
enabledIf true, a timeline at the given unit is processed.
Returns
true if successful.

◆ IsTimelineUnitEnabled()

virtual Bool Murl::Graph::ITimeController::IsTimelineUnitEnabled ( UInt32  unit) const
pure virtual

Check if a given timeline unit is used.

Parameters
unitThe timeline unit.
Returns
true if used.

◆ SetBlendFactorNormalizationEnabled()

virtual Bool Murl::Graph::ITimeController::SetBlendFactorNormalizationEnabled ( Bool  enabled)
pure virtual

Enable/disable blend factor normalization.

If set to true, the blend factors of all currently relevant timelines are summed up, and each of them is divided by that sum so that the total sum of the blend factors equals 1.

Parameters
enabledIf true, normalization is enabled.
Returns
true if successful.

◆ IsBlendFactorNormalizationEnabled()

virtual Bool Murl::Graph::ITimeController::IsBlendFactorNormalizationEnabled ( ) const
pure virtual

Check if blend factor normalization is enabled.

Returns
true if enabled.

◆ SetResponseGroupMask()

virtual Bool Murl::Graph::ITimeController::SetResponseGroupMask ( UInt32  mask)
pure virtual

Set the active response groups for this controller.

An active controller can be configured to only react on timelines belonging to one or more specific groups. Group assignment is done via a UInt32 bit mask, allowing up to 32 individual groups. The controller processes a given timeline only if at least one specific group bit is set both in the timeline's trigger mask and the controller's response mask. By default, a controller reacts on all trigger groups (the mask is set to 0xffffffff). See Graph::ITimeline::SetTriggerGroupMask().

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

◆ GetResponseGroupMask()

virtual UInt32 Murl::Graph::ITimeController::GetResponseGroupMask ( ) const
pure virtual

Get the active response groups for this controller.

Returns
The bit mask specifying active response groups.

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


Copyright © 2011-2024 Spraylight GmbH.