#include <Timeline.h>
Inherits cinder::TimelineItem.
Public Member Functions | |
void | step (float timestep) |
Advances time a specified amount and evaluates items. | |
void | stepTo (float absoluteTime) |
Goes to a specific time and evaluates items. | |
float | getCurrentTime () const |
Returns the timeline's most recent current time. | |
template<typename T > | |
Tween< T >::Options | apply (Anim< T > *target, T endValue, float duration, EaseFn easeFunction=easeNone, typename Tween< T >::LerpFn lerpFunction=&tweenLerp< T >) |
Replaces any existing tweens on the target with a new tween at the timeline's current time. | |
template<typename T > | |
Tween< T >::Options | apply (Anim< T > *target, T startValue, T endValue, float duration, EaseFn easeFunction=easeNone, typename Tween< T >::LerpFn lerpFunction=&tweenLerp< T >) |
Replaces any existing tweens on the target with a new tween at the timeline's current time. | |
template<typename T > | |
Tween< T >::Options | appendTo (Anim< T > *target, T endValue, float duration, EaseFn easeFunction=easeNone, typename Tween< T >::LerpFn lerpFunction=&tweenLerp< T >) |
Creates a new tween and adds it to the end of the last tween on target, or if no existing tween matches the target, the current time. | |
template<typename T > | |
Tween< T >::Options | appendTo (Anim< T > *target, T startValue, T endValue, float duration, EaseFn easeFunction=easeNone, typename Tween< T >::LerpFn lerpFunction=&tweenLerp< T >) |
Creates a new tween and adds it to the end of the last tween on target, or if no existing tween matches the target, the current time. | |
template<typename T > | |
Tween< T >::Options | applyPtr (T *target, T endValue, float duration, EaseFn easeFunction=easeNone, typename Tween< T >::LerpFn lerpFunction=&tweenLerp< T >) |
Replaces any existing tweens on the target with a new tween at the timeline's current time. Consider the apply( Anim<T>* ) variant unless you have an advanced use case. | |
template<typename T > | |
Tween< T >::Options | applyPtr (T *target, T startValue, T endValue, float duration, EaseFn easeFunction=easeNone, typename Tween< T >::LerpFn lerpFunction=&tweenLerp< T >) |
Replaces any existing tweens on the target with a new tween at the timeline's current time. Consider the apply( Anim<T>* ) variant unless you have an advanced use case. | |
template<typename T > | |
Tween< T >::Options | appendToPtr (T *target, T endValue, float duration, EaseFn easeFunction=easeNone, typename Tween< T >::LerpFn lerpFunction=&tweenLerp< T >) |
Creates a new tween and adds it to the end of the last tween on target, or if no existing tween matches the target, the current time. Consider the appendTo( Anim<T>* ) variant unless you have an advanced use case. | |
template<typename T > | |
Tween< T >::Options | appendToPtr (T *target, T startValue, T endValue, float duration, EaseFn easeFunction=easeNone, typename Tween< T >::LerpFn lerpFunction=&tweenLerp< T >) |
Creates a new tween and adds it to the end of the last tween on target, or if no existing tween matches the target, the current time. Consider the appendTo( Anim<T>* ) variant unless you have an advanced use case. | |
CueRef | add (std::function< void()> action, float atTime) |
add a cue to the Timeline add the start-time atTime | |
template<typename T > | |
FnTweenRef< T > | applyFn (std::function< void(T)> fn, T startValue, T endValue, float duration, EaseFn easeFunction=easeNone, typename Tween< T >::LerpFn lerpFunction=&tweenLerp< T >) |
void | appendPingPong () |
Appends to the end of the timeline mirror images of all items. | |
void | apply (TimelineItemRef item) |
Replaces any existing TimelineItems that match item's target and adds item to the timeline. Safe to use from callback fn's. | |
void | add (TimelineItemRef item) |
add an item to the timeline at the current time. Safe to use from callback fn's. | |
void | insert (TimelineItemRef item) |
adds an item to the timeline. Its start time is not modified. Safe to use from callback fn's. | |
void | insert (TimelineItemRef item, float atTime) |
adds an item to the timeline, setting its startTime to be at atTime. Safe to use from callback fn's. | |
size_t | getNumItems () const |
Returns the number of items in the Timeline. | |
TimelineItemRef | find (void *target) |
Returns the first item in the timeline the target of which matches target. | |
TimelineItemRef | findLast (void *target) |
Returns the latest-starting item in the timeline the target of which matches target. | |
float | findEndTimeOf (void *target, bool *found=NULL) |
Returns the end of the latest-ending item in the timeline the target of which matches target, or the current time if it's not found. found can store whether a related item was found. | |
void | remove (TimelineItemRef item) |
Removes the TimelineItem item from the Timeline. Safe to use from callback fn's. | |
void | removeTarget (void *target) |
Removes all TimelineItems whose target matches target. | |
void | cloneAndReplaceTarget (void *target, void *replacementTarget) |
Clones all TimelineItems whose target matches target, but replacing their target with replacementTarget. | |
void | replaceTarget (void *target, void *replacementTarget) |
Replaces the target of all TimelineItems whose target matches target, with replacementTarget. | |
void | clear () |
Remove all tweens from the Timeline. Do not call from callback fn's. | |
void | reset (bool unsetStarted=false) |
Sets the time to zero, marks all tweens as not completed, and if unsetStarted, marks the tweens as not started. Do not call from callback fn's. | |
void | setDefaultAutoRemove (bool defaultAutoRemove) |
Sets the default autoRemove value for all future TimelineItems added to the Timeline. | |
bool | getDefaultAutoRemove () const |
Returns the default autoRemove value for all future TimelineItems added to the Timeline. | |
void | itemTimeChanged (TimelineItem *item) |
Call this to notify the Timeline if the item's start-time or duration has changed. Advanced use cases only. | |
TimelineRef | thisRef () |
void * | getTarget () const |
Returns the item's target pointer. | |
float | getStartTime () const |
Returns the item's start time. | |
void | setStartTime (float newTime) |
Set the items's start time to newTime. | |
float | getDuration () const |
Returns the item's duration. | |
void | setDuration (float newDuration) |
Sets the item's duration to newDuration. | |
bool | getLoop () const |
Returns whether the item starts over when it is complete. | |
void | setLoop (bool doLoop=true) |
Sets whether the item starts over when it is complete. | |
bool | getPingPong () const |
Returns whether the item alternates between forward and reverse. Overrides loop when true. | |
void | setPingPong (bool pingPong=true) |
Sets whether the item alternates between forward and reverse. Overrides loop when true. | |
bool | getInfinite () const |
Returns whether the item ever is marked as complete. | |
void | setInfinite (bool infinite=true) |
Sets whether the item ever is marked as complete. | |
float | getEndTime () const |
Returns the time of the item's competion, equivalent to getStartTime() + getDuration(). | |
class Timeline * | getParent () const |
Returns a pointer to the item's parent Timeline. | |
void | removeSelf () |
Removes the item from its parent Timeline. | |
bool | hasStarted () const |
Returns whether the item has started. | |
bool | isComplete () |
Returns whether the item has completed. | |
bool | getAutoRemove () const |
Should the item remove itself from the Timeline when it is complete. | |
void | setAutoRemove (bool autoRemove=true) |
Sets whether the item will remove itself from the Timeline when it is complete. | |
virtual bool | updateAtLoopStart () |
Call update() only at the beginning of each loop (for example Cues exhibit require this behavior). | |
void | stepTo (float time, bool reverse) |
go to a specific time, generally called by the parent Timeline only. If reverse then playhead is interpreted as retreating rather than advancing. | |
Static Public Member Functions | |
static TimelineRef | create () |
Creates a new timeline, defaulted to infinite. | |
Protected Member Functions | |
Timeline () | |
virtual void | reverse () |
virtual TimelineItemRef | cloneReverse () const |
Creates a cloned item which runs in reverse relative to a timeline of duration timelineDuration. | |
virtual TimelineItemRef | clone () const |
Creates a clone of the item. | |
virtual void | start (bool reverse) |
virtual void | loopStart () |
virtual void | update (float absTime) |
virtual void | complete (bool reverse) |
void | eraseMarked () |
virtual float | calcDuration () const |
void | setDurationDirty () |
void | updateDuration () const |
float | loopTime (float absTime) |
Converts time from absolute to absolute based on item's looping attributes. | |
void | setTarget (void *target) |
Protected Attributes | |
bool | mDefaultAutoRemove |
float | mCurrentTime |
std::multimap< void *, TimelineItemRef > | mItems |
class Timeline * | mParent |
void * | mTarget |
float | mStartTime |
bool | mHasStarted |
bool | mHasReverseStarted |
bool | mComplete |
bool | mReverseComplete |
bool | mMarkedForRemoval |
bool | mInfinite |
bool | mLoop |
bool | mPingPong |
bool | mUseAbsoluteTime |
bool | mAutoRemove |
int32_t | mLastLoopIteration |
Friends | |
class | Timeline |
cinder::Timeline::Timeline | ( | ) | [protected] |
static TimelineRef cinder::Timeline::create | ( | ) | [static] |
Creates a new timeline, defaulted to infinite.
void cinder::Timeline::step | ( | float | timestep | ) |
Advances time a specified amount and evaluates items.
void cinder::Timeline::stepTo | ( | float | absoluteTime | ) |
Goes to a specific time and evaluates items.
float cinder::Timeline::getCurrentTime | ( | ) | const |
Returns the timeline's most recent current time.
Tween<T>::Options cinder::Timeline::apply | ( | Anim< T > * | target, | |
T | endValue, | |||
float | duration, | |||
EaseFn | easeFunction = easeNone , |
|||
typename Tween< T >::LerpFn | lerpFunction = &tweenLerp<T> | |||
) |
Replaces any existing tweens on the target with a new tween at the timeline's current time.
Tween<T>::Options cinder::Timeline::apply | ( | Anim< T > * | target, | |
T | startValue, | |||
T | endValue, | |||
float | duration, | |||
EaseFn | easeFunction = easeNone , |
|||
typename Tween< T >::LerpFn | lerpFunction = &tweenLerp<T> | |||
) |
Replaces any existing tweens on the target with a new tween at the timeline's current time.
Tween<T>::Options cinder::Timeline::appendTo | ( | Anim< T > * | target, | |
T | endValue, | |||
float | duration, | |||
EaseFn | easeFunction = easeNone , |
|||
typename Tween< T >::LerpFn | lerpFunction = &tweenLerp<T> | |||
) |
Creates a new tween and adds it to the end of the last tween on target, or if no existing tween matches the target, the current time.
Tween<T>::Options cinder::Timeline::appendTo | ( | Anim< T > * | target, | |
T | startValue, | |||
T | endValue, | |||
float | duration, | |||
EaseFn | easeFunction = easeNone , |
|||
typename Tween< T >::LerpFn | lerpFunction = &tweenLerp<T> | |||
) |
Creates a new tween and adds it to the end of the last tween on target, or if no existing tween matches the target, the current time.
Tween<T>::Options cinder::Timeline::applyPtr | ( | T * | target, | |
T | endValue, | |||
float | duration, | |||
EaseFn | easeFunction = easeNone , |
|||
typename Tween< T >::LerpFn | lerpFunction = &tweenLerp<T> | |||
) |
Replaces any existing tweens on the target with a new tween at the timeline's current time. Consider the apply( Anim<T>* ) variant unless you have an advanced use case.
Tween<T>::Options cinder::Timeline::applyPtr | ( | T * | target, | |
T | startValue, | |||
T | endValue, | |||
float | duration, | |||
EaseFn | easeFunction = easeNone , |
|||
typename Tween< T >::LerpFn | lerpFunction = &tweenLerp<T> | |||
) |
Replaces any existing tweens on the target with a new tween at the timeline's current time. Consider the apply( Anim<T>* ) variant unless you have an advanced use case.
Tween<T>::Options cinder::Timeline::appendToPtr | ( | T * | target, | |
T | endValue, | |||
float | duration, | |||
EaseFn | easeFunction = easeNone , |
|||
typename Tween< T >::LerpFn | lerpFunction = &tweenLerp<T> | |||
) |
Creates a new tween and adds it to the end of the last tween on target, or if no existing tween matches the target, the current time. Consider the appendTo( Anim<T>* ) variant unless you have an advanced use case.
Tween<T>::Options cinder::Timeline::appendToPtr | ( | T * | target, | |
T | startValue, | |||
T | endValue, | |||
float | duration, | |||
EaseFn | easeFunction = easeNone , |
|||
typename Tween< T >::LerpFn | lerpFunction = &tweenLerp<T> | |||
) |
Creates a new tween and adds it to the end of the last tween on target, or if no existing tween matches the target, the current time. Consider the appendTo( Anim<T>* ) variant unless you have an advanced use case.
CueRef cinder::Timeline::add | ( | std::function< void()> | action, | |
float | atTime | |||
) |
add a cue to the Timeline add the start-time atTime
FnTweenRef<T> cinder::Timeline::applyFn | ( | std::function< void(T)> | fn, | |
T | startValue, | |||
T | endValue, | |||
float | duration, | |||
EaseFn | easeFunction = easeNone , |
|||
typename Tween< T >::LerpFn | lerpFunction = &tweenLerp<T> | |||
) |
void cinder::Timeline::appendPingPong | ( | ) |
Appends to the end of the timeline mirror images of all items.
void cinder::Timeline::apply | ( | TimelineItemRef | item | ) |
Replaces any existing TimelineItems that match item's target and adds item to the timeline. Safe to use from callback fn's.
void cinder::Timeline::add | ( | TimelineItemRef | item | ) |
add an item to the timeline at the current time. Safe to use from callback fn's.
void cinder::Timeline::insert | ( | TimelineItemRef | item | ) |
adds an item to the timeline. Its start time is not modified. Safe to use from callback fn's.
void cinder::Timeline::insert | ( | TimelineItemRef | item, | |
float | atTime | |||
) |
adds an item to the timeline, setting its startTime to be at atTime. Safe to use from callback fn's.
size_t cinder::Timeline::getNumItems | ( | ) | const |
Returns the number of items in the Timeline.
TimelineItemRef cinder::Timeline::find | ( | void * | target | ) |
Returns the first item in the timeline the target of which matches target.
TimelineItemRef cinder::Timeline::findLast | ( | void * | target | ) |
Returns the latest-starting item in the timeline the target of which matches target.
float cinder::Timeline::findEndTimeOf | ( | void * | target, | |
bool * | found = NULL | |||
) |
Returns the end of the latest-ending item in the timeline the target of which matches target, or the current time if it's not found. found can store whether a related item was found.
void cinder::Timeline::remove | ( | TimelineItemRef | item | ) |
Removes the TimelineItem item from the Timeline. Safe to use from callback fn's.
void cinder::Timeline::removeTarget | ( | void * | target | ) |
Removes all TimelineItems whose target matches target.
void cinder::Timeline::cloneAndReplaceTarget | ( | void * | target, | |
void * | replacementTarget | |||
) |
Clones all TimelineItems whose target matches target, but replacing their target with replacementTarget.
void cinder::Timeline::replaceTarget | ( | void * | target, | |
void * | replacementTarget | |||
) |
Replaces the target of all TimelineItems whose target matches target, with replacementTarget.
void cinder::Timeline::clear | ( | ) |
Remove all tweens from the Timeline. Do not call from callback fn's.
void cinder::Timeline::reset | ( | bool | unsetStarted = false |
) | [virtual] |
Sets the time to zero, marks all tweens as not completed, and if unsetStarted, marks the tweens as not started. Do not call from callback fn's.
Reimplemented from cinder::TimelineItem.
void cinder::Timeline::setDefaultAutoRemove | ( | bool | defaultAutoRemove | ) |
Sets the default autoRemove value for all future TimelineItems added to the Timeline.
bool cinder::Timeline::getDefaultAutoRemove | ( | ) | const |
Returns the default autoRemove value for all future TimelineItems added to the Timeline.
void cinder::Timeline::itemTimeChanged | ( | TimelineItem * | item | ) |
Call this to notify the Timeline if the item's start-time or duration has changed. Advanced use cases only.
TimelineRef cinder::Timeline::thisRef | ( | ) |
Reimplemented from cinder::TimelineItem.
void cinder::Timeline::reverse | ( | ) | [protected, virtual] |
Implements cinder::TimelineItem.
TimelineItemRef cinder::Timeline::cloneReverse | ( | ) | const [protected, virtual] |
Creates a cloned item which runs in reverse relative to a timeline of duration timelineDuration.
Implements cinder::TimelineItem.
TimelineItemRef cinder::Timeline::clone | ( | ) | const [protected, virtual] |
Creates a clone of the item.
Implements cinder::TimelineItem.
virtual void cinder::Timeline::start | ( | bool | reverse | ) | [protected, virtual] |
Implements cinder::TimelineItem.
void cinder::Timeline::loopStart | ( | ) | [protected, virtual] |
Reimplemented from cinder::TimelineItem.
void cinder::Timeline::update | ( | float | absTime | ) | [protected, virtual] |
Implements cinder::TimelineItem.
virtual void cinder::Timeline::complete | ( | bool | reverse | ) | [protected, virtual] |
Implements cinder::TimelineItem.
void cinder::Timeline::eraseMarked | ( | ) | [protected] |
float cinder::Timeline::calcDuration | ( | ) | const [protected, virtual] |
Reimplemented from cinder::TimelineItem.
void* cinder::TimelineItem::getTarget | ( | ) | const [inherited] |
Returns the item's target pointer.
Reimplemented in cinder::Tween< T >.
float cinder::TimelineItem::getStartTime | ( | ) | const [inherited] |
Returns the item's start time.
void cinder::TimelineItem::setStartTime | ( | float | newTime | ) | [inherited] |
Set the items's start time to newTime.
float cinder::TimelineItem::getDuration | ( | ) | const [inherited] |
Returns the item's duration.
void cinder::TimelineItem::setDuration | ( | float | newDuration | ) | [inherited] |
Sets the item's duration to newDuration.
bool cinder::TimelineItem::getLoop | ( | ) | const [inherited] |
Returns whether the item starts over when it is complete.
void cinder::TimelineItem::setLoop | ( | bool | doLoop = true |
) | [inherited] |
Sets whether the item starts over when it is complete.
bool cinder::TimelineItem::getPingPong | ( | ) | const [inherited] |
Returns whether the item alternates between forward and reverse. Overrides loop when true.
void cinder::TimelineItem::setPingPong | ( | bool | pingPong = true |
) | [inherited] |
Sets whether the item alternates between forward and reverse. Overrides loop when true.
bool cinder::TimelineItem::getInfinite | ( | ) | const [inherited] |
Returns whether the item ever is marked as complete.
void cinder::TimelineItem::setInfinite | ( | bool | infinite = true |
) | [inherited] |
Sets whether the item ever is marked as complete.
float cinder::TimelineItem::getEndTime | ( | ) | const [inherited] |
Returns the time of the item's competion, equivalent to getStartTime() + getDuration().
class Timeline* cinder::TimelineItem::getParent | ( | ) | const [inherited] |
Returns a pointer to the item's parent Timeline.
void cinder::TimelineItem::removeSelf | ( | ) | [inherited] |
Removes the item from its parent Timeline.
bool cinder::TimelineItem::hasStarted | ( | ) | const [inherited] |
Returns whether the item has started.
bool cinder::TimelineItem::isComplete | ( | ) | [inherited] |
Returns whether the item has completed.
bool cinder::TimelineItem::getAutoRemove | ( | ) | const [inherited] |
Should the item remove itself from the Timeline when it is complete.
void cinder::TimelineItem::setAutoRemove | ( | bool | autoRemove = true |
) | [inherited] |
Sets whether the item will remove itself from the Timeline when it is complete.
virtual bool cinder::TimelineItem::updateAtLoopStart | ( | ) | [virtual, inherited] |
Call update() only at the beginning of each loop (for example Cues exhibit require this behavior).
Reimplemented in cinder::Cue.
void cinder::TimelineItem::stepTo | ( | float | time, | |
bool | reverse | |||
) | [inherited] |
go to a specific time, generally called by the parent Timeline only. If reverse then playhead is interpreted as retreating rather than advancing.
void cinder::TimelineItem::setDurationDirty | ( | ) | [protected, inherited] |
void cinder::TimelineItem::updateDuration | ( | ) | const [protected, inherited] |
float cinder::TimelineItem::loopTime | ( | float | absTime | ) | [protected, inherited] |
Converts time from absolute to absolute based on item's looping attributes.
void cinder::TimelineItem::setTarget | ( | void * | target | ) | [protected, inherited] |
friend class Timeline [friend, inherited] |
bool cinder::Timeline::mDefaultAutoRemove [protected] |
float cinder::Timeline::mCurrentTime [protected] |
std::multimap<void*,TimelineItemRef> cinder::Timeline::mItems [protected] |
class Timeline* cinder::TimelineItem::mParent [protected, inherited] |
void* cinder::TimelineItem::mTarget [protected, inherited] |
float cinder::TimelineItem::mStartTime [protected, inherited] |
bool cinder::TimelineItem::mHasStarted [protected, inherited] |
bool cinder::TimelineItem::mHasReverseStarted [protected, inherited] |
bool cinder::TimelineItem::mComplete [protected, inherited] |
bool cinder::TimelineItem::mReverseComplete [protected, inherited] |
bool cinder::TimelineItem::mMarkedForRemoval [protected, inherited] |
bool cinder::TimelineItem::mInfinite [protected, inherited] |
bool cinder::TimelineItem::mLoop [protected, inherited] |
bool cinder::TimelineItem::mPingPong [protected, inherited] |
bool cinder::TimelineItem::mUseAbsoluteTime [protected, inherited] |
bool cinder::TimelineItem::mAutoRemove [protected, inherited] |
int32_t cinder::TimelineItem::mLastLoopIteration [protected, inherited] |