[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [2830] trunk/py/scripts/addons/ animation_add_corrective_shape_key.py: make pep8 compliant

Campbell Barton ideasman42 at gmail.com
Sat Dec 31 06:31:58 CET 2011


Revision: 2830
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=2830
Author:   campbellbarton
Date:     2011-12-31 05:31:45 +0000 (Sat, 31 Dec 2011)
Log Message:
-----------
make pep8 compliant

Modified Paths:
--------------
    trunk/py/scripts/addons/animation_add_corrective_shape_key.py

Modified: trunk/py/scripts/addons/animation_add_corrective_shape_key.py
===================================================================
--- trunk/py/scripts/addons/animation_add_corrective_shape_key.py	2011-12-31 05:21:31 UTC (rev 2829)
+++ trunk/py/scripts/addons/animation_add_corrective_shape_key.py	2011-12-31 05:31:45 UTC (rev 2830)
@@ -16,6 +16,8 @@
 #
 # ##### END GPL LICENSE BLOCK #####
 
+# <pep8-80 compliant>
+
 bl_info = {
     'name': 'Corrective shape keys',
     'author': 'Ivo Grigull (loolarge), Tal Trachtman',
@@ -57,9 +59,9 @@
 iterations = 20
 threshold = 1e-16
 
+
 def reset_transform(ob):
-    m = Matrix()
-    ob.matrix_local = m 
+    ob.matrix_local.identity()
 
 
 # this version is for shape_key data
@@ -78,25 +80,26 @@
     arr = [verts[i].co.copy() for i in range(len(verts) - totvert, len(verts))]
 
     mesh.user_clear()
-    bpy.data.meshes.remove(mesh)    
+    bpy.data.meshes.remove(mesh)
 
     return arr
 
-def apply_vert_coords(ob, mesh, x ):
+
+def apply_vert_coords(ob, mesh, x):
     for i, v in enumerate(mesh):
         v.co = x[i]
     ob.data.update()
 
 
-def func_add_corrective_pose_shape( source, target):
-    
-    ob_1   = target
+def func_add_corrective_pose_shape(source, target):
+
+    ob_1 = target
     mesh_1 = target.data
-    ob_2   = source
+    ob_2 = source
     mesh_2 = source.data
 
     reset_transform(target)
-    
+
     # If target object doesn't have Basis shape key, create it.
     if not mesh_1.shape_keys:
         basis = ob_1.shape_key_add()
@@ -108,75 +111,73 @@
     if key_index == 0:
         new_shapekey = ob_1.shape_key_add()
         new_shapekey.name = "Shape_" + ob_2.name
-        
-        key_index = len(mesh_1.shape_keys.key_blocks)-1
+
+        key_index = len(mesh_1.shape_keys.key_blocks) - 1
         ob_1.active_shape_key_index = key_index
-        
+
     # else, the active shape will be used (updated)
-                
+
     ob_1.show_only_shape_key = True
 
     vgroup = ob_1.active_shape_key.vertex_group
     ob_1.active_shape_key.vertex_group = ""
-        
-    mesh_1_key_verts = mesh_1.shape_keys.key_blocks[ key_index ].data
-    
-    
+
+    mesh_1_key_verts = mesh_1.shape_keys.key_blocks[key_index].data
+
     x = extract_vert_coords(ob_1, mesh_1_key_verts)
-    
+
     targetx = extract_vert_coords(ob_2, mesh_2.vertices)
-    
+
     for iteration in range(0, iterations):
         dx = [[], [], [], [], [], []]
-    
+
         mapx = extract_mapped_coords(ob_1, mesh_1_key_verts)
-        
+
         # finite differencing in X/Y/Z to get approximate gradient
         for i in range(0, len(mesh_1.vertices)):
             epsilon = (targetx[i] - mapx[i]).length
-            
+
             if epsilon < threshold:
                 epsilon = 0.0
-            
+
             dx[0] += [x[i] + 0.5 * epsilon * Vector((1, 0, 0))]
             dx[1] += [x[i] + 0.5 * epsilon * Vector((-1, 0, 0))]
             dx[2] += [x[i] + 0.5 * epsilon * Vector((0, 1, 0))]
             dx[3] += [x[i] + 0.5 * epsilon * Vector((0, -1, 0))]
             dx[4] += [x[i] + 0.5 * epsilon * Vector((0, 0, 1))]
             dx[5] += [x[i] + 0.5 * epsilon * Vector((0, 0, -1))]
-    
+
         for j in range(0, 6):
             apply_vert_coords(ob_1, mesh_1_key_verts, dx[j])
             dx[j] = extract_mapped_coords(ob_1, mesh_1_key_verts)
-    
+
         # take a step in the direction of the gradient
         for i in range(0, len(mesh_1.vertices)):
             epsilon = (targetx[i] - mapx[i]).length
-            
+
             if epsilon >= threshold:
                 Gx = list((dx[0][i] - dx[1][i]) / epsilon)
                 Gy = list((dx[2][i] - dx[3][i]) / epsilon)
                 Gz = list((dx[4][i] - dx[5][i]) / epsilon)
                 G = Matrix((Gx, Gy, Gz))
                 x[i] += G * (targetx[i] - mapx[i])
-        
-        apply_vert_coords(ob_1, mesh_1_key_verts, x )
-    
 
+        apply_vert_coords(ob_1, mesh_1_key_verts, x)
+
     ob_1.active_shape_key.vertex_group = vgroup
-    
+
     # set the new shape key value to 1.0, so we see the result instantly
     ob_1.active_shape_key.value = 1.0
-    
+
     #mesh_1.update()
     ob_1.show_only_shape_key = False
-    
 
-class add_corrective_pose_shape(bpy.types.Operator):    
+
+class add_corrective_pose_shape(bpy.types.Operator):
     """Adds first object as shape to second object for the current pose """ \
     """while maintaining modifiers """ \
     """(i.e. anisculpt, avoiding crazy space) Beware of slowness!"""
-    
+
     bl_idname = "object.add_corrective_pose_shape"
     bl_label = "Add object as corrective pose shape"
 
@@ -196,22 +197,23 @@
         else:
             source = selection[0]
 
-        func_add_corrective_pose_shape( source, target)
+        func_add_corrective_pose_shape(source, target)
 
         return {'FINISHED'}
 
 
-def func_object_duplicate_flatten_modifiers(ob, scene):
-    mesh = ob.to_mesh( bpy.context.scene, True, 'PREVIEW' )
-    name = ob.name + "_clean"
-    new_object = bpy.data.objects.new( name, mesh)
+def func_object_duplicate_flatten_modifiers(scene, obj):
+    mesh = obj.to_mesh(scene, True, 'PREVIEW')
+    name = obj.name + "_clean"
+    new_object = bpy.data.objects.new(name, mesh)
     new_object.data = mesh
     scene.objects.link(new_object)
     return new_object
 
-class object_duplicate_flatten_modifiers(bpy.types.Operator):   
+
+class object_duplicate_flatten_modifiers(bpy.types.Operator):
     '''Duplicates the selected object with modifiers applied'''
-    
+
     bl_idname = "object.object_duplicate_flatten_modifiers"
     bl_label = "Duplicate and apply all"
 
@@ -222,8 +224,9 @@
     def execute(self, context):
         scene = context.scene
         obj_act = context.active_object
-        new_object = func_object_duplicate_flatten_modifiers(obj_act, context.scene)
-        
+
+        new_object = func_object_duplicate_flatten_modifiers(obj_act, scene)
+
         # setup the context
         bpy.ops.object.select_all(action='DESELECT')
 
@@ -232,30 +235,29 @@
 
         return {'FINISHED'}
 
-    
+
 def unposeMesh(meshObToUnpose, meshObToUnposeWeightSrc, armatureOb):
     psdMeshData = meshObToUnpose
 
     psdMesh = psdMeshData
-    I = Matrix() #identity matrix
-    
+    I = Matrix()  # identity matrix
+
     meshData = meshObToUnposeWeightSrc.data
     mesh = meshData
-    
+
     armData = armatureOb.data
 
     pose = armatureOb.pose
     pbones = pose.bones
-    
 
     for index, v in enumerate(mesh.vertices):
         # above is python shortcut for:index goes up from 0 to tot num of
         # verts in mesh, with index incrementing by 1 each iteration
-        
+
         psdMeshVert = psdMesh[index]
 
         listOfBoneNameWeightPairs = []
-        for n in mesh.vertices[index].groups:         
+        for n in mesh.vertices[index].groups:
             try:
                 name = meshObToUnposeWeightSrc.vertex_groups[n.group].name
                 weight = n.weight
@@ -266,7 +268,7 @@
                         break
                 # ignore non-bone vertex groups
                 if is_bone:
-                    listOfBoneNameWeightPairs.append( [name, weight] )
+                    listOfBoneNameWeightPairs.append([name, weight])
             except:
                 print('error')
                 pass
@@ -277,8 +279,8 @@
             totalWeight += pair[1]
 
         for pair in listOfBoneNameWeightPairs:
-            if (totalWeight>0): #avoid divide by zero!
-                weightedAverageDictionary[pair[0]] = pair[1]/totalWeight
+            if totalWeight > 0:  # avoid divide by zero!
+                weightedAverageDictionary[pair[0]] = pair[1] / totalWeight
             else:
                 weightedAverageDictionary[pair[0]] = 0
 
@@ -298,7 +300,7 @@
                 m = pbone.matrix_channel.copy()
                 #m.transpose()
                 sigma += (m - I) * vertexWeight
-                
+
             else:
                 pass
                 #~ print("no key for bone " + pbone.name)
@@ -308,45 +310,42 @@
         psdMeshVert.co = psdMeshVert.co * sigma
 
 
+def func_add_corrective_pose_shape_fast(source, target):
 
-def func_add_corrective_pose_shape_fast(source, target):
-    
-    
     reset_transform(target)
-    
+
     # If target object doesn't have Basis shape key, create it.
     if not target.data.shape_keys:
         basis = target.shape_key_add()
         basis.name = "Basis"
         target.data.update()
-    
+
     key_index = target.active_shape_key_index
 
     if key_index == 0:
-        
+
         # Insert new shape key
         new_shapekey = target.shape_key_add()
         new_shapekey.name = "Shape_" + source.name
-        
-        key_index = len(target.data.shape_keys.key_blocks)-1
+
+        key_index = len(target.data.shape_keys.key_blocks) - 1
         target.active_shape_key_index = key_index
-        
+
     # else, the active shape will be used (updated)
-        
+
     target.show_only_shape_key = True
-    
-    shape_key_verts = target.data.shape_keys.key_blocks[ key_index ].data
 
+    shape_key_verts = target.data.shape_keys.key_blocks[key_index].data
+
     try:
         vgroup = target.active_shape_key.vertex_group
         target.active_shape_key.vertex_group = ''
     except:
-        print("blub")
         pass
 
     # copy the local vertex positions to the new shape
     verts = source.data.vertices
-    for n in range( len(verts)):
+    for n in range(len(verts)):
         shape_key_verts[n].co = verts[n].co
 
     # go to all armature modifies and unpose the shape
@@ -357,29 +356,28 @@
             n.use_deform_preserve_volume = False
             n.use_vertex_groups = True
             armature = n.object
-            unposeMesh( shape_key_verts, target, armature)
+            unposeMesh(shape_key_verts, target, armature)
             break
-    
+
     # set the new shape key value to 1.0, so we see the result instantly
-    target.data.shape_keys.key_blocks[target.active_shape_key_index].value = 1.0
+    target.active_shape_key.value = 1.0
 
     try:
         target.active_shape_key.vertex_group = vgroup
     except:
-        #~ print("bluba")
         pass
-    
+
     target.show_only_shape_key = False
     target.data.update()
-    
 
 
-class add_corrective_pose_shape_fast(bpy.types.Operator):   
-    '''Adds 1st object as shape to 2nd object as pose shape (only 1 armature)'''
-    
+class add_corrective_pose_shape_fast(bpy.types.Operator):
+    """Adds 1st object as shape to 2nd object as pose shape

@@ Diff output truncated at 10240 characters. @@


More information about the Bf-extensions-cvs mailing list