| 57 | } |
| 58 | |
| 59 | void Timeline::stepTo( float absoluteTime ) |
| 60 | { |
| 61 | bool reverse = mCurrentTime > absoluteTime; |
| 62 | mCurrentTime = absoluteTime; |
| 63 | |
| 64 | eraseMarked(); |
| 65 | |
| 66 | // we need to cache the end(). If a tween's update() fn or similar were to manipulate |
| 67 | // the list of items by adding new ones, we'll have invalidated our iterator. |
| 68 | // Deleted items are never removed immediately, but are marked for deletion. |
| 69 | s_iter endItem = mItems.end(); |
| 70 | for( s_iter iter = mItems.begin(); iter != endItem; ++iter ) { |
| 71 | iter->second->stepTo( mCurrentTime, reverse ); |
| 72 | if( iter->second->isComplete() && iter->second->getAutoRemove() ) |
| 73 | iter->second->mMarkedForRemoval = true; |
| 74 | } |
| 75 | |
| 76 | eraseMarked(); |
| 77 | } |
| 78 | |
| 79 | CueRef Timeline::add( const std::function<void ()> &action, float atTime ) |
| 80 | { |
no test coverage detected