Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- import sys
- import os
- version = 1.2
- def main():
- if(len(sys.argv) < 2):
- print("convert.py <file.in> ")
- return 0
- f = open(sys.argv[1], "r")
- mode = "header"
- num_verts = 0
- num_frames = 0
- cur_frame = 0
- cur_verts = 0
- # frame, vertex.
- verts = []
- faces = []
- for line in f:
- if mode == "header":
- print("Header: " + line.strip())
- mode = "vertex"
- elif mode == "vertex":
- num_verts = int(line.strip())
- mode = "frame"
- print("vertex count: " + str(num_verts))
- elif mode == "frame":
- num_frames = int(line.strip())
- mode = "read_frames"
- print("frame count: " + str(num_frames))
- for i in range(0, num_frames):
- verts.append([])
- elif mode == "read_frames":
- vert = line.strip().split()
- vert[0] = float(vert[0])
- vert[1] = float(vert[1])
- vert[2] = float(vert[2])
- verts[cur_frame].append(vert[0:3])
- cur_verts += 1
- if cur_verts == num_verts:
- cur_verts = 0
- cur_frame += 1
- if cur_frame == num_frames:
- mode = "read_faces"
- elif mode == "read_faces":
- face = line.strip().split()
- for i in range(len(face)):
- try:
- face[i] = int(face[i])
- except ValueError:
- print("Done")
- faces.append(face)
- f.close()
- for fr in range(0, int(num_frames)):
- f = open(os.path.splitext(sys.argv[1])[0]+"_frame" + str(fr) + ".obj", "w")
- for v in verts[fr]:
- f.write("v {} {} {} 1\n".format(v[0], v[1], v[2]))
- for face in faces:
- if len(face) > 1:
- f.write("f")
- for ff in face[1:-1]:
- f.write(" {}".format(ff+1))
- f.write("\n")
- f.close()
- return 0
- if __name__ == "__main__":
- sys.exit(main())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement