|
| Timeline () |
| Creates an empty timeline.
|
|
| Timeline (JSONNode data) |
| Load a Timeline from JSON data. More...
|
|
| Timeline (const Timeline &other) |
| Copies a timeline.
|
|
void | operator= (const Timeline &other) |
|
virtual | ~Timeline () |
| Deletes a timeline.
|
|
string | getTimelineKey (Device *d, string paramName) |
| Gets the identifier used to refer to a device-parameter keyframe set.
|
|
string | getTimelineKey (string id, string paramName) |
| Gets the identifier used to refer to a device-parameter keyframe set.
|
|
Keyframe | getKeyframe (string identifier, size_t time) |
| Gets the keyframe for a given identifier and time. Read-only. More...
|
|
map< string, Keyframe > | getKeyframes (Device *d, size_t time) |
| Gets the keyframes for a given device and time. Read-only. More...
|
|
map< string, map< size_t, Keyframe > > & | getAllKeyframes () |
| Gets the keyframes for the entire timeline.
|
|
void | setKeyframe (string identifier, size_t time, LumiverseType *data, bool ucs=false) |
| Sets the value for the specified keyframe. More...
|
|
void | setKeyframe (Device *d, size_t time, bool ucs=false) |
| Sets the value of the keyframes for all parameters of the given device.
|
|
void | setKeyframe (Rig *rig, size_t time, bool ucs=false) |
| Stores a keyframe from a rig.
|
|
void | setKeyframe (DeviceSet devices, size_t time, bool ucs=false) |
| Stores a keyframe for a group of selected devices.
|
|
void | setKeyframe (string identifier, size_t time, string timelineID, size_t offset=0) |
| Stores a nested timeline Keyframe for a particular identifier.
|
|
void | setKeyframe (Device *d, size_t time, string timelineID, size_t offset=0) |
| Stores a nested timeline Keyframe for a device.
|
|
void | setKeyframe (DeviceSet devices, size_t time, string timelineID, size_t offset=0) |
| Stores a nested timeline Keyframe for a group of selected devices.
|
|
void | deleteKeyframe (string identifier, size_t time) |
| Deletes the keyframe with the specified identifier at the specified time.
|
|
void | deleteKeyframe (Device *d, size_t time) |
| Deletes the keyframes for the specified device at the specified time.
|
|
void | deleteKeyframe (DeviceSet devices, size_t time) |
| Deletes the keyframes for the specified devices at the specified time.
|
|
void | moveKeyframe (string id, size_t oldTime, size_t newTime) |
| Moves a keyframe from one time to a different time. If a keyframe already exists at the target time, it is overwritten.
|
|
void | deleteKeyframesAfter (string id, size_t start) |
| Deletes all keyframes for an id that occur after (>) the start time.
|
|
void | deleteKeyframesBetween (size_t start, size_t end) |
| Deletes all keyframes between (start < keyframe < end) the specified times.
|
|
bool | addEndEvent (string id, shared_ptr< Event > e) |
| Adds a new event to the end of the timeline. More...
|
|
void | deleteEndEvent (string id) |
| Deletes an end event. More...
|
|
bool | addEvent (size_t time, shared_ptr< Event > e) |
| Adds an Event to the Timeline. More...
|
|
void | deleteEvent (size_t time, string id="") |
| Deletes Events from the Timeline. More...
|
|
vector< shared_ptr< Event > > | getEvents (size_t time, string id="") |
| Gets Events at the specified time. More...
|
|
shared_ptr< Event > | getEndEvent (string id) |
| Gets an end Event. More...
|
|
multimap< size_t, shared_ptr< Event > > & | getAllEvents () |
| Returns the multimap containing the Events for this Timeline.
|
|
map< string, shared_ptr< Event > > & | getAllEndEvents () |
| Returns the end Events for this Timeline.
|
|
virtual shared_ptr< LumiverseType > | getValueAtTime (string id, string paramName, LumiverseType *currentVal, size_t time, map< string, shared_ptr< Timeline > > &tls) |
| Returns the value of the specified parameter for the specified device at the specified time. More...
|
|
virtual void | executeEvents (size_t prevTime, size_t currentTime) |
| Executes the events between the specified times. More...
|
|
virtual void | executeEndEvents () |
| Executes all end events in the timeline's list.
|
|
virtual int | getLoops () |
| Returns the looping setting for this timeline. More...
|
|
virtual void | setLoops (int loops) |
| Set the number of loops the timeline should execute. More...
|
|
virtual size_t | getLength () |
| Gets the length of the timeline based on stored keyframes. More...
|
|
virtual size_t | getLoopLength () |
| Gets the length of the timeline for a single loop. More...
|
|
virtual JSONNode | toJSON () |
| Gets the JSON representation of the timeline object.
|
|
virtual bool | isDone (size_t time, map< string, shared_ptr< Timeline > > &tls) |
| Indicates if the Timeline has no more keyframes after the specified time. More...
|
|
virtual void | setCurrentState (map< string, map< string, LumiverseType * > > &state, shared_ptr< Timeline > active, size_t time) |
| Takes a state from the layer and updates the keyframes marked with "Use Current State". More...
|
|
Keyframe | getPreviousKeyframe (string identifier, size_t time) |
| Gets the keyframe closest to happen at or before the given time. More...
|
|
virtual size_t | getLoopTime (size_t time) |
| Returns the time adjusted for the number of loops the timeline can perfrom.
|
|
virtual string | getTimelineTypeName () |
| Used for identifying different kinds of timelines.
|
|
A Timeline is a list of device parameter values at arbitrary times.
Lumiverse Timelines should be familiar to anyone who's used a timeline based system before. The one difference to highlight specifically is the addition of a new keyframe data type called "Use Current State." When this keyframe value is present, the state of the layer the timeline is being played on will be used as the "current state" whenever this keyframe is encountered. Because of this, this keyframe is typically used only at the beginning of timelines.
Timelines may also loop a specified number of times. Setting the loop parameter to -1 indicates an infinite loop.
In addition to Keyframes, a Timeline may contain Events. Events are arbitrary actions called at the specified times. Events are executed on every loop, or at the very end of the Timeline (after all loops are complete).
Subclasses of timelines are allowed, and encouraged for certain applications. Note that you do not have to override all functions, but probably should at least override getValueAtTime(). Subclasses have access to all the keyframe functions and data structures, but do not have to use them.
Times are specified in ms.
- See also
- Event