| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- #ifndef ANIMATIONCONTROLLER_H_
- #define ANIMATIONCONTROLLER_H_
- #include "AnimationClip.h"
- #include "Animation.h"
- #include "AnimationTarget.h"
- #include "Properties.h"
- namespace gameplay
- {
- /**
- * Defines a class for controlling game animation.
- */
- class AnimationController
- {
- friend class Game;
- friend class Animation;
- friend class AnimationClip;
- friend class SceneLoader;
- public:
- /**
- * Stops all AnimationClips currently playing on the AnimationController.
- */
- void stopAllAnimations();
-
- private:
- /**
- * The states that the AnimationController may be in.
- */
- enum State
- {
- RUNNING,
- IDLE,
- PAUSED,
- STOPPED
- };
- /**
- * Constructor.
- */
- AnimationController();
- /**
- * Constructor.
- */
- AnimationController(const AnimationController& copy);
- /**
- * Destructor.
- */
- ~AnimationController();
- /**
- * Gets the controller's state.
- *
- * @return The current state.
- */
- State getState() const;
- /**
- * Callback for when the controller is initialized.
- */
- void initialize();
- /*
- * Callback for when the controller is finalized.
- */
- void finalize();
- /**
- * Resumes the AnimationController.
- */
- void resume();
-
- /**
- * Pauses the AnimationController.
- */
- void pause();
- /**
- * Schedules an AnimationClip to run.
- */
- void schedule(AnimationClip* clip);
- /**
- * Unschedules an AnimationClip.
- */
- void unschedule(AnimationClip* clip);
-
- /**
- * Callback for when the controller receives a frame update event.
- */
- void update(long elapsedTime);
-
- State _state; // The current state of the AnimationController.
- std::list<AnimationClip*> _runningClips; // A list of running AnimationClips.
- };
- }
- #endif
|