change python scripts so modules which register with blender have a register() functi...
[blender.git] / release / scripts / io / export_obj.py
index 4f3212fa72531d01800e0ede783b0bbf486d0fb6..2e90d66b7a7a6345c00c7f661ea0c3645e49f83a 100644 (file)
@@ -12,7 +12,7 @@
 #
 #  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.
+#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 #
 # ##### END GPL LICENSE BLOCK #####
 
@@ -134,7 +134,7 @@ def write_mtl(scene, filename, copy_images):
 #                      file.write('map_Kd %s\n' % img.filename.split('\\')[-1].split('/')[-1]) # Diffuse mapping image
 
         elif mat: # No face image. if we havea material search for MTex image.
-            for mtex in mat.textures:
+            for mtex in mat.texture_slots:
                 if mtex and mtex.texture.type == 'IMAGE':
                     try:
                         filename = copy_image(mtex.texture.image)
@@ -176,7 +176,7 @@ def copy_images(dest_dir):
 
         # Get MTex images
         if mat:
-            for mtex in mat.textures:
+            for mtex in mat.texture_slots:
                 if mtex and mtex.texture.type == 'IMAGE':
                     image_tex = mtex.texture.image
                     if image_tex:
@@ -370,7 +370,7 @@ def write(filename, objects, scene,
         file.write('mtllib %s\n' % ( mtlfilename.split('\\')[-1].split('/')[-1] ))
 
     if EXPORT_ROTX90:
-        mat_xrot90= Mathutils.RotationMatrix(-math.pi/2, 4, 'x')
+        mat_xrot90= Mathutils.RotationMatrix(-math.pi/2, 4, 'X')
 
     # Initialize totals, these are updated each object
     totverts = totuvco = totno = 1
@@ -897,6 +897,7 @@ class ExportOBJ(bpy.types.Operator):
     # to the class instance from the operator settings before calling.
 
     path = StringProperty(name="File Path", description="File path used for exporting the OBJ file", maxlen= 1024, default= "")
+    check_existing = BoolProperty(name="Check Existing", description="Check and warn on overwriting existing files", default=True, options={'HIDDEN'})
 
     # context group
     use_selection = BoolProperty(name="Selection Only", description="", default= False)
@@ -927,7 +928,11 @@ class ExportOBJ(bpy.types.Operator):
 
     def execute(self, context):
 
-        do_export(self.properties.path, context,
+        path = self.properties.path
+        if not path.lower().endswith(".obj"):
+            path += ".obj"
+
+        do_export(path, context,
                   EXPORT_TRI=self.properties.use_triangles,
                   EXPORT_EDGES=self.properties.use_edges,
                   EXPORT_NORMALS=self.properties.use_normals,
@@ -953,16 +958,20 @@ class ExportOBJ(bpy.types.Operator):
         wm.add_fileselect(self)
         return {'RUNNING_MODAL'}
 
-bpy.types.register(ExportOBJ)
 
 def menu_func(self, context):
     default_path = bpy.data.filename.replace(".blend", ".obj")
     self.layout.operator(ExportOBJ.bl_idname, text="Wavefront (.obj)...").path = default_path
 
-menu_item = bpy.types.INFO_MT_file_export.append(menu_func)
 
-if __name__ == "__main__":
-    bpy.ops.EXPORT_OT_obj(filename="/tmp/test.obj")
+def register():
+    bpy.types.register(ExportOBJ)
+    bpy.types.INFO_MT_file_export.append(menu_func)
+    
+def unregister():
+    bpy.types.unregister(ExportOBJ)
+    bpy.types.INFO_MT_file_export.remove(menu_func)
+
 
 # CONVERSION ISSUES
 # - matrix problem