-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make MotionGroup semantics simpler #24
Comments
MotionGroup could compose a // Pass along a local timeline
auto my_timeline = make_shared<Timeline>();
main_timeline.addTimeline( my_timeline );
my_timeline->append( … );
// Create a MotionGroup with a new timeline
auto &group = main_timeline.createGroup();
// As a shared_ptr, the group's timeline is safe to store (though the group is not)
auto my_timeline = group.getTimeline(); It would also enable the weird situation where one timeline could be driven by multiple other timelines. That seems like a more reasonable tradeoff than storing all timeline items as shared_ptr's |
If |
|
This changes the semantics of Timelines, since TimelineItems have an idea of where they are in time, and Timelines previously did not. Hopefully, it makes Timelines easier to reason about. |
Proceeding with the grouping_unique branch, which minimizes the number of changes and maintains relative performance. TODO:
Maybe:
|
Still a few loose ends, but this is mostly complete (and the working beginnings are merged in to master). |
Working with MotionGroup is not fun. Come up with an alternative. Best-seeming solution is the one from previous iterations of Choreograph: make
Timeline
aTimelineItem
.Instead of wrapping own timeline, wrap items that are on its parent timeline. Might make it possible to append the grouped animations more simply.At present, to append a MotionGroup after another one that moves the same output variables, we must use the first group's finishFn to trigger the second group creation. Not a huge deal, but potentially confusing since the groups have their own timelines.The text was updated successfully, but these errors were encountered: