Files
Webcam/include/engine/automation/automation_source_group.h
2026-06-22 11:49:35 +02:00

63 lines
1.4 KiB
C++

/* -----------------------------------------------------------------------------
GSFramework
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */
#ifndef __NAUTOMATIONSOURCEGROUP__
#define __NAUTOMATIONSOURCEGROUP__
#include "automation/automation_source.h"
namespace GS {
namespace Automation {
/*!
@short Automation source group.
This is the structure holding automation sources created when starting
automations on a group of items like a hierarchy, a scene or a group of
items.
@author Emmanuel Julien (ejulien@gsworks.fr)
*/
struct SourceGroup
{
NPLACEMENT_NEW(AnimationSource)
SharedList <Source *> source_list;
/*!
@short Blend group sources weight to 0 then dispose of them.
@note The group can be deleted before the sources are disposed of.
*/
void Dispose(float blend = Units::Sec(1));
void SetLoopMode(Curve::LoopMode = Curve::Reset);
void SetLoop(const Time &loop_start = Time::Inf, const Time &loop_end = Time::Inf);
void SetTime(const Time &t);
void SetTimeScale(float scale = 1);
void SetWeight(float weight, float blend = Units::Sec(0.1));
void SetRelative(bool relative);
bool IsDone() const;
/*!
@short Get time.
Get group time using the root source.
Returns 0 if there is no source in the group.
*/
Time GetTime() const;
};
} // Automation
} // GS
#endif // __NAUTOMATIONSOURCEGROUP__