/* * Copyright (C) 2016+ AzerothCore , released under GNU GPL v2 license: http://github.com/azerothcore/azerothcore-wotlk/LICENSE-GPL2 * Copyright (C) 2008-2016 TrinityCore * Copyright (C) 2005-2009 MaNGOS */ #ifndef MODEL_H #define MODEL_H #include "loadlib/loadlib.h" #include "vec3d.h" #include "modelheaders.h" #include class MPQFile; Vec3D fixCoordSystem(Vec3D v); class Model { private: void _unload() { delete[] vertices; delete[] indices; vertices = nullptr; indices = nullptr; } std::string filename; public: ModelHeader header; Vec3D* vertices; uint16* indices; bool open(); bool ConvertToVMAPModel(char const* outfilename); Model(std::string& filename); ~Model() { _unload(); } }; class ModelInstance { public: uint32 id{0}; Vec3D pos, rot; uint16 scale{0}, flags{0}; float sc{0.0f}; ModelInstance() {} ModelInstance(MPQFile& f, char const* ModelInstName, uint32 mapID, uint32 tileX, uint32 tileY, FILE* pDirfile); }; #endif