[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28328] trunk/blender/release/scripts: fix for divide by zero on vertex dirt script, show from the vertex paint menu

Campbell Barton ideasman42 at gmail.com
Wed Apr 21 18:22:37 CEST 2010


Revision: 28328
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28328
Author:   campbellbarton
Date:     2010-04-21 18:22:37 +0200 (Wed, 21 Apr 2010)

Log Message:
-----------
fix for divide by zero on vertex dirt script, show from the vertex paint menu

Modified Paths:
--------------
    trunk/blender/release/scripts/op/vertexpaint_dirt.py
    trunk/blender/release/scripts/ui/space_view3d.py

Modified: trunk/blender/release/scripts/op/vertexpaint_dirt.py
===================================================================
--- trunk/blender/release/scripts/op/vertexpaint_dirt.py	2010-04-21 14:53:01 UTC (rev 28327)
+++ trunk/blender/release/scripts/op/vertexpaint_dirt.py	2010-04-21 16:22:37 UTC (rev 28328)
@@ -58,17 +58,22 @@
         con[e.verts[0]].append(e.verts[1])
         con[e.verts[1]].append(e.verts[0])
 
-    for v in me.verts:
+    for i, v in enumerate(me.verts):
         vec = Vector()
         no = v.normal
         co = v.co
 
         # get the direction of the vectors between the vertex and it's connected vertices
-        for c in con[v.index]:
+        for c in con[i]:
             vec += Vector(me.verts[c].co - co).normalize()
 
         # normalize the vector by dividing by the number of connected verts
-        vec /= len(con[v.index])
+        tot_con = len(con[i])
+        
+        if tot_con == 0:
+            continue
+        
+        vec /= tot_con
 
         # angle is the acos of the dot product between vert and connected verts normals
         ang = math.acos(no.dot(vec))
@@ -79,7 +84,7 @@
         if not dirt_only:
             ang = min(clamp_clean, ang)
 
-        vert_tone[v.index] = ang
+        vert_tone[i] = ang
 
     # blur tones
     for i in range(blur_iterations):
@@ -146,7 +151,7 @@
 
 class VertexPaintDirt(bpy.types.Operator):
 
-    bl_idname = "mesh.vertex_paint_dirt"
+    bl_idname = "paint.vertex_color_dirt"
     bl_label = "Dirty Vertex Colors"
     bl_options = {'REGISTER', 'UNDO'}
 
@@ -171,7 +176,7 @@
 
         print('Dirt calculated in %.6f' % (time.time() - t))
 
-        return('FINISHED',)
+        return {'FINISHED'}
 
 
 def register():

Modified: trunk/blender/release/scripts/ui/space_view3d.py
===================================================================
--- trunk/blender/release/scripts/ui/space_view3d.py	2010-04-21 14:53:01 UTC (rev 28327)
+++ trunk/blender/release/scripts/ui/space_view3d.py	2010-04-21 16:22:37 UTC (rev 28328)
@@ -850,6 +850,7 @@
         layout = self.layout
 
         layout.operator("paint.vertex_color_set")
+        layout.operator("paint.vertex_color_dirt")
 
 
 class VIEW3D_MT_hook(bpy.types.Menu):





More information about the Bf-blender-cvs mailing list