From 352f034bf5c26368fa6478e62b02b71fe6658034 Mon Sep 17 00:00:00 2001 From: Keanu Taufan Date: Sat, 21 Sep 2024 22:50:51 +0700 Subject: [PATCH] Obj to VBO parser --- .gitignore | 4 ++++ scripts/objParser.py | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 scripts/objParser.py diff --git a/.gitignore b/.gitignore index a547bf3..f8ccb09 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,7 @@ dist-ssr *.njsproj *.sln *.sw? + +# Specific to this project +scripts/in/* +scripts/out/* \ No newline at end of file diff --git a/scripts/objParser.py b/scripts/objParser.py new file mode 100644 index 0000000..97593a1 --- /dev/null +++ b/scripts/objParser.py @@ -0,0 +1,27 @@ +import sys + +def conv_obj(obj): + vertex_positions = [] + triangle_vertices = [] + lines = obj.splitlines() + + for line in lines: + line = line.strip() + if line.startswith("v "): + parts = line.split() + + # or do parts[2] too if 3D, adjust with your axis + vertex_positions.append([float(parts[1]), float(parts[3])]) + elif line.startswith("f "): + parts = line.split() + v1 = vertex_positions[int(parts[1].split("/")[0]) - 1] + v2 = vertex_positions[int(parts[2].split("/")[0]) - 1] + v3 = vertex_positions[int(parts[3].split("/")[0]) - 1] + triangle_vertices.extend(v1 + v2 + v3) + + return triangle_vertices + +if __name__ == "__main__": + obj_data = sys.stdin.read() + result = conv_obj(obj_data) + print(result) \ No newline at end of file