[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26982] trunk/blender/release/scripts/op/ object_align.py: Align Object op: ignore objects other than Mesh type
Daniel Salazar
zanqdo at gmail.com
Wed Feb 17 09:57:40 CET 2010
Revision: 26982
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26982
Author: zanqdo
Date: 2010-02-17 09:57:40 +0100 (Wed, 17 Feb 2010)
Log Message:
-----------
Align Object op: ignore objects other than Mesh type
Modified Paths:
--------------
trunk/blender/release/scripts/op/object_align.py
Modified: trunk/blender/release/scripts/op/object_align.py
===================================================================
--- trunk/blender/release/scripts/op/object_align.py 2010-02-16 23:51:49 UTC (rev 26981)
+++ trunk/blender/release/scripts/op/object_align.py 2010-02-17 08:57:40 UTC (rev 26982)
@@ -32,57 +32,58 @@
flag_first = True
for obj in bpy.context.selected_objects:
+ if obj.type == 'MESH':
- bb_world = [obj.matrix * Vector(v[:]) for v in obj.bound_box]
-
- Left_Up_Front = bb_world[1]
- Right_Down_Back = bb_world[7]
-
- # Active Center
-
- if obj == bpy.context.active_object:
+ bb_world = [obj.matrix * Vector(v[:]) for v in obj.bound_box]
- center_active_x = ( Left_Up_Front[0] + Right_Down_Back[0] ) / 2
- center_active_y = ( Left_Up_Front[1] + Right_Down_Back[1] ) / 2
- center_active_z = ( Left_Up_Front[2] + Right_Down_Back[2] ) / 2
-
- size_active_x = ( Right_Down_Back[0] - Left_Up_Front[0] ) / 2
- size_active_y = ( Right_Down_Back[1] - Left_Up_Front[1] ) / 2
- size_active_z = ( Left_Up_Front[2] - Right_Down_Back[2] ) / 2
-
- # Selection Center
-
- if flag_first:
- flag_first = False
+ Left_Up_Front = bb_world[1]
+ Right_Down_Back = bb_world[7]
- Left_Up_Front_SEL[0] = Left_Up_Front[0]
- Left_Up_Front_SEL[1] = Left_Up_Front[1]
- Left_Up_Front_SEL[2] = Left_Up_Front[2]
+ # Active Center
- Right_Down_Back_SEL[0] = Right_Down_Back[0]
- Right_Down_Back_SEL[1] = Right_Down_Back[1]
- Right_Down_Back_SEL[2] = Right_Down_Back[2]
+ if obj == bpy.context.active_object:
+
+ center_active_x = ( Left_Up_Front[0] + Right_Down_Back[0] ) / 2
+ center_active_y = ( Left_Up_Front[1] + Right_Down_Back[1] ) / 2
+ center_active_z = ( Left_Up_Front[2] + Right_Down_Back[2] ) / 2
- else:
- # X axis
- if Left_Up_Front[0] < Left_Up_Front_SEL[0]:
+ size_active_x = ( Right_Down_Back[0] - Left_Up_Front[0] ) / 2
+ size_active_y = ( Right_Down_Back[1] - Left_Up_Front[1] ) / 2
+ size_active_z = ( Left_Up_Front[2] - Right_Down_Back[2] ) / 2
+
+ # Selection Center
+
+ if flag_first:
+ flag_first = False
+
Left_Up_Front_SEL[0] = Left_Up_Front[0]
- # Y axis
- if Left_Up_Front[1] < Left_Up_Front_SEL[1]:
Left_Up_Front_SEL[1] = Left_Up_Front[1]
- # Z axis
- if Left_Up_Front[2] > Left_Up_Front_SEL[2]:
Left_Up_Front_SEL[2] = Left_Up_Front[2]
-
- # X axis
- if Right_Down_Back[0] > Right_Down_Back_SEL[0]:
+
Right_Down_Back_SEL[0] = Right_Down_Back[0]
- # Y axis
- if Right_Down_Back[1] > Right_Down_Back_SEL[1]:
Right_Down_Back_SEL[1] = Right_Down_Back[1]
- # Z axis
- if Right_Down_Back[2] < Right_Down_Back_SEL[2]:
Right_Down_Back_SEL[2] = Right_Down_Back[2]
+
+ else:
+ # X axis
+ if Left_Up_Front[0] < Left_Up_Front_SEL[0]:
+ Left_Up_Front_SEL[0] = Left_Up_Front[0]
+ # Y axis
+ if Left_Up_Front[1] < Left_Up_Front_SEL[1]:
+ Left_Up_Front_SEL[1] = Left_Up_Front[1]
+ # Z axis
+ if Left_Up_Front[2] > Left_Up_Front_SEL[2]:
+ Left_Up_Front_SEL[2] = Left_Up_Front[2]
+
+ # X axis
+ if Right_Down_Back[0] > Right_Down_Back_SEL[0]:
+ Right_Down_Back_SEL[0] = Right_Down_Back[0]
+ # Y axis
+ if Right_Down_Back[1] > Right_Down_Back_SEL[1]:
+ Right_Down_Back_SEL[1] = Right_Down_Back[1]
+ # Z axis
+ if Right_Down_Back[2] < Right_Down_Back_SEL[2]:
+ Right_Down_Back_SEL[2] = Right_Down_Back[2]
center_sel_x = ( Left_Up_Front_SEL[0] + Right_Down_Back_SEL[0] ) / 2
center_sel_y = ( Left_Up_Front_SEL[1] + Right_Down_Back_SEL[1] ) / 2
@@ -91,141 +92,142 @@
# Main Loop
for obj in bpy.context.selected_objects:
+ if obj.type == 'MESH':
- loc_world = obj.location
- bb_world = [obj.matrix * Vector(v[:]) for v in obj.bound_box]
-
- Left_Up_Front = bb_world[1]
- Right_Down_Back = bb_world[7]
-
- center_x = ( Left_Up_Front[0] + Right_Down_Back[0] ) / 2
- center_y = ( Left_Up_Front[1] + Right_Down_Back[1] ) / 2
- center_z = ( Left_Up_Front[2] + Right_Down_Back[2] ) / 2
+ loc_world = obj.location
+ bb_world = [obj.matrix * Vector(v[:]) for v in obj.bound_box]
- positive_x = Right_Down_Back[0]
- positive_y = Right_Down_Back[1]
- positive_z = Left_Up_Front[2]
+ Left_Up_Front = bb_world[1]
+ Right_Down_Back = bb_world[7]
- negative_x = Left_Up_Front[0]
- negative_y = Left_Up_Front[1]
- negative_z = Right_Down_Back[2]
-
- obj_loc = obj.location
+ center_x = ( Left_Up_Front[0] + Right_Down_Back[0] ) / 2
+ center_y = ( Left_Up_Front[1] + Right_Down_Back[1] ) / 2
+ center_z = ( Left_Up_Front[2] + Right_Down_Back[2] ) / 2
+
+ positive_x = Right_Down_Back[0]
+ positive_y = Right_Down_Back[1]
+ positive_z = Left_Up_Front[2]
+
+ negative_x = Left_Up_Front[0]
+ negative_y = Left_Up_Front[1]
+ negative_z = Right_Down_Back[2]
- if align_x:
-
- # Align Mode
-
- if relative_to == 'OPT_4': # Active relative
- if align_mode == 'OPT_1':
- obj_x = obj_loc[0] - negative_x - size_active_x
+ obj_loc = obj.location
+
+ if align_x:
+
+ # Align Mode
+
+ if relative_to == 'OPT_4': # Active relative
+ if align_mode == 'OPT_1':
+ obj_x = obj_loc[0] - negative_x - size_active_x
+
+ elif align_mode == 'OPT_3':
+ obj_x = obj_loc[0] - positive_x + size_active_x
- elif align_mode == 'OPT_3':
- obj_x = obj_loc[0] - positive_x + size_active_x
-
- else: # Everything else relative
- if align_mode == 'OPT_1':
- obj_x = obj_loc[0] - negative_x
+ else: # Everything else relative
+ if align_mode == 'OPT_1':
+ obj_x = obj_loc[0] - negative_x
+
+ elif align_mode == 'OPT_3':
+ obj_x = obj_loc[0] - positive_x
+
+ if align_mode == 'OPT_2': # All relative
+ obj_x = obj_loc[0] - center_x
+
+ # Relative To
+
+ if relative_to == 'OPT_1':
+ loc_x = obj_x
- elif align_mode == 'OPT_3':
- obj_x = obj_loc[0] - positive_x
-
- if align_mode == 'OPT_2': # All relative
- obj_x = obj_loc[0] - center_x
-
- # Relative To
-
- if relative_to == 'OPT_1':
- loc_x = obj_x
-
- elif relative_to == 'OPT_2':
- loc_x = obj_x + cursor[0]
-
- elif relative_to == 'OPT_3':
- loc_x = obj_x + center_sel_x
-
- elif relative_to == 'OPT_4':
- loc_x = obj_x + center_active_x
-
- obj.location[0] = loc_x
-
-
- if align_y:
-
- # Align Mode
-
- if relative_to == 'OPT_4': # Active relative
- if align_mode == 'OPT_1':
- obj_y = obj_loc[1] - negative_y - size_active_y
+ elif relative_to == 'OPT_2':
+ loc_x = obj_x + cursor[0]
- elif align_mode == 'OPT_3':
- obj_y = obj_loc[1] - positive_y + size_active_y
-
- else: # Everything else relative
- if align_mode == 'OPT_1':
- obj_y = obj_loc[1] - negative_y
+ elif relative_to == 'OPT_3':
+ loc_x = obj_x + center_sel_x
+
+ elif relative_to == 'OPT_4':
+ loc_x = obj_x + center_active_x
- elif align_mode == 'OPT_3':
- obj_y = obj_loc[1] - positive_y
-
- if align_mode == 'OPT_2': # All relative
- obj_y = obj_loc[1] - center_y
-
- # Relative To
-
- if relative_to == 'OPT_1':
- loc_y = obj_y
-
- elif relative_to == 'OPT_2':
- loc_y = obj_y + cursor[1]
-
- elif relative_to == 'OPT_3':
- loc_y = obj_y + center_sel_y
-
- elif relative_to == 'OPT_4':
- loc_y = obj_y + center_active_y
-
- obj.location[1] = loc_y
-
-
- if align_z:
-
- # Align Mode
-
- if relative_to == 'OPT_4': # Active relative
- if align_mode == 'OPT_1':
- obj_z = obj_loc[2] - negative_z - size_active_z
+ obj.location[0] = loc_x
+
+
+ if align_y:
+
+ # Align Mode
+
+ if relative_to == 'OPT_4': # Active relative
+ if align_mode == 'OPT_1':
+ obj_y = obj_loc[1] - negative_y - size_active_y
+
+ elif align_mode == 'OPT_3':
+ obj_y = obj_loc[1] - positive_y + size_active_y
- elif align_mode == 'OPT_3':
- obj_z = obj_loc[2] - positive_z + size_active_z
-
- else: # Everything else relative
- if align_mode == 'OPT_1':
- obj_z = obj_loc[2] - negative_z
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list