home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 90 / CD Actual 90.iso / Software3D / K-3D / k3d-0.4.2.1 / scripts / export_raw.python < prev    next >
Encoding:
Text File  |  2004-07-23  |  1.2 KB  |  65 lines

  1. #python
  2.  
  3.  
  4. # Export geometry
  5.  
  6. def Export(Document, FileName):
  7.  
  8.     # open output file ...
  9.     try:
  10.         exportfile = open(FileName, "w")
  11.     except IOError:
  12.         print "Couldn't open file!"
  13.         return
  14.  
  15.     # export meshes ...
  16.     objects = Document.mesh_instances()
  17.     for object in objects:
  18.         DumpMesh(object.mesh, object.name, exportfile)
  19.  
  20.     # export is over
  21.     exportfile.close()
  22.  
  23.  
  24. # Serialize mesh object
  25.  
  26. def DumpMesh(Mesh, Name, File):
  27.  
  28.     # title
  29.     File.write("# " + str(Name) + "\n")
  30.  
  31.     # write points
  32.     meshpoints = Mesh.points()
  33.     File.write("# points: " + str(len(meshpoints)) + "\n")
  34.     point_map = {}
  35.     for p in meshpoints:
  36.         val = p.position
  37.         File.write(str(val[0]) + " " + str(val[1]) + " " + str(val[2]))
  38.         File.write("\n")
  39.  
  40.         point_map[p.reference] = len(point_map)
  41.  
  42.     # write faces
  43.     meshpolyhedra = Mesh.polyhedra()
  44.     for poln in meshpolyhedra:
  45.         polfaces = poln.faces
  46.         File.write("# faces: " + str(len(polfaces)) + "\n")
  47.         for face in polfaces:
  48.             points = face.points
  49.             for pt in points:
  50.                 val = pt.reference
  51.                 File.write(str(point_map[val]) + ' ')
  52.             File.write("\n")
  53.  
  54.  
  55. # Main
  56.  
  57. # Find a valid document
  58. if not MyDocument:
  59.     print "No document found\n"
  60.     exit
  61.  
  62. Export(MyDocument, "k3d_python_export.txt")
  63.  
  64.  
  65.