* Edited and consistent-ified the File->Import menu item labels and fileselect button...
[blender.git] / release / scripts / raw_export.py
1 #!BPY
2
3 """
4 Name: 'Raw Triangle (.raw)...'
5 Blender: 232
6 Group: 'Export'
7 Tooltip: 'Export selected mesh to Raw Triangle Format (.raw)'
8 """
9
10 # $Id$
11 #
12 # +---------------------------------------------------------+
13 # | Copyright (c) 2002 Anthony D'Agostino                   |
14 # | http://www.redrival.com/scorpius                        |
15 # | scorpius@netzero.com                                    |
16 # | April 28, 2002                                          |
17 # | Released under the Blender Artistic Licence (BAL)       |
18 # | Import Export Suite v0.5                                |
19 # +---------------------------------------------------------+
20 # | Read and write RAW Triangle File Format (*.raw)         |
21 # +---------------------------------------------------------+
22
23 import Blender, mod_meshtools
24 import sys
25 #import time
26
27 # =================================
28 # === Write RAW Triangle Format ===
29 # =================================
30 def write(filename):
31         #start = time.clock()
32         file = open(filename, "wb")
33
34         objects = Blender.Object.GetSelected()
35         objname = objects[0].name
36         meshname = objects[0].data.name
37         mesh = Blender.NMesh.GetRaw(meshname)
38         obj = Blender.Object.Get(objname)
39
40
41         std=sys.stdout
42         sys.stdout=file
43         for face in mesh.faces:
44                 if len(face.v) == 3:            # triangle
45                         v1, v2, v3 = face.v
46                         faceverts = tuple(v1.co) + tuple(v2.co) + tuple(v3.co)
47                         print "% f % f % f % f % f % f % f % f % f" % faceverts
48                 else:                                           # quadrilateral
49                         v1, v2, v3, v4 = face.v
50                         faceverts1 = tuple(v1.co) + tuple(v2.co) + tuple(v3.co)
51                         faceverts2 = tuple(v3.co) + tuple(v4.co) + tuple(v1.co)
52                         print "% f % f % f % f % f % f % f % f % f" % faceverts1
53                         print "% f % f % f % f % f % f % f % f % f" % faceverts2
54         sys.stdout=std
55
56
57         Blender.Window.DrawProgressBar(1.0, '')  # clear progressbar
58         file.close()
59         #end = time.clock()
60         #seconds = " in %.2f %s" % (end-start, "seconds")
61         message = "Successfully exported " + Blender.sys.basename(filename)# + seconds
62         mod_meshtools.print_boxed(message)
63
64 def fs_callback(filename):
65         if filename.find('.raw', -4) <= 0: filename += '.raw'
66         write(filename)
67
68 Blender.Window.FileSelector(fs_callback, "Export Raw")