41 lines
826 B
C++
41 lines
826 B
C++
|
|
#pragma once
|
|
|
|
#include "resource/ResourceManager.h"
|
|
#include "system/neArray.h"
|
|
#include "renderer/Model.h"
|
|
|
|
struct loadMDLOut_t{
|
|
loadMDLOut_t(){
|
|
meshes = 0;
|
|
}
|
|
~loadMDLOut_t(){
|
|
if(meshes)
|
|
delete[] meshes;
|
|
}
|
|
int numMeshes;
|
|
struct mdlOutMesh_t{
|
|
uint64_t vertOffs;
|
|
int vertCount;
|
|
uint64_t indOffs;
|
|
int indCount;
|
|
} *meshes;
|
|
//int numBones;
|
|
neArray<bone_t> bones;
|
|
neArray<Animation_t> anims;
|
|
};
|
|
|
|
class MDLLoader: public IModelLoader{
|
|
public:
|
|
MDLLoader(ResourceManager *resMan):IModelLoader(resMan){}
|
|
|
|
Model *Load(const char *name);
|
|
bool CheckExt(const char *name);
|
|
const char *GetExt(){return "mdl";}
|
|
private:
|
|
bool LoadMDL(const char *name, loadMDLOut_t &mdlData);
|
|
bool LoadVVD(const char *name, Model *mdl, int lod);
|
|
bool LoadVTX(const char *name, Model *mdl, loadMDLOut_t &mdlData, int lod);
|
|
};
|
|
|