obj_slot.animations.push_back(AnimationSlot(anim));
}
+unsigned AnimationPlayer::get_n_active_animations(const AnimatedObject &obj) const
+{
+ ObjectMap::const_iterator i = objects.find(&obj);
+ return (i!=objects.end() ? i->second.animations.size() : 0);
+}
+
void AnimationPlayer::stop(AnimatedObject &obj)
{
objects.erase(&obj);
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 &);
+ /// Returns the number of animations currently affecting an object.
+ unsigned get_n_active_animations(const AnimatedObject &) const;
+
/// Stops any animations affecting an object.
void stop(AnimatedObject &);