#ifndef OBJ_H #define OBJ_H #ifndef yyFlexLexer # define yyFlexLexer objbaseFlexLexer # include #endif #include #include #include #include #include class ObjParser : yyFlexLexer { public: explicit ObjParser(const std::filesystem::path & fileName) : ObjParser {std::make_unique(fileName)} { } explicit ObjParser(std::unique_ptr in) : yyFlexLexer(in.get()) { ObjParser::yylex(); } int yylex() override; std::vector vertices; std::vector texCoords; std::vector normals; using FaceElement = glm::vec<3, int>; using Face = std::vector; std::vector faces; glm::length_t axis {0}; }; #endif