/*! * @file md3_model.h * * Code heavely inspired by: JAVA MD3 Model Viewer - A Java based Quake 3 model viewer * Copyright (C) 1999 Erwin 'KLR8' Vervaet */ #ifndef _MD3_MODEL_H #define _MD3_MODEL_H #include #include "model.h" class MD3BoneFrame; class MD3Mesh; namespace md3 { class MD3Model : public Model { public: MD3Model(std::string filename, float scaling); ~MD3Model(); private: std::string filename; //!< the name of the file as recorded in the .md3 file std::string loadFilename; //!< filename of the actual file from which data was loaded int boneFrameNum; //!< number of anumation key fames in the models int tagNum; //!< number of tags int meshNum; //!< number of meshes int maxTextureNum; //!< maximum number of unique used in an md3 file int boneFrameStart; //!< starting position of bone frame data structures int tagStart; //!< starting position of tag-structures int meshStart; //!< starting position of mesh structures int fileSize; //!< file size MD3BoneFrame* boneFrames; //!< array of bone frames, contains the metadata (bounding box, tags,...) for each frame MD3Mesh* meshes; //!< array of meshes in the model. each containing the mesh for each of the animation int parentTagIndex; //!< tag index MD3Model* parent; //!< reference to the MD3Model }; } #endif /* _MD3_MODEL_H */