cinder::Timeline Class Reference

#include <Timeline.h>

Inherits cinder::TimelineItem.

List of all members.

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 TimelinegetParent () 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 TimelinemParent
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

Constructor & Destructor Documentation

cinder::Timeline::Timeline (  )  [protected]

Member Function Documentation

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.

template<typename T >
Tween<T>::Options cinder::Timeline::apply ( Anim< T > *  target,
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 cinder::Timeline::apply ( Anim< T > *  target,
startValue,
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 cinder::Timeline::appendTo ( Anim< T > *  target,
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 cinder::Timeline::appendTo ( Anim< T > *  target,
startValue,
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 cinder::Timeline::applyPtr ( T *  target,
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 cinder::Timeline::applyPtr ( T *  target,
startValue,
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 cinder::Timeline::appendToPtr ( T *  target,
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 cinder::Timeline::appendToPtr ( T *  target,
startValue,
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

template<typename T >
FnTweenRef<T> cinder::Timeline::applyFn ( std::function< void(T)>  fn,
startValue,
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]

Friends And Related Function Documentation

friend class Timeline [friend, inherited]

Member Data Documentation

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]

The documentation for this class was generated from the following files: