use f.area where possible over python function and use len(mface) over len(mface.v)
[blender.git] / release / scripts / radiosity_export.py
index 34c913dc1ef385a421c1441341fd69d1d002fcc2..43ec7d9838c10ed8f7d3e53fc974c523f25aa6da 100644 (file)
@@ -1,31 +1,80 @@
 #!BPY
 
 """
-Name: 'Radiosity...'
+Name: 'Radiosity (.radio)...'
 Blender: 232
 Group: 'Export'
-Tooltip: 'Export selected mesh (with vertex colors) to Radiosity File Format (*.radio)'
+Tooltip: 'Export selected mesh (with vertex colors) to Radiosity File Format (.radio)'
 """
 
+__author__ = "Anthony D'Agostino (Scorpius)"
+__url__ = ("blender", "elysiun",
+"Author's homepage, http://www.redrival.com/scorpius")
+__version__ = "Part of IOSuite 0.5"
+
+__bpydoc__ = """\
+This script exports meshes to Radiosity file format.
+
+The Radiosity file format is my own personal format. I created it to
+learn how meshes and vertex colors were stored. See IO-Examples.zip, the
+example *.radio files on my web page.
+
+Usage:<br>
+       Select meshes to be exported and run this script from "File->Export" menu.
+
+Notes:<br>
+       Before exporting to .radio format, the mesh must have vertex colors.
+Here's how to assign them:
+
+1. Use radiosity!
+
+2. Set up lights and materials, select a mesh, switch the drawing mode
+to "textured," press the VKEY.
+
+3. Press the VKEY and paint manually.
+
+4. Use a custom script to calculate and apply simple diffuse shading and
+specular highlights to the vertex colors.
+
+5. The Videoscape format also allows vertex colors to be specified.
+"""
+
+# $Id$
+#
 # +---------------------------------------------------------+
 # | Copyright (c) 2002 Anthony D'Agostino                   |
 # | http://www.redrival.com/scorpius                        |
 # | scorpius@netzero.com                                    |
 # | April 11, 2002                                          |
-# | Released under the Blender Artistic Licence (BAL)       |
-# | Import Export Suite v0.5                                |
-# +---------------------------------------------------------+
 # | Read and write Radiosity File Format (*.radio)          |
 # +---------------------------------------------------------+
 
-import Blender, mod_meshtools
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+# ***** END GPL LICENCE BLOCK *****
+
+import Blender, meshtools
 #import time
 
 try:
        import struct
 except:
        msg = "Error: you need a full Python install to run this script."
-       mod_meshtools.print_boxed(msg)
+       meshtools.print_boxed(msg)
        Blender.Draw.PupMenu("ERROR%t|"+msg)
 
 # ================================
@@ -41,10 +90,10 @@ def write(filename):
        mesh = Blender.NMesh.GetRaw(meshname)
        obj = Blender.Object.Get(objname)
 
-       if not mod_meshtools.has_vertex_colors(mesh):
+       if not meshtools.has_vertex_colors(mesh):
                message = "Please assign vertex colors before exporting. \n"
                message += objname + " object was not saved."
-               mod_meshtools.print_boxed(message)
+               meshtools.print_boxed(message)
                Blender.Draw.PupMenu("ERROR%t|"+message)
                return
 
@@ -55,7 +104,7 @@ def write(filename):
        # === Vertex List ===
        file.write(struct.pack("<l", len(mesh.verts)))
        for i in range(len(mesh.verts)):
-               if not i%100 and mod_meshtools.show_progress:
+               if not i%100 and meshtools.show_progress:
                        Blender.Window.DrawProgressBar(float(i)/len(mesh.verts), "Writing Verts")
 
                x, y, z = mesh.verts[i].co
@@ -64,7 +113,7 @@ def write(filename):
        # === Face List ===
        file.write(struct.pack("<l", len(mesh.faces)))
        for i in range(len(mesh.faces)):
-               if not i%100 and mod_meshtools.show_progress:
+               if not i%100 and meshtools.show_progress:
                        Blender.Window.DrawProgressBar(float(i)/len(mesh.faces), "Writing Faces")
 
                file.write(struct.pack("<b", len(mesh.faces[i].v)))
@@ -82,10 +131,10 @@ def write(filename):
        #end = time.clock()
        #seconds = " in %.2f %s" % (end-start, "seconds")
        message = "Successfully exported " + Blender.sys.basename(filename)# + seconds
-       mod_meshtools.print_boxed(message)
+       meshtools.print_boxed(message)
 
 def fs_callback(filename):
        if filename.find('.radio', -6) <= 0: filename += '.radio'
        write(filename)
 
-Blender.Window.FileSelector(fs_callback, "Radio Export")
+Blender.Window.FileSelector(fs_callback, "Export Radio")