diff options
Diffstat (limited to 'Runtime/Animation/RuntimeAnimatorController.h')
-rw-r--r-- | Runtime/Animation/RuntimeAnimatorController.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/Runtime/Animation/RuntimeAnimatorController.h b/Runtime/Animation/RuntimeAnimatorController.h new file mode 100644 index 0000000..058891a --- /dev/null +++ b/Runtime/Animation/RuntimeAnimatorController.h @@ -0,0 +1,81 @@ +#ifndef AVATARCONTROLLER_H +#define AVATARCONTROLLER_H + +#include "Runtime/BaseClasses/NamedObject.h" +#include "Runtime/BaseClasses/MessageIdentifier.h" +#include "Runtime/mecanim/memory.h" +#include "Runtime/Animation/MecanimUtility.h" +#include "Runtime/mecanim/animation/avatar.h" + +#include "Runtime/Misc/UserList.h" + +template<class T> +class PPtr; +class AnimationClip; +class StateMachine; +class AvatarMask; + +class RuntimeAnimatorController; + +typedef std::vector<PPtr<AnimationClip> > AnimationClipVector; + +namespace UnityEngine +{ + namespace Animation + { + struct AnimationSetBindings; + } +} + +namespace mecanim +{ + namespace animation + { + struct ControllerConstant; + } +} + +class RuntimeAnimatorController : public NamedObject +{ + +public: + + REGISTER_DERIVED_ABSTRACT_CLASS (RuntimeAnimatorController, NamedObject) + DECLARE_OBJECT_SERIALIZE (RuntimeAnimatorController) + + RuntimeAnimatorController(MemLabelId label, ObjectCreationMode mode); + + + static void InitializeClass (); + static void CleanupClass () {} + + virtual mecanim::animation::ControllerConstant* GetAsset() = 0 ; + virtual UnityEngine::Animation::AnimationSetBindings* GetAnimationSetBindings() = 0 ; + + virtual AnimationClipVector GetAnimationClips() const = 0; + + virtual std::string StringFromID(unsigned int ID) const = 0; + + void AddObjectUser( UserList& user ) { m_ObjectUsers.AddUser(user); } + void AddObjectUser( UserListNode& user ) { m_ObjectUsers.AddUser(user); } + + void NotifyObjectUsers(const MessageIdentifier& msg); + UserList& GetUserList () { return m_ObjectUsers; } + + +protected: + + virtual void RegisterAnimationClips() ; + + UserList m_ObjectUsers; // for animatorControllers + UserList m_DependencyList; // for animationclips + +private: + + virtual AnimationClipVector GetAnimationClipsToRegister() const = 0; + + +}; + + +#endif |