+ void play_stacked(AnimatedObject &, const Animation &, float = 1.0f);
+
+ void play_stacked(Placeable &, const Animation &, float = 1.0f);
+
+ /// Returns the number of animations currently affecting an object.
+ unsigned get_n_active_animations(const AnimatedObject &) const;
+
+ /** Request delivery of animation events for the given object. Events will
+ be delivered from all current and future animations until the observer is
+ removed. */
+ void observe_events(AnimatedObject &, AnimationEventObserver &);
+
+ /// Remove an event observer from one object.
+ void unobserve_events(AnimatedObject &, AnimationEventObserver &);
+
+ /// Remove an event observer from all objects.
+ void unobserve_events(AnimationEventObserver &);
+
+ /// Stops all animations affecting an object.
+ void stop(Placeable &);