41 lines
1008 B
C++
41 lines
1008 B
C++
#ifndef AI_FEZLOADER_H_INC
|
|
#define AI_FEZLOADER_H_INC
|
|
|
|
#include <assimp/BaseImporter.h>
|
|
#include <assimp/XmlParser.h>
|
|
#include <assimp/mesh.h>
|
|
#include <map>
|
|
#include <filesystem>
|
|
|
|
namespace Assimp {
|
|
class FezLoader : public BaseImporter {
|
|
public:
|
|
FezLoader();
|
|
~FezLoader() override;
|
|
|
|
bool CanRead(const std::string &pFile, IOSystem *pIOHandler, bool checkSig) const override;
|
|
|
|
protected:
|
|
const aiImporterDesc *GetInfo() const override;
|
|
|
|
void InternReadFile(const std::string &pFile, aiScene *pScene, IOSystem *pIOHandler) override;
|
|
|
|
unsigned int GetTrileMeshFromId(const int trileId);
|
|
|
|
aiVector3D GetFezVec3(const XmlNode &t, bool direct = false);
|
|
aiVector2D GetFezVec2(const XmlNode &t, bool direct = false);
|
|
|
|
private:
|
|
std::filesystem::path mFezAssetDir;
|
|
std::string mFileName;
|
|
XmlParser mLevelParser;
|
|
XmlParser mTrileParser;
|
|
|
|
std::map<int, XmlNode> mTriles;
|
|
std::map<int, unsigned int> mTrileMap;
|
|
std::vector<aiMesh*> mTrileMeshes;
|
|
};
|
|
}
|
|
|
|
#endif
|