Irrlicht 3D Engine
IAnimatedMesh.h
Go to the documentation of this file.
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_ANIMATED_MESH_H_INCLUDED__
00006 #define __I_ANIMATED_MESH_H_INCLUDED__
00007 
00008 #include "aabbox3d.h"
00009 #include "IMesh.h"
00010 
00011 namespace irr
00012 {
00013 namespace scene
00014 {
00016     enum E_ANIMATED_MESH_TYPE
00017     {
00019         EAMT_UNKNOWN = 0,
00020 
00022         EAMT_MD2,
00023 
00025         EAMT_MD3,
00026 
00028         EAMT_OBJ,
00029 
00031         EAMT_BSP,
00032 
00034         EAMT_3DS,
00035 
00037         EAMT_MY3D,
00038 
00040         EAMT_LMTS,
00041 
00043         EAMT_CSM,
00044 
00046 
00048         EAMT_OCT,
00049 
00051         EAMT_MDL_HALFLIFE,
00052 
00054         EAMT_SKINNED
00055     };
00056 
00058 
00062     class IAnimatedMesh : public IMesh
00063     {
00064     public:
00065 
00067 
00069         virtual u32 getFrameCount() const = 0;
00070 
00072 
00075         virtual f32 getAnimationSpeed() const = 0;
00076 
00078 
00082         virtual void setAnimationSpeed(f32 fps) =0;
00083 
00085 
00097         virtual IMesh* getMesh(s32 frame, s32 detailLevel=255, s32 startFrameLoop=-1, s32 endFrameLoop=-1) = 0;
00098 
00100 
00105         virtual E_ANIMATED_MESH_TYPE getMeshType() const
00106         {
00107             return EAMT_UNKNOWN;
00108         }
00109     };
00110 
00111 } // end namespace scene
00112 } // end namespace irr
00113 
00114 #endif
00115