Source code for pyunity.loader
from .vector3 import Vector3
from .meshes import Mesh
[docs]def LoadObj(filename):
vertices = []
normals = []
faces = []
material = None
for line in open(filename, "r"):
if line.startswith("#"): continue
values = line.split()
if not values: continue
if values[0] == "v":
v = Vector3(float(values[1]), float(values[3]), float(values[2]))
vertices.append(v)
elif values[0] == "f":
face = []
for v in values[1:]:
w = v.split("/")
face.append(int(w[0]) - 1)
face.reverse()
faces.append(face)
for face in faces:
a = vertices[face[2]] - vertices[face[1]]
b = vertices[face[0]] - vertices[face[1]]
normal = a.cross(b).normalized()
normals.append(normal)
return Mesh(vertices, faces, normals)