559bool mLoop; // should the
// anim loop?public:
/// Gets the name of the animation.
const String& getAnimationName() const;/// Gets the time position (local clock) for this
/// anim.
Real getTimePosition(void) const;/// Sets the time position (local clock) for this
/// anim.
void setTimePosition(Real timePos);/// Gets the weight (influence) of this animation
Real getWeight(void) const;/// Sets the weight (influence) of this animation
void setWeight(Real weight);/// Modifies the time position, adjusting for
/// animation duration. This method loops if looping
/// is enabled.
void addTime(Real offset);/// Returns true if the animation has reached the
/// end of local time line, and is not looping.
bool hasEnded(void) const;/// Returns true if this animation is currently
/// enabled.
bool getEnabled(void) const;/// Sets whether or not this animation is enabled.
void setEnabled(bool enabled);/// Sets whether or not this animation should loop.
void setLoop(bool loop) { mLoop = loop; }/// Gets whether or not this animation loops.
bool getLoop(void) const { return mLoop; }};Each AnimationState keeps track of one animation clip’s local clock and
its blend weight. When calculating the fi nal pose of the skeleton for a particu-
lar Ogre::Entity, Ogre’s animation system simply loops through each active
11.10. The Animation Pipeline