// Copyright (C) 2002-2007 Nikolaus Gebhardt // This file is part of the "Irrlicht Engine". // For conditions of distribution and use, see copyright notice in irrlicht.h #ifndef __I_ANIMATED_MESH_MD2_H_INCLUDED__ #define __I_ANIMATED_MESH_MD2_H_INCLUDED__ #include "IAnimatedMesh.h" namespace irr { namespace scene { //! Types of standard md2 animations enum EMD2_ANIMATION_TYPE { EMAT_STAND = 0, EMAT_RUN, EMAT_ATTACK, EMAT_PAIN_A, EMAT_PAIN_B, EMAT_PAIN_C, EMAT_JUMP, EMAT_FLIP, EMAT_SALUTE, EMAT_FALLBACK, EMAT_WAVE, EMAT_POINT, EMAT_CROUCH_STAND, EMAT_CROUCH_WALK, EMAT_CROUCH_ATTACK, EMAT_CROUCH_PAIN, EMAT_CROUCH_DEATH, EMAT_DEATH_FALLBACK, EMAT_DEATH_FALLFORWARD, EMAT_DEATH_FALLBACKSLOW, EMAT_BOOM, //! Not an animation, but amount of animation types. EMAT_COUNT }; //! Interface for using some special functions of MD2 meshes class IAnimatedMeshMD2 : public IAnimatedMesh { public: // Get frame loop data for a default MD2 animation type. //! \param l: The EMD2_ANIMATION_TYPE to get the frames for. //! \param outBegin: The returned beginning frame for animation type specified. //! \param outEnd: The returned ending frame for the animation type specified. //! \param outFPS: The number of frames per second, this animation should be played at. //! \return Returns the beginframe, endframe and frames per second for a default MD2 animation type. virtual void getFrameLoop(EMD2_ANIMATION_TYPE l, s32& outBegin, s32& outEnd, s32& outFPS) const = 0; // Get frame loop data for a special MD2 animation type, identified by name. //! \param name: Name of the animation. //! \param outBegin: The returned beginning frame for animation type specified. //! \param outEnd: The returned ending frame for the animation type specified. //! \param outFPS: The number of frames per second, this animation should be played at. //! \return Returns the beginframe, endframe and frames per second for a special MD2 animation type. virtual bool getFrameLoop(const c8* name, s32& outBegin, s32& outEnd, s32& outFPS) const = 0; //! Returns amount of md2 animations in this file. virtual s32 getAnimationCount() const = 0; //! Returns name of md2 animation. //! \param nr: Zero based index of animation. virtual const c8* getAnimationName(s32 nr) const = 0; }; } // end namespace scene } // end namespace irr #endif