Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- import sys
- def main():
- if(len(sys.argv) < 3):
- print("convert.py <file.in> <file.out>")
- return 0
- f = open(sys.argv[1], "r")
- mode = "header"
- num_verts = 0
- verts = []
- faces = []
- for line in f:
- if mode == "header":
- if line.strip() == "3DGI" or line.strip() == "3DG1":
- mode = "vert"
- else:
- print("Invalid header")
- elif mode == "vert":
- num_verts = int(line.strip())
- mode = "read_verts"
- elif mode == "read_verts":
- vert = line.strip().split()
- vert[0] = float(vert[0])
- vert[1] = float(vert[1])
- vert[2] = float(vert[2])
- verts.append(vert)
- num_verts -= 1
- if(num_verts == 0):
- 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()
- f = open(sys.argv[2], "w")
- for v in verts:
- f.write("v {} {} {} 1\n".format(v[0], v[1], v[2]))
- for face in faces:
- if len(face) <= 1:
- continue
- 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