[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3566] trunk/py/scripts/addons/ object_fracture_voroni: split islands boolean option.

Campbell Barton ideasman42 at gmail.com
Tue Jul 3 17:28:45 CEST 2012


Revision: 3566
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3566
Author:   campbellbarton
Date:     2012-07-03 15:28:44 +0000 (Tue, 03 Jul 2012)
Log Message:
-----------
split islands boolean option.

Modified Paths:
--------------
    trunk/py/scripts/addons/object_fracture_voroni/__init__.py
    trunk/py/scripts/addons/object_fracture_voroni/fracture_cell_setup.py

Modified: trunk/py/scripts/addons/object_fracture_voroni/__init__.py
===================================================================
--- trunk/py/scripts/addons/object_fracture_voroni/__init__.py	2012-07-03 12:16:10 UTC (rev 3565)
+++ trunk/py/scripts/addons/object_fracture_voroni/__init__.py	2012-07-03 15:28:44 UTC (rev 3566)
@@ -56,12 +56,13 @@
     recursion_chance_select = kw_copy.pop("recursion_chance_select")
     use_layer_next = kw_copy.pop("use_layer_next")
     group_name = kw_copy.pop("group_name")
-    
+    use_island_split = kw_copy.pop("use_island_split")
 
     from . import fracture_cell_setup
     
     objects = fracture_cell_setup.cell_fracture_objects(scene, obj, **kw_copy)
-    objects = fracture_cell_setup.cell_fracture_boolean(scene, obj, objects)
+    objects = fracture_cell_setup.cell_fracture_boolean(scene, obj, objects,
+                                                        use_island_split=use_island_split)
 
     # todo, split islands.
 
@@ -327,6 +328,7 @@
         rowsub.prop(self, "use_smooth_faces")
         rowsub.prop(self, "use_smooth_edges")
         rowsub.prop(self, "use_data_match")
+        rowsub.prop(self, "use_island_split")
         rowsub.prop(self, "margin")
         # rowsub.prop(self, "use_island_split")  # TODO
 

Modified: trunk/py/scripts/addons/object_fracture_voroni/fracture_cell_setup.py
===================================================================
--- trunk/py/scripts/addons/object_fracture_voroni/fracture_cell_setup.py	2012-07-03 12:16:10 UTC (rev 3565)
+++ trunk/py/scripts/addons/object_fracture_voroni/fracture_cell_setup.py	2012-07-03 15:28:44 UTC (rev 3566)
@@ -122,7 +122,6 @@
                           use_smooth_faces=False,
                           use_smooth_edges=True,
                           use_data_match=False,
-                          use_island_split=False,
                           use_debug_points=False,
                           margin=0.0,
                           ):
@@ -279,7 +278,11 @@
     return objects
 
 
-def cell_fracture_boolean(scene, obj, objects, apply=True, clean=True):
+def cell_fracture_boolean(scene, obj, objects,
+                          apply=True,
+                          clean=True,
+                          use_island_split=False,
+                          ):
 
     objects_boolean = []
     
@@ -326,4 +329,28 @@
 
         if obj_cell is not None:
             objects_boolean.append(obj_cell)
+
+    if use_island_split:
+        # this is ugly and Im not proud of this - campbell
+        objects_islands = []
+        for obj_cell in objects_boolean:
+
+            scene.objects.active = obj_cell
+
+            group_island = bpy.data.groups.new(name="Islands")
+            group_island.objects.link(obj_cell)
+
+            bpy.ops.object.mode_set(mode='EDIT')
+            bpy.ops.mesh.select_all(action='SELECT')
+            bpy.ops.mesh.separate(type='LOOSE')
+            bpy.ops.object.mode_set(mode='OBJECT')
+
+            objects_islands.extend(group_island.objects[:])
+
+            bpy.data.groups.remove(group_island)
+
+            scene.objects.active = None
+
+        objects_boolean = objects_islands
+
     return objects_boolean



More information about the Bf-extensions-cvs mailing list