#include <msp/time/timedelta.h>
#include "animation.h"
+#include "matrix.h"
namespace Msp {
namespace GL {
ObjectSlot(AnimatedObject &);
};
- typedef std::map<AnimatedObject *, ObjectSlot> ObjectMap;
+ typedef std::map<const AnimatedObject *, ObjectSlot> ObjectMap;
ObjectMap objects;
playing yet, the object's current matrix is used as the base. */
void play_stacked(AnimatedObject &, const Animation &);
- /// Stops any animations affecting an object.
+ /// Returns the number of animations currently affecting an object.
+ unsigned get_n_active_animations(const AnimatedObject &) const;
+
+ /// Stops all animations affecting an object.
void stop(AnimatedObject &);
+ /// Stops a single animation affecting an object.
+ void stop(AnimatedObject &, const Animation &);
+
/** Advances all playing animations. Should be called in a regular manner,
preferably just before rendering. */
void tick(const Time::TimeDelta &);