diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-11-16 00:07:48 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-11-16 00:07:48 +0000 |
commit | b7fadd730a78671a0eaf55c36df24c04661ef2c3 (patch) | |
tree | a9d5bce62b3c6e42008d7e0f637665aa97b73764 /gfx/models/obj.impl.cpp | |
parent | Don't write null value for pointers (diff) | |
download | ilt-b7fadd730a78671a0eaf55c36df24c04661ef2c3.tar.bz2 ilt-b7fadd730a78671a0eaf55c36df24c04661ef2c3.tar.xz ilt-b7fadd730a78671a0eaf55c36df24c04661ef2c3.zip |
Swap y,z axis
This was a pain... but all the coords make much more sense now and a lot of mystery negation has disappeared.
Diffstat (limited to 'gfx/models/obj.impl.cpp')
-rw-r--r-- | gfx/models/obj.impl.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gfx/models/obj.impl.cpp b/gfx/models/obj.impl.cpp index 330e851..0701d13 100644 --- a/gfx/models/obj.impl.cpp +++ b/gfx/models/obj.impl.cpp @@ -9,6 +9,19 @@ #include <utility> #include <vector> +ObjParser::ObjParser(const std::filesystem::path & fileName) : ObjParser {std::make_unique<std::ifstream>(fileName)} { } + +ObjParser::ObjParser(std::unique_ptr<std::istream> in) : yyFlexLexer(in.get()) +{ + assert(in); + ObjParser::yylex(); + assert(in->good()); + std::for_each(vertices.begin(), vertices.end(), [](auto & v) { + std::swap(v.y, v.z); + v.x = -v.x; + }); +} + ObjParser::NamedMeshes ObjParser::createMeshes() const { |