/* ----------------------------------------------------------------------------- GSFramework Copyright 2001-2013 Emmanuel Julien. All Rights Reserved. ----------------------------------------------------------------------------- */ #ifndef __NMOTIONSET__ #define __NMOTIONSET__ #include "motion/motion.h" #include "container/nmap.h" namespace GS { namespace Core { /// A motion set holds a reference to several motions. struct SceneMotion { String name; struct ItemMotion { uint uid; SharedPtr motion; }; AutoList item_motions; void Clone(const SceneMotion &src, const TimeRange &range, bool enforce_loop); Motion *GetItemMotion(uint uid, bool create_if_missing = false); TimeRange GetTimeRange() const; Time GetDuration() const { return GetTimeRange().valueRange(); } bool FromMetaTag(NML::Tag &, const Map *uid_map = 0); NML::Tag *AsMetaTag(); }; } // Core } // GS #endif // __NMOTIONSET__