843c3f6d32c844b1ecc907a72dd7cf4d65a31677
[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 __author__ = "Anthony D'Agostino (Scorpius)"
11 __url__ = ("blender", "elysiun",
12 "Author's homepage, http://www.redrival.com/scorpius")
13 __version__ = "Part of IOSuite 0.5"
14
15 __bpydoc__ = """\
16 This script exports meshes to Raw Triangle file format.
17
18 Usage:
19
20 Select meshes to be exported and run this script from "File->Export" menu.
21 """
22
23
24 # $Id$
25 #
26 # +---------------------------------------------------------+
27 # | Copyright (c) 2002 Anthony D'Agostino                   |
28 # | http://www.redrival.com/scorpius                        |
29 # | scorpius@netzero.com                                    |
30 # | April 28, 2002                                          |
31 # | Released under the Blender Artistic Licence (BAL)       |
32 # | Import Export Suite v0.5                                |
33 # +---------------------------------------------------------+
34 # | Read and write RAW Triangle File Format (*.raw)         |
35 # +---------------------------------------------------------+
36
37 import Blender, mod_meshtools
38 import sys
39 #import time
40
41 # =================================
42 # === Write RAW Triangle Format ===
43 # =================================
44 def write(filename):
45         #start = time.clock()
46         file = open(filename, "wb")
47
48         objects = Blender.Object.GetSelected()
49         objname = objects[0].name
50         meshname = objects[0].data.name
51         mesh = Blender.NMesh.GetRaw(meshname)
52         obj = Blender.Object.Get(objname)
53
54
55         std=sys.stdout
56         sys.stdout=file
57         for face in mesh.faces:
58                 if len(face.v) == 3:            # triangle
59                         v1, v2, v3 = face.v
60                         faceverts = tuple(v1.co) + tuple(v2.co) + tuple(v3.co)
61                         print "% f % f % f % f % f % f % f % f % f" % faceverts
62                 else:                                           # quadrilateral
63                         v1, v2, v3, v4 = face.v
64                         faceverts1 = tuple(v1.co) + tuple(v2.co) + tuple(v3.co)
65                         faceverts2 = tuple(v3.co) + tuple(v4.co) + tuple(v1.co)
66                         print "% f % f % f % f % f % f % f % f % f" % faceverts1
67                         print "% f % f % f % f % f % f % f % f % f" % faceverts2
68         sys.stdout=std
69
70
71         Blender.Window.DrawProgressBar(1.0, '')  # clear progressbar
72         file.close()
73         #end = time.clock()
74         #seconds = " in %.2f %s" % (end-start, "seconds")
75         message = "Successfully exported " + Blender.sys.basename(filename)# + seconds
76         mod_meshtools.print_boxed(message)
77
78 def fs_callback(filename):
79         if filename.find('.raw', -4) <= 0: filename += '.raw'
80         write(filename)
81
82 Blender.Window.FileSelector(fs_callback, "Export Raw")