From 908f4469645eb64e90b2aac6e3cc0e17fc73870e Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Thu, 12 Apr 2018 01:25:56 +0100 Subject: Adding more support for 3D --- yage/experimental/loader.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'yage') diff --git a/yage/experimental/loader.cpp b/yage/experimental/loader.cpp index a13af1f2..1c815d41 100644 --- a/yage/experimental/loader.cpp +++ b/yage/experimental/loader.cpp @@ -2,12 +2,18 @@ #include "../core/exception.h" +#include #include +#include #include namespace yage { +const std::vector ele_regs({"^(\\d+)$", "^(\\d+)\\/(\\d+)$", + "^(\\d+)\\/\\/(\\d+)$", + "^(\\d+)\\/(\\d+)\\/(\\d+)$"}); + void load_obj(std::string filename, std::vector &vertices, std::vector &normals, std::vector &elements) { @@ -34,12 +40,20 @@ void load_obj(std::string filename, std::vector &vertices, elements.push_back(a); elements.push_back(b); elements.push_back(c); + } else if (line.substr(0, 2) == "vn ") { + std::for_each(ele_regs.begin(), ele_regs.end(), [](std::regex re) { + + }); + std::istringstream s(line.substr(2)); + glm::vec3 v; + s >> v.x >> v.y >> v.z; + normals.push_back(v); } else { // do nothing otherwise } } - normals.resize() + in.close(); } } // namespace yage -- cgit