[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3649] trunk/py/scripts/addons/ object_fracture_cell/fracture_cell_setup.py: remove doubles after booleans

Campbell Barton ideasman42 at gmail.com
Wed Jul 25 12:37:10 CEST 2012


Revision: 3649
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3649
Author:   campbellbarton
Date:     2012-07-25 10:37:10 +0000 (Wed, 25 Jul 2012)
Log Message:
-----------
remove doubles after booleans

Modified Paths:
--------------
    trunk/py/scripts/addons/object_fracture_cell/fracture_cell_setup.py

Modified: trunk/py/scripts/addons/object_fracture_cell/fracture_cell_setup.py
===================================================================
--- trunk/py/scripts/addons/object_fracture_cell/fracture_cell_setup.py	2012-07-25 01:20:57 UTC (rev 3648)
+++ trunk/py/scripts/addons/object_fracture_cell/fracture_cell_setup.py	2012-07-25 10:37:10 UTC (rev 3649)
@@ -312,6 +312,7 @@
                           use_interior_hide=False,
                           use_debug_redraw=False,
                           level=0,
+                          remove_doubles=True
                           ):
 
     objects_boolean = []
@@ -350,23 +351,30 @@
                         mesh_new = None
 
             # avoid unneeded bmesh re-conversion
-            bm = None
+            if mesh_new is not None:
+                bm = None
 
-            if clean and mesh_new:
-                if bm is None:  # ok this will always be true for now...
-                    bm = bmesh.new()
-                    bm.from_mesh(mesh_new)
-                bm.normal_update()
-                try:
-                    bmesh.ops.dissolve_limit(bm, verts=bm.verts, edges=bm.edges, angle_limit=0.001)
-                except RuntimeError:
-                    import traceback
-                    traceback.print_exc()
+                if clean:
+                    if bm is None:  # ok this will always be true for now...
+                        bm = bmesh.new()
+                        bm.from_mesh(mesh_new)
+                    bm.normal_update()
+                    try:
+                        bmesh.ops.dissolve_limit(bm, verts=bm.verts, edges=bm.edges, angle_limit=0.001)
+                    except RuntimeError:
+                        import traceback
+                        traceback.print_exc()
 
-            if bm is not None:
-                bm.to_mesh(mesh_new)
-                bm.free()
+                if remove_doubles:
+                    if bm is None:
+                        bm = bmesh.new()
+                        bm.from_mesh(mesh_new)
+                    bmesh.ops.remove_doubles(bm, verts=bm.verts, dist=0.005)
 
+                if bm is not None:
+                    bm.to_mesh(mesh_new)
+                    bm.free()
+
             del mesh_new
             del mesh_old
 
@@ -429,8 +437,7 @@
             for bm_edge in bm.edges:
                 if len({bm_face.hide for bm_face in bm_edge.link_faces}) == 2:
                     bm_edge.smooth = False
-    
-        
+
             if use_sharp_edges_apply:
                 edges = [edge for edge in bm.edges if edge.smooth is False]
                 if edges:



More information about the Bf-extensions-cvs mailing list