#ifndef OPENMW_COMPONENTS_SCENEUTIL_KEYFRAME_HPP #define OPENMW_COMPONENTS_SCENEUTIL_KEYFRAME_HPP #include #include #include #include #include namespace SceneUtil { class KeyframeController : public SceneUtil::Controller, public virtual osg::Callback { public: KeyframeController() {} KeyframeController(const KeyframeController& copy, const osg::CopyOp& copyop) : osg::Callback(copy, copyop) , SceneUtil::Controller(copy) {} META_Object(SceneUtil, KeyframeController) virtual osg::Vec3f getTranslation(float time) const { return osg::Vec3f(); } }; /// Wrapper object containing an animation track as a ref-countable osg::Object. struct TextKeyMapHolder : public osg::Object { public: TextKeyMapHolder() {} TextKeyMapHolder(const TextKeyMapHolder& copy, const osg::CopyOp& copyop) : osg::Object(copy, copyop) , mTextKeys(copy.mTextKeys) {} TextKeyMap mTextKeys; META_Object(SceneUtil, TextKeyMapHolder) }; /// Wrapper object containing the animation track and its KeyframeControllers. class KeyframeHolder : public osg::Object { public: KeyframeHolder() {} KeyframeHolder(const KeyframeHolder& copy, const osg::CopyOp& copyop) : mTextKeys(copy.mTextKeys) , mKeyframeControllers(copy.mKeyframeControllers) { } TextKeyMap mTextKeys; META_Object(SceneUtil, KeyframeHolder) /// Controllers mapped to node name. typedef std::map > KeyframeControllerMap; KeyframeControllerMap mKeyframeControllers; }; } #endif