aboutsummaryrefslogtreecommitdiffstats
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
parentccdf76463228751dee100b544d854b6f1be5596c (diff)
downloadYAGE-908f4469645eb64e90b2aac6e3cc0e17fc73870e.tar.gz
YAGE-908f4469645eb64e90b2aac6e3cc0e17fc73870e.zip
Adding more support for 3D
-rw-r--r--resources/objects/cube.mtl14
-rw-r--r--resources/objects/cube.obj32
-rw-r--r--yage/experimental/loader.cpp16
3 files changed, 37 insertions, 25 deletions
diff --git a/resources/objects/cube.mtl b/resources/objects/cube.mtl
index 379df14c..70d3ba1d 100644
--- a/resources/objects/cube.mtl
+++ b/resources/objects/cube.mtl
@@ -1,12 +1,10 @@
# Blender MTL File: 'None'
# Material Count: 1
-newmtl Material
-Ns 96.078431
-Ka 1.000000 1.000000 1.000000
-Kd 0.640000 0.640000 0.640000
-Ks 0.500000 0.500000 0.500000
-Ke 0.000000 0.000000 0.000000
-Ni 1.000000
-d 1.000000
+newmtl None
+Ns 0
+Ka 0.000000 0.000000 0.000000
+Kd 0.8 0.8 0.8
+Ks 0.8 0.8 0.8
+d 1
illum 2
diff --git a/resources/objects/cube.obj b/resources/objects/cube.obj
index 82519cf5..730cd537 100644
--- a/resources/objects/cube.obj
+++ b/resources/objects/cube.obj
@@ -2,25 +2,25 @@
# www.blender.org
mtllib cube.mtl
o Cube
-v 1.000000 -1.000000 -1.000000
-v 1.000000 -1.000000 1.000000
v -1.000000 -1.000000 1.000000
-v -1.000000 -1.000000 -1.000000
-v 1.000000 1.000000 -0.999999
-v 0.999999 1.000000 1.000001
v -1.000000 1.000000 1.000000
+v -1.000000 -1.000000 -1.000000
v -1.000000 1.000000 -1.000000
+v 1.000000 -1.000000 1.000000
+v 1.000000 1.000000 1.000000
+v 1.000000 -1.000000 -1.000000
+v 1.000000 1.000000 -1.000000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 1.0000 0.0000 0.0000
+vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
-vn 1.0000 0.0000 0.0000
-vn -0.0000 -0.0000 1.0000
-vn -1.0000 -0.0000 -0.0000
-vn 0.0000 0.0000 -1.0000
-usemtl Material
+usemtl None
s off
-f 1//1 2//1 3//1 4//1
-f 5//2 8//2 7//2 6//2
-f 1//3 5//3 6//3 2//3
-f 2//4 6//4 7//4 3//4
-f 3//5 7//5 8//5 4//5
-f 5//6 1//6 4//6 8//6
+f 1//1 2//1 4//1 3//1
+f 3//2 4//2 8//2 7//2
+f 7//3 8//3 6//3 5//3
+f 5//4 6//4 2//4 1//4
+f 3//5 7//5 5//5 1//5
+f 8//6 4//6 2//6 6//6
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