Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-07-16 20:54:57 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-07-16 20:54:57 +0400
commit0d4c267a5037f972750198b00c8d0582ae2ea2ed (patch)
tree5d6b9cc90fc7954ba6e417d48186167584ee49e5 /object_fracture_cell
parent33dc5efa379e11df7c5422a88a5083960a5006b3 (diff)
sorting recursive children to fracture wasnt working right
Diffstat (limited to 'object_fracture_cell')
-rw-r--r--object_fracture_cell/__init__.py39
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()