aboutsummaryrefslogtreecommitdiffstats
path: root/yage
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2018-04-12 01:25:56 +0100
committerYann Herklotz <ymherklotz@gmail.com>2018-04-12 01:25:56 +0100
commit908f4469645eb64e90b2aac6e3cc0e17fc73870e (patch)
tree98fa326941b69107f0a7ac4d88a74ce859af6ff3 /yage
parentccdf76463228751dee100b544d854b6f1be5596c (diff)
downloadYAGE-908f4469645eb64e90b2aac6e3cc0e17fc73870e.tar.gz
YAGE-908f4469645eb64e90b2aac6e3cc0e17fc73870e.zip
Adding more support for 3D
Diffstat (limited to 'yage')
-rw-r--r--yage/experimental/loader.cpp16
1 files changed, 15 insertions, 1 deletions
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 <algorithm>
#include <fstream>
+#include <regex>
#include <sstream>
namespace yage
{
+const std::vector<std::regex> ele_regs({"^(\\d+)$", "^(\\d+)\\/(\\d+)$",
+ "^(\\d+)\\/\\/(\\d+)$",
+ "^(\\d+)\\/(\\d+)\\/(\\d+)$"});
+
void load_obj(std::string filename, std::vector<glm::vec4> &vertices,
std::vector<glm::vec3> &normals, std::vector<GLushort> &elements)
{
@@ -34,12 +40,20 @@ void load_obj(std::string filename, std::vector<glm::vec4> &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