Advertisement
Guest User

ConvertFixed.py

a guest
Jul 27th, 2020
1,248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.22 KB | None | 0 0
  1. #!/usr/bin/env python3
  2. import sys
  3.  
  4. def main():
  5.     if(len(sys.argv) < 3):
  6.         print("convert.py <file.in> <file.out>")
  7.         return 0
  8.  
  9.     f = open(sys.argv[1], "r")
  10.     mode = "header"
  11.     num_verts = 0
  12.     verts = []
  13.     faces = []
  14.     for line in f:
  15.         if mode == "header":
  16.             if line.strip() == "3DGI" or line.strip() == "3DG1":
  17.                 mode = "vert"
  18.             else:
  19.                 print("Invalid header")
  20.  
  21.         elif mode == "vert":
  22.             num_verts = int(line.strip())
  23.             mode = "read_verts"
  24.         elif mode == "read_verts":
  25.             vert = line.strip().split()
  26.             vert[0] = float(vert[0])
  27.             vert[1] = float(vert[1])
  28.             vert[2] = float(vert[2])
  29.             verts.append(vert)
  30.             num_verts -= 1
  31.             if(num_verts == 0):
  32.                 mode = "read_faces"
  33.         elif mode == "read_faces":
  34.             face = line.strip().split()
  35.             for i in range(len(face)):
  36.                 try:
  37.                     face[i] = int(face[i])
  38.                 except ValueError:
  39.                     print("Done")
  40.                
  41.             faces.append(face)
  42.  
  43.     f.close()
  44.  
  45.     f = open(sys.argv[2], "w")
  46.     for v in verts:
  47.         f.write("v {} {} {} 1\n".format(v[0], v[1], v[2]))
  48.  
  49.     for face in faces:
  50.    
  51.         if len(face) <= 1:
  52.             continue
  53.    
  54.         f.write("f")
  55.         for ff in face[1:-1]:
  56.             f.write(" {}".format(ff+1))
  57.         f.write("\n")
  58.  
  59.     f.close()
  60.     return 0
  61.  
  62. if __name__ == "__main__":
  63.     sys.exit(main())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement