#ifndef LOADER_H
#define LOADER_H

#include <string>
#include <vector>
#include <unordered_map>
#include <glm/vec3.hpp>

class Image;
class Mesh;
class Font;

class Loader
{
    static std::string obj_directory;
    static std::string mtl_directory;
    static std::string tex_directory;

public:
    static std::string* loadTextFile(const std::string &filename);
    static std::unordered_map<std::string, std::string>* loadConfigFile(const std::string &filename);
    static Image* loadImage(const std::string &filename, int depth = 32, bool reversed = true);
    static std::vector<Mesh*> loadMesh(const std::string &filename);
    static Font* loadFont(const std::string &texture, const std::string &description);
    static bool loadMTL(const std::string &filename);


    static void setObjDirectory(std::string);
    static void setMtlDirectory(std::string);
    static void setTexDirectory(std::string);
};

#endif // LOADER_H
