diff options
Diffstat (limited to 'gfx/models/obj_loader.h')
-rw-r--r-- | gfx/models/obj_loader.h | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/gfx/models/obj_loader.h b/gfx/models/obj_loader.h deleted file mode 100644 index 2fe3d35..0000000 --- a/gfx/models/obj_loader.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef OBJ_LOADER_H_INCLUDED -#define OBJ_LOADER_H_INCLUDED - -#include <filesystem> -#include <glm/glm.hpp> -#include <string> -#include <vector> - -struct OBJIndex { - unsigned int vertexIndex; - unsigned int uvIndex; - unsigned int normalIndex; - - bool - operator<(const OBJIndex & r) const - { - return vertexIndex < r.vertexIndex; - } -}; - -class IndexedModel { -public: - std::vector<glm::vec3> positions; - std::vector<glm::vec2> texCoords; - std::vector<glm::vec3> normals; - std::vector<unsigned int> indices; - - void CalcNormals(); -}; - -class OBJModel { -public: - std::vector<OBJIndex> OBJIndices; - std::vector<glm::vec3> vertices; - std::vector<glm::vec2> uvs; - std::vector<glm::vec3> normals; - bool hasUVs; - bool hasNormals; - - explicit OBJModel(const std::filesystem::path & fileName); - - IndexedModel ToIndexedModel(); - -private: - unsigned int FindLastVertexIndex( - const std::vector<OBJIndex *> & indexLookup, const OBJIndex * currentIndex, const IndexedModel & result); - void CreateOBJFace(const std::string & line); - static glm::vec2 ParseOBJVec2(const std::string & line); - static glm::vec3 ParseOBJVec3(const std::string & line); - static OBJIndex ParseOBJIndex(const std::string & token, bool * hasUVs, bool * hasNormals); -}; - -#endif // OBJ_LOADER_H_INCLUDED |