[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31193] trunk/blender/release/scripts/io/ export_obj.py: OBJ Export:

Thomas Dinges dingto at gmx.de
Mon Aug 9 12:35:03 CEST 2010


Revision: 31193
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31193
Author:   dingto
Date:     2010-08-09 12:35:03 +0200 (Mon, 09 Aug 2010)

Log Message:
-----------
OBJ Export:
* Script was broken, fixed.
* Started some code cleanup, mainly variable names.
* Tabs > Spaces 

Modified Paths:
--------------
    trunk/blender/release/scripts/io/export_obj.py

Modified: trunk/blender/release/scripts/io/export_obj.py
===================================================================
--- trunk/blender/release/scripts/io/export_obj.py	2010-08-09 10:22:09 UTC (rev 31192)
+++ trunk/blender/release/scripts/io/export_obj.py	2010-08-09 10:35:03 UTC (rev 31193)
@@ -44,7 +44,7 @@
 
 
 # Returns a tuple - path,extension.
-# 'hello.obj' >	 ('hello', '.obj')
+# 'hello.obj' >  ('hello', '.obj')
 def splitExt(path):
     dotidx = path.rfind('.')
     if dotidx == -1:
@@ -81,7 +81,7 @@
 
     file = open(filepath, "w")
     # XXX
-#	file.write('# Blender MTL File: %s\n' % Blender.Get('filepath').split('\\')[-1].split('/')[-1])
+#   file.write('# Blender MTL File: %s\n' % Blender.Get('filepath').split('\\')[-1].split('/')[-1])
     file.write('# Material Count: %i\n' % len(mtl_dict))
     # Write material/image combinations we have used.
     for key, (mtl_mat_name, mat, img) in mtl_dict.items():
@@ -93,7 +93,7 @@
 
         if mat:
             file.write('Ns %.6f\n' % ((mat.specular_hardness-1) * 1.9607843137254901) ) # Hardness, convert blenders 1-511 to MTL's
-            file.write('Ka %.6f %.6f %.6f\n' %	tuple([c*mat.ambient for c in worldAmb])  ) # Ambient, uses mirror colour,
+            file.write('Ka %.6f %.6f %.6f\n' %  tuple([c*mat.ambient for c in worldAmb])  ) # Ambient, uses mirror colour,
             file.write('Kd %.6f %.6f %.6f\n' % tuple([c*mat.diffuse_intensity for c in mat.diffuse_color]) ) # Diffuse
             file.write('Ks %.6f %.6f %.6f\n' % tuple([c*mat.specular_intensity for c in mat.specular_color]) ) # Specular
             if hasattr(mat, "ior"):
@@ -113,25 +113,25 @@
         else:
             #write a dummy material here?
             file.write('Ns 0\n')
-            file.write('Ka %.6f %.6f %.6f\n' %	tuple([c for c in worldAmb])  ) # Ambient, uses mirror colour,
+            file.write('Ka %.6f %.6f %.6f\n' %  tuple([c for c in worldAmb])  ) # Ambient, uses mirror colour,
             file.write('Kd 0.8 0.8 0.8\n')
             file.write('Ks 0.8 0.8 0.8\n')
             file.write('d 1\n') # No alpha
             file.write('illum 2\n') # light normaly
 
         # Write images!
-        if img:	 # We have an image on the face!
+        if img:  # We have an image on the face!
             # write relative image path
             rel = copy_image(img)
             file.write('map_Kd %s\n' % rel) # Diffuse mapping image
-# 			file.write('map_Kd %s\n' % img.filepath.split('\\')[-1].split('/')[-1]) # Diffuse mapping image
+#           file.write('map_Kd %s\n' % img.filepath.split('\\')[-1].split('/')[-1]) # Diffuse mapping image
 
         elif mat: # No face image. if we havea material search for MTex image.
             for mtex in mat.texture_slots:
                 if mtex and mtex.texture.type == 'IMAGE':
                     try:
                         filepath = copy_image(mtex.texture.image)
-# 						filepath = mtex.texture.image.filepath.split('\\')[-1].split('/')[-1]
+#                       filepath = mtex.texture.image.filepath.split('\\')[-1].split('/')[-1]
                         file.write('map_Kd %s\n' % filepath) # Diffuse mapping image
                         break
                     except:
@@ -157,8 +157,8 @@
 def copy_images(dest_dir):
     if dest_dir[-1] != os.sep:
         dest_dir += os.sep
-#	if dest_dir[-1] != sys.sep:
-#		dest_dir += sys.sep
+#   if dest_dir[-1] != sys.sep:
+#       dest_dir += sys.sep
 
     # Get unique image names
     uniqueImages = {}
@@ -181,20 +181,20 @@
     # Now copy images
     copyCount = 0
 
-# 	for bImage in uniqueImages.values():
-# 		image_path = bpy.path.abspath(bImage.filepath)
-# 		if bpy.sys.exists(image_path):
-# 			# Make a name for the target path.
-# 			dest_image_path = dest_dir + image_path.split('\\')[-1].split('/')[-1]
-# 			if not bpy.utils.exists(dest_image_path): # Image isnt already there
-# 				print('\tCopying "%s" > "%s"' % (image_path, dest_image_path))
-# 				copy_file(image_path, dest_image_path)
-# 				copyCount+=1
+#   for bImage in uniqueImages.values():
+#       image_path = bpy.path.abspath(bImage.filepath)
+#       if bpy.sys.exists(image_path):
+#           # Make a name for the target path.
+#           dest_image_path = dest_dir + image_path.split('\\')[-1].split('/')[-1]
+#           if not bpy.utils.exists(dest_image_path): # Image isnt already there
+#               print('\tCopying "%s" > "%s"' % (image_path, dest_image_path))
+#               copy_file(image_path, dest_image_path)
+#               copyCount+=1
 
-# 	paths= bpy.util.copy_images(uniqueImages.values(), dest_dir)
+#   paths= bpy.util.copy_images(uniqueImages.values(), dest_dir)
 
     print('\tCopied %d images' % copyCount)
-# 	print('\tCopied %d images' % copyCount)
+#   print('\tCopied %d images' % copyCount)
 
 # XXX not converted
 def test_nurbs_compat(ob):
@@ -217,8 +217,8 @@
     Vector = Blender.mathutils.Vector
     for nu in cu:
 
-        if nu.type==0:		DEG_ORDER_U = 1
-        else:				DEG_ORDER_U = nu.orderU-1  # Tested to be correct
+        if nu.type==0:      DEG_ORDER_U = 1
+        else:               DEG_ORDER_U = nu.orderU-1  # Tested to be correct
 
         if nu.type==1:
             print("\tWarning, bezier curve:", ob.name, "only poly and nurbs curves supported")
@@ -275,7 +275,7 @@
 
     return tot_verts
 
-def write(filepath, objects, scene,
+def write_file(filepath, objects, scene,
           EXPORT_TRI=False,
           EXPORT_EDGES=False,
           EXPORT_NORMALS=False,
@@ -319,9 +319,9 @@
         """
         weightDict = {}
         for vert_index in face.verts:
-#		for vert in face:
+#       for vert in face:
             vWeights = vWeightMap[vert_index]
-#			vWeights = vWeightMap[vert]
+#           vWeights = vWeightMap[vert]
             for vGroupName, weight in vWeights:
                 weightDict[vGroupName] = weightDict.get(vGroupName, 0) + weight
 
@@ -348,8 +348,8 @@
     temp_mesh_name = '~tmp-mesh'
 
     time1 = time.clock()
-#	time1 = sys.time()
-#	scn = Scene.GetCurrent()
+#   time1 = sys.time()
+#   scn = Scene.GetCurrent()
 
     file = open(filepath, "w")
 
@@ -401,15 +401,15 @@
         for ob, ob_mat in obs:
 
             # XXX postponed
-#			# Nurbs curve support
-#			if EXPORT_CURVE_AS_NURBS and test_nurbs_compat(ob):
-#				if EXPORT_ROTX90:
-#					ob_mat = ob_mat * mat_xrot90
+#           # Nurbs curve support
+#           if EXPORT_CURVE_AS_NURBS and test_nurbs_compat(ob):
+#               if EXPORT_ROTX90:
+#                   ob_mat = ob_mat * mat_xrot90
 
-#				totverts += write_nurb(file, ob, ob_mat)
+#               totverts += write_nurb(file, ob, ob_mat)
 
-#				continue
-#			end nurbs
+#               continue
+#           end nurbs
 
             if ob.type != 'MESH':
                 continue
@@ -421,10 +421,10 @@
             else:
                 me.transform(ob_mat)
 
-#			# Will work for non meshes now! :)
-#			me= BPyMesh.getMeshFromObject(ob, containerMesh, EXPORT_APPLY_MODIFIERS, EXPORT_POLYGROUPS, scn)
-#			if not me:
-#				continue
+#           # Will work for non meshes now! :)
+#           me= BPyMesh.getMeshFromObject(ob, containerMesh, EXPORT_APPLY_MODIFIERS, EXPORT_POLYGROUPS, scn)
+#           if not me:
+#               continue
 
             if EXPORT_UV:
                 faceuv = len(me.uv_textures) > 0
@@ -472,13 +472,13 @@
             # High Quality Normals
             if EXPORT_NORMALS and face_index_pairs:
                 me.calc_normals()
-#				if EXPORT_NORMALS_HQ:
-#					BPyMesh.meshCalcNormals(me)
-#				else:
-#					# transforming normals is incorrect
-#					# when the matrix is scaled,
-#					# better to recalculate them
-#					me.calcNormals()
+#               if EXPORT_NORMALS_HQ:
+#                   BPyMesh.meshCalcNormals(me)
+#               else:
+#                   # transforming normals is incorrect
+#                   # when the matrix is scaled,
+#                   # better to recalculate them
+#                   me.calcNormals()
 
             materials = me.materials
 
@@ -512,18 +512,18 @@
             else:
                 # no materials
                 face_index_pairs.sort(key = lambda a: a[0].smooth)
-#			if EXPORT_KEEP_VERT_ORDER:
-#				pass
-#			elif faceuv:
-#				try:	faces.sort(key = lambda a: (a.mat, a.image, a.smooth))
-#				except:	faces.sort(lambda a,b: cmp((a.mat, a.image, a.smooth), (b.mat, b.image, b.smooth)))
-#			elif len(materials) > 1:
-#				try:	faces.sort(key = lambda a: (a.mat, a.smooth))
-#				except:	faces.sort(lambda a,b: cmp((a.mat, a.smooth), (b.mat, b.smooth)))
-#			else:
-#				# no materials
-#				try:	faces.sort(key = lambda a: a.smooth)
-#				except:	faces.sort(lambda a,b: cmp(a.smooth, b.smooth))
+#           if EXPORT_KEEP_VERT_ORDER:
+#               pass
+#           elif faceuv:
+#               try:    faces.sort(key = lambda a: (a.mat, a.image, a.smooth))
+#               except: faces.sort(lambda a,b: cmp((a.mat, a.image, a.smooth), (b.mat, b.image, b.smooth)))
+#           elif len(materials) > 1:
+#               try:    faces.sort(key = lambda a: (a.mat, a.smooth))
+#               except: faces.sort(lambda a,b: cmp((a.mat, a.smooth), (b.mat, b.smooth)))
+#           else:
+#               # no materials
+#               try:    faces.sort(key = lambda a: a.smooth)
+#               except: faces.sort(lambda a,b: cmp(a.smooth, b.smooth))
 
             faces = [pair[0] for pair in face_index_pairs]
 
@@ -565,7 +565,7 @@
 
                     # # add another UV if it's a quad
                     # if len(f.verts) == 4:
-                    # 	uvs.append(tface.uv4)
+                    #   uvs.append(tface.uv4)
 
                     for uv_index, uv in enumerate(uvs):
                         uvkey = veckey2d(uv)
@@ -575,19 +575,19 @@
                             uv_face_mapping[f_index][uv_index] = uv_dict[uvkey] = len(uv_dict)
                             file.write('vt %.6f %.6f\n' % tuple(uv))
 
-#				uv_dict = {} # could use a set() here
-#				for f_index, f in enumerate(faces):
+#               uv_dict = {} # could use a set() here
+#               for f_index, f in enumerate(faces):
 
-#					for uv_index, uv in enumerate(f.uv):
-#						uvkey = veckey2d(uv)
-#						try:
-#							uv_face_mapping[f_index][uv_index] = uv_dict[uvkey]
-#						except:
-#							uv_face_mapping[f_index][uv_index] = uv_dict[uvkey] = len(uv_dict)
-#							file.write('vt %.6f %.6f\n' % tuple(uv))

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list