123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466 |
-
-
-
-
- #ifndef __FREYJA_MONGOOSE_MD3ANIMMODEL_H_
- #define __FREYJA_MONGOOSE_MD3ANIMMODEL_H_
-
- #include "Md3.h"
-
-
- typedef enum
- {
- MD3_LOD_HIGH = 0,
- MD3_LOD_MED = 1,
- MD3_LOD_LOW = 2,
-
- } md3_lod_t;
-
- typedef enum
- {
- MD3_SEX_MALE = 0,
- MD3_SEX_FEMALE = 1,
- MD3_SEX_NEUTER = 2,
-
- } md3_sex_t;
-
- typedef enum
- {
- UNSUPPORTED = -1,
- BOTH_DEATH1 = 0,
- BOTH_DEAD1,
- BOTH_DEATH2,
- BOTH_DEAD2,
- BOTH_DEATH3,
- BOTH_DEAD3,
- TORSO_GESTURE,
- TORSO_ATTACK,
- TORSO_ATTACK2,
- TORSO_DROP,
- TORSO_RAISE,
- TORSO_STAND,
- TORSO_STAND2,
- LEGS_WALKCR,
- LEGS_WALK,
- LEGS_RUN,
- LEGS_BACK,
- LEGS_SWIM,
- LEGS_JUMP,
- LEGS_LAND,
- LEGS_JUMPB,
- LEGS_LANDB,
- LEGS_IDLE,
- LEGS_IDLECR,
- LEGS_TURN
-
-
- } md3_animation_id_t;
-
- typedef struct md3_texture_s
- {
- char *name;
- unsigned int name_len;
- int gl_texture_id;
-
- } md3_texture_t;
-
- typedef struct md3_animation_s
- {
- md3_animation_id_t id;
-
- unsigned int first_frame;
- unsigned int end_frame;
- unsigned int num_frames;
- unsigned int looping_frames;
- unsigned int frames_per_second;
-
- } md3_animation_t;
-
-
- class Md3AnimModel
- {
- public:
-
- enum Md3AnimModelFlags
- {
- fDisableTagInterpolate = 1,
- fAnimate = 2,
- fRenderBones = 4,
- fDrawWeapon = 8,
- fDisableMeshInterpolate = 16,
- fRenderingWarnings = 32,
- fUseNormals = 64
- };
-
-
-
-
-
-
- Md3AnimModel();
-
-
-
- ~Md3AnimModel();
-
-
-
-
-
-
-
-
- unsigned int getFlags();
-
-
-
- md3_animation_id_t getAnimUpper();
-
-
-
- md3_animation_id_t getAnimLower();
-
-
-
-
-
-
-
-
- void setFlag(Md3AnimModelFlags flag);
-
-
-
- void toggleFlag(Md3AnimModelFlags flag);
-
-
-
- void setAnimUpper(md3_animation_id_t anim);
-
-
-
- void setAnimLower(md3_animation_id_t anim);
-
-
-
- void setDebug(unsigned char level);
-
-
-
- int load(char *modelPath, char *skin, md3_lod_t modelLoD);
-
-
-
- int loadAnimations(char *modelPath);
-
-
-
- int loadWeapon(char *modelPath, const char *name);
-
-
-
- void render();
-
-
-
- void renderTag(unsigned int id);
-
-
-
- void renderModel(Md3 &model);
-
-
-
-
- unsigned int texNumTest;
-
- md3_texture_t texTest[32];
-
-
- private:
-
-
-
-
-
-
-
-
-
-
- void setCurrentTime(Md3 &model);
-
-
-
- void updateModel(Md3 &model);
-
-
-
- void initMd3(Md3 &model, unsigned int id);
-
-
-
- int addAnim(char *modelPath, md3_animation_id_t id,
- unsigned int firstFrame, unsigned int numFrames,
- unsigned int loopingFrames, unsigned int framesPerSecond);
-
-
-
- int loadMd3(Md3 &model, const char *base, char *modelPath, char *skin,
- md3_lod_t modelLoD);
-
-
-
- int loadSkin(Md3 &model, char *filename);
-
-
-
- int loadShader(Md3 &model, char *filename);
-
-
-
- void connectModels(char *tagName, Md3 &modelA, Md3 &modelB);
-
-
-
- int cacheTexture(char *texture);
-
-
-
- unsigned int mFlags;
-
- Md3 m_head;
-
- Md3 m_upper;
-
- Md3 m_lower;
-
- Md3 m_weapon;
-
- unsigned int m_animCount;
-
- unsigned char m_debug;
-
- md3_sex_t m_sex;
-
- md3_animation_t m_anim[32];
-
- md3_animation_id_t m_upperAnim;
-
- md3_animation_id_t m_lowerAnim;
- };
-
- #endif
|