[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3622] trunk/py/scripts/addons/ object_fracture_cell/__init__.py: recursion source limit

Campbell Barton ideasman42 at gmail.com
Fri Jul 13 11:03:20 CEST 2012


Revision: 3622
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3622
Author:   campbellbarton
Date:     2012-07-13 09:03:19 +0000 (Fri, 13 Jul 2012)
Log Message:
-----------
recursion source limit

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

Modified: trunk/py/scripts/addons/object_fracture_cell/__init__.py
===================================================================
--- trunk/py/scripts/addons/object_fracture_cell/__init__.py	2012-07-13 07:29:51 UTC (rev 3621)
+++ trunk/py/scripts/addons/object_fracture_cell/__init__.py	2012-07-13 09:03:19 UTC (rev 3622)
@@ -51,6 +51,7 @@
     use_recenter = kw_copy.pop("use_recenter")
     use_remove_original = kw_copy.pop("use_remove_original")
     recursion = kw_copy.pop("recursion")
+    recursion_source_limit = kw_copy.pop("recursion_source_limit")
     recursion_chance = kw_copy.pop("recursion_chance")
     recursion_chance_select = kw_copy.pop("recursion_chance_select")
     use_layer_next = kw_copy.pop("use_layer_next")
@@ -87,7 +88,7 @@
 
         objects_recurse_input = [(i, o) for i, o in enumerate(objects)]
 
-        if recursion_chance != 1.0:
+        if recursion_chance != 1.0 or recursion_source_limit != 0:
             
             if 0:
                 random.shuffle(objects_recurse_input)
@@ -109,7 +110,11 @@
                     if recursion_chance_select == 'CURSOR_MAX':
                         objects_recurse_input.reverse()
 
-                objects_recurse_input[int(recursion_chance * len(objects_recurse_input)):] = []
+                recursion_tot = int(recursion_chance * len(objects_recurse_input))
+                if recursion_source_limit != 0 and recursion_tot > recursion_source_limit:
+                    recursion_tot = recursion_source_limit
+
+                objects_recurse_input[recursion_tot:] = []
                 objects_recurse_input.sort()
 
         # reverse index values so we can remove from original list.
@@ -274,6 +279,13 @@
             default=0,
             )
 
+    recursion_source_limit = IntProperty(
+            name="Source Limit",
+            description="Limit the number of input points, 0 for unlimited (applies to recursion only)",
+            min=0, max=5000,
+            default=8,
+            )
+
     recursion_chance = FloatProperty(
             name="Random Factor",
             description="Likelyhood of recursion",
@@ -447,6 +459,7 @@
         col.label("Recursive Shatter")
         rowsub = col.row(align=True)
         rowsub.prop(self, "recursion")
+        rowsub.prop(self, "recursion_source_limit")
         rowsub = col.row()
         rowsub.prop(self, "recursion_chance")
         rowsub.prop(self, "recursion_chance_select", expand=True)



More information about the Bf-extensions-cvs mailing list