diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-07-16 20:54:57 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-07-16 20:54:57 +0400 |
commit | 0d4c267a5037f972750198b00c8d0582ae2ea2ed (patch) | |
tree | 5d6b9cc90fc7954ba6e417d48186167584ee49e5 /object_fracture_cell | |
parent | 33dc5efa379e11df7c5422a88a5083960a5006b3 (diff) |
sorting recursive children to fracture wasnt working right
Diffstat (limited to 'object_fracture_cell')
-rw-r--r-- | object_fracture_cell/__init__.py | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/object_fracture_cell/__init__.py b/object_fracture_cell/__init__.py index 6bd20a8c..f05e745c 100644 --- a/object_fracture_cell/__init__.py +++ b/object_fracture_cell/__init__.py @@ -97,29 +97,24 @@ def main_object(scene, obj, level, **kw): objects_recurse_input = [(i, o) for i, o in enumerate(objects)] if recursion_chance != 1.0: - - if 0: + from mathutils import Vector + if recursion_chance_select == 'RANDOM': random.shuffle(objects_recurse_input) - else: - from mathutils import Vector - if recursion_chance_select == 'RANDOM': - pass - elif recursion_chance_select == {'SIZE_MIN', 'SIZE_MAX'}: - objects_recurse_input.sort(key=lambda ob_pair: - (Vector(ob_pair[1].bound_box[0]) - - Vector(ob_pair[1].bound_box[6])).length_squared) - if recursion_chance_select == 'SIZE_MAX': - objects_recurse_input.reverse() - elif recursion_chance_select == {'CURSOR_MIN', 'CURSOR_MAX'}: - print(recursion_chance_select) - c = scene.cursor_location.copy() - objects_recurse_input.sort(key=lambda ob_pair: - (ob_pair[1].matrix_world.translation - c).length_squared) - if recursion_chance_select == 'CURSOR_MAX': - objects_recurse_input.reverse() - - objects_recurse_input[int(recursion_chance * len(objects_recurse_input)):] = [] - objects_recurse_input.sort() + elif recursion_chance_select in {'SIZE_MIN', 'SIZE_MAX'}: + objects_recurse_input.sort(key=lambda ob_pair: + (Vector(ob_pair[1].bound_box[0]) - + Vector(ob_pair[1].bound_box[6])).length_squared) + if recursion_chance_select == 'SIZE_MAX': + objects_recurse_input.reverse() + elif recursion_chance_select in {'CURSOR_MIN', 'CURSOR_MAX'}: + c = scene.cursor_location.copy() + objects_recurse_input.sort(key=lambda ob_pair: + (ob_pair[1].location - c).length_squared) + if recursion_chance_select == 'CURSOR_MAX': + objects_recurse_input.reverse() + + objects_recurse_input[int(recursion_chance * len(objects_recurse_input)):] = [] + objects_recurse_input.sort() # reverse index values so we can remove from original list. objects_recurse_input.reverse() |