From da274eb07694c049bba160aed01f4a2e70758fc0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 13 Jul 2012 09:03:19 +0000 Subject: recursion source limit --- object_fracture_cell/__init__.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'object_fracture_cell') diff --git a/object_fracture_cell/__init__.py b/object_fracture_cell/__init__.py index 29ff0fe3..5c6938e7 100644 --- a/object_fracture_cell/__init__.py +++ b/object_fracture_cell/__init__.py @@ -51,6 +51,7 @@ def main_object(scene, obj, level, **kw): 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 @@ def main_object(scene, obj, level, **kw): 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 @@ def main_object(scene, obj, level, **kw): 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 @@ class FractureCell(Operator): 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 @@ class FractureCell(Operator): 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) -- cgit v1.2.3