diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-02-13 14:52:03 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-02-13 14:52:03 +0000 |
commit | d2b167f2d1ca15e42a177b65cdf34f35592452f7 (patch) | |
tree | acdd75da65e879412934fb024274a6849b823439 /gfx/models/obj_loader.h | |
parent | Flip texture images to match OpenGL expectations (diff) | |
download | ilt-d2b167f2d1ca15e42a177b65cdf34f35592452f7.tar.bz2 ilt-d2b167f2d1ca15e42a177b65cdf34f35592452f7.tar.xz ilt-d2b167f2d1ca15e42a177b65cdf34f35592452f7.zip |
New .obj parser, packer, mesher
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 |