| branch | pyrit | 
| changeset 69 | 303583d2fb97 | 
| parent 41 | c1080cb5bd6d | 
| child 75 | 20dee9819b17 | 
| 68:2c154aad7f33 | 69:303583d2fb97 | 
|---|---|
| 1 # Stanford .ply file loader | 1 # Stanford .ply file loader | 
| 2 | 2 | 
| 3 from raytracer import Triangle, NormalVertex | 3 from raytracer import Triangle, NormalVertex | 
| 4 | 4 | 
| 5 def LoadStanfordPlyFile(rt, filename, mat, smooth, scale=(1,1,1), trans=(0,0,0)): | 5 def LoadStanfordPlyFile(rt, filename, mat, scale=(1,1,1), trans=(0,0,0)): | 
| 6 if (type(scale) == float or type(scale) == int): | 6 if (type(scale) == float or type(scale) == int): | 
| 7 scale = (scale,)*3 | 7 scale = (scale,)*3 | 
| 8 vertices = [] | 8 vertices = [] | 
| 9 normals = [] | 9 normals = [] | 
| 10 vertex_face_num = [] | 10 vertex_face_num = [] | 
| 42 n = face.getNormal() | 42 n = face.getNormal() | 
| 43 for x in tokens[1:4]: | 43 for x in tokens[1:4]: | 
| 44 for i in range(3): | 44 for i in range(3): | 
| 45 normals[int(x)][i] += n[i] | 45 normals[int(x)][i] += n[i] | 
| 46 vertex_face_num[int(x)] += 1 | 46 vertex_face_num[int(x)] += 1 | 
| 47 if (smooth): | |
| 48 face.setSmooth() | |
| 49 rt.addshape(face) | 47 rt.addshape(face) | 
| 50 face_num -= 1 | 48 face_num -= 1 | 
| 51 | 49 | 
| 52 # interpolate normals at vertices | 50 # interpolate normals at vertices | 
| 53 num = 0 | 51 num = 0 |