From 0d4c267a5037f972750198b00c8d0582ae2ea2ed Mon Sep 17 00:00:00 2001
From: Campbell Barton <ideasman42@gmail.com>
Date: Mon, 16 Jul 2012 16:54:57 +0000
Subject: [PATCH] sorting recursive children to fracture wasnt working right

---
 object_fracture_cell/__init__.py | 39 ++++++++++++++------------------
 1 file changed, 17 insertions(+), 22 deletions(-)

diff --git a/object_fracture_cell/__init__.py b/object_fracture_cell/__init__.py
index 6bd20a8c3..f05e745c4 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()
-- 
GitLab