00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt 00002 // This file is part of the "Irrlicht Engine". 00003 // For conditions of distribution and use, see copyright notice in irrlicht.h 00004 00005 #ifndef __I_SCENE_NODE_ANIMATOR_FACTORY_H_INCLUDED__ 00006 #define __I_SCENE_NODE_ANIMATOR_FACTORY_H_INCLUDED__ 00007 00008 #include "IReferenceCounted.h" 00009 #include "ESceneNodeAnimatorTypes.h" 00010 00011 namespace irr 00012 { 00013 namespace scene 00014 { 00015 class ISceneNode; 00016 class ISceneNodeAnimator; 00017 00019 00027 class ISceneNodeAnimatorFactory : public virtual IReferenceCounted 00028 { 00029 public: 00030 00032 00036 virtual ISceneNodeAnimator* createSceneNodeAnimator(ESCENE_NODE_ANIMATOR_TYPE type, ISceneNode* target) = 0; 00037 00039 00043 virtual ISceneNodeAnimator* createSceneNodeAnimator(const c8* typeName, ISceneNode* target) = 0; 00044 00046 virtual u32 getCreatableSceneNodeAnimatorTypeCount() const = 0; 00047 00049 00051 virtual ESCENE_NODE_ANIMATOR_TYPE getCreateableSceneNodeAnimatorType(u32 idx) const = 0; 00052 00054 00056 virtual const c8* getCreateableSceneNodeAnimatorTypeName(u32 idx) const = 0; 00057 00059 00061 virtual const c8* getCreateableSceneNodeAnimatorTypeName(ESCENE_NODE_ANIMATOR_TYPE type) const = 0; 00062 }; 00063 00064 00065 } // end namespace scene 00066 } // end namespace irr 00067 00068 #endif 00069