[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21584] branches/blender2.5/blender: 2.5: Objects

Brecht Van Lommel brecht at blender.org
Tue Jul 14 22:27:28 CEST 2009


Revision: 21584
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21584
Author:   blendix
Date:     2009-07-14 22:27:28 +0200 (Tue, 14 Jul 2009)

Log Message:
-----------
2.5: Objects

* Added Relations panel with layers, pass_index, parent.
* Groups panel now can do add to group/remove from group.
* Parent, parent type, track are now editable.
* Separate constraint add operator for object and bones.

Modified Paths:
--------------
    branches/blender2.5/blender/release/ui/buttons_object_constraint.py
    branches/blender2.5/blender/release/ui/buttons_objects.py
    branches/blender2.5/blender/release/ui/buttons_scene.py
    branches/blender2.5/blender/source/blender/editors/include/ED_object.h
    branches/blender2.5/blender/source/blender/editors/object/editconstraint.c
    branches/blender2.5/blender/source/blender/editors/object/editgroup.c
    branches/blender2.5/blender/source/blender/editors/object/object_edit.c
    branches/blender2.5/blender/source/blender/editors/object/object_intern.h
    branches/blender2.5/blender/source/blender/editors/object/object_ops.c
    branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_intern.h
    branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_ops.c
    branches/blender2.5/blender/source/blender/editors/space_buttons/space_buttons.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_object.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_scene.c

Modified: branches/blender2.5/blender/release/ui/buttons_object_constraint.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_object_constraint.py	2009-07-14 17:59:26 UTC (rev 21583)
+++ branches/blender2.5/blender/release/ui/buttons_object_constraint.py	2009-07-14 20:27:28 UTC (rev 21584)
@@ -528,7 +528,7 @@
 
 class BONE_PT_constraints(ConstraintButtonsPanel):
 	__idname__ = "BONE_PT_constraints"
-	__label__ = "Bone Constraints"
+	__label__ = "Constraints"
 	__context__ = "bone"
 
 	def poll(self, context):
@@ -541,7 +541,7 @@
 		layout = self.layout
 
 		row = layout.row()
-		row.item_menu_enumO("OBJECT_OT_constraint_add", "type")
+		row.item_menu_enumO("POSE_OT_constraint_add", "type")
 		row.itemL();
 
 		for con in pchan.constraints:

Modified: branches/blender2.5/blender/release/ui/buttons_objects.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_objects.py	2009-07-14 17:59:26 UTC (rev 21583)
+++ branches/blender2.5/blender/release/ui/buttons_objects.py	2009-07-14 20:27:28 UTC (rev 21584)
@@ -31,6 +31,31 @@
 		row.column().itemR(ob, "rotation")
 		row.column().itemR(ob, "scale")
 
+class OBJECT_PT_relations(ObjectButtonsPanel):
+	__idname__ = "OBJECT_PT_relations"
+	__label__ = "Relations"
+
+	def draw(self, context):
+		layout = self.layout
+		ob = context.object
+
+		split = layout.split()
+		col = split.column()
+		col.itemR(ob, "layers")
+		col.itemS()
+		col.itemR(ob, "pass_index")
+
+		col = split.column()
+		col.itemL(text="Parent:")
+		col.itemR(ob, "parent", text="")
+
+		sub = col.column()
+		sub.itemR(ob, "parent_type", text="Type")
+		parent = ob.parent
+		if parent and ob.parent_type == 'BONE' and parent.type == 'ARMATURE':
+			sub.item_pointerR(ob, "parent_bone", parent.data, "bones", text="")
+		sub.active = parent != None
+
 class OBJECT_PT_groups(ObjectButtonsPanel):
 	__idname__ = "OBJECT_PT_groups"
 	__label__ = "Groups"
@@ -39,24 +64,23 @@
 		layout = self.layout
 		ob = context.object
 
-		row = layout.row()
-		row.itemR(ob, "pass_index")
-		row.itemR(ob, "parent")
+		split = layout.split()
+		split.item_menu_enumO("OBJECT_OT_group_add", "group", text="Add to Group")
+		split.itemL()
 
-		# layout.left_right()
-		# layout.itemO("OBJECT_OT_add_group");
-
 		for group in bpy.data.groups:
 			if ob.name in group.objects:
 				col = layout.column(align=True)
 
+				col.set_context_pointer("group", group)
+
 				row = col.box().row()
 				row.itemR(group, "name", text="")
-				#row.itemO("OBJECT_OT_remove_group")
+				row.itemO("OBJECT_OT_group_remove", text="", icon="VICON_X")
 
 				split = col.box().split()
-				split.column().itemR(group, "layer")
-				split.column().itemR(group, "dupli_offset")
+				split.column().itemR(group, "layer", text="Dupli")
+				split.column().itemR(group, "dupli_offset", text="")
 
 class OBJECT_PT_display(ObjectButtonsPanel):
 	__idname__ = "OBJECT_PT_display"
@@ -132,12 +156,16 @@
 		
 		sub = split.column()
 		sub.itemL(text="Tracking:")
+		sub.itemR(ob, "track", text="")
 		sub.itemR(ob, "track_axis", text="Axis")
 		sub.itemR(ob, "up_axis", text="Up Axis")
-		sub.itemR(ob, "track_rotation", text="Rotation")
+		row = sub.row()
+		row.itemR(ob, "track_override_parent", text="Override Parent")
+		row.active = ob.parent != None
 
 bpy.types.register(OBJECT_PT_context_object)
 bpy.types.register(OBJECT_PT_transform)
+bpy.types.register(OBJECT_PT_relations)
 bpy.types.register(OBJECT_PT_groups)
 bpy.types.register(OBJECT_PT_display)
 bpy.types.register(OBJECT_PT_duplication)

Modified: branches/blender2.5/blender/release/ui/buttons_scene.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_scene.py	2009-07-14 17:59:26 UTC (rev 21583)
+++ branches/blender2.5/blender/release/ui/buttons_scene.py	2009-07-14 20:27:28 UTC (rev 21584)
@@ -28,10 +28,6 @@
 		scene = context.scene
 		rd = scene.render_data
 
-		split = layout.split()
-		split.itemL(text="Scene:")
-		split.column().itemR(scene, "visible_layers", text="")
-
 		row = layout.row()
 		row.template_list(rd, "layers", rd, "active_layer_index", rows=2)
 
@@ -42,8 +38,10 @@
 		rl = rd.layers[rd.active_layer_index]
 
 		split = layout.split()
-		split.itemL(text="Layers:")
-		split.column().itemR(rl, "visible_layers", text="")
+		col = split.column()
+		col.itemR(scene, "visible_layers", text="Scene")
+		col = split.column()
+		col.itemR(rl, "visible_layers", text="Layer")
 
 		layout.itemR(rl, "light_override", text="Light")
 		layout.itemR(rl, "material_override", text="Material")

Modified: branches/blender2.5/blender/source/blender/editors/include/ED_object.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_object.h	2009-07-14 17:59:26 UTC (rev 21583)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_object.h	2009-07-14 20:27:28 UTC (rev 21584)
@@ -57,6 +57,7 @@
 	/* single object duplicate, if dupflag==0, fully linked, else it uses U.dupflag */
 struct Base *ED_object_add_duplicate(struct Scene *scene, struct Base *base, int usedupflag);
 
+void ED_object_parent(struct Object *ob, struct Object *parent, int type, const char *substr);
 
 /* bitflags for enter/exit editmode */
 #define EM_FREEDATA		1

Modified: branches/blender2.5/blender/source/blender/editors/object/editconstraint.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/object/editconstraint.c	2009-07-14 17:59:26 UTC (rev 21583)
+++ branches/blender2.5/blender/source/blender/editors/object/editconstraint.c	2009-07-14 20:27:28 UTC (rev 21584)
@@ -1008,12 +1008,11 @@
 
 /************************ add constraint operator *********************/
 
-static int constraint_add_exec(bContext *C, wmOperator *op)
+static int constraint_add_exec(bContext *C, wmOperator *op, ListBase *list)
 {
 	Scene *scene= CTX_data_scene(C);
     Object *ob = CTX_data_active_object(C);
 	bConstraint *con, *coniter;
-	ListBase *list= get_active_constraints(ob);
 	bPoseChannel *pchan= get_active_posechannel(ob);
 	int type= RNA_enum_get(op->ptr, "type");
 
@@ -1077,6 +1076,26 @@
 	return OPERATOR_FINISHED;
 }
 
+static int object_constraint_add_exec(bContext *C, wmOperator *op)
+{
+	Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
+
+	if(!ob)
+		return OPERATOR_CANCELLED;
+
+	return constraint_add_exec(C, op, &ob->constraints);
+}
+
+static int pose_constraint_add_exec(bContext *C, wmOperator *op)
+{
+	Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
+
+	if(!ob)
+		return OPERATOR_CANCELLED;;
+	
+	return constraint_add_exec(C, op, get_active_constraints(ob));
+}
+
 void OBJECT_OT_constraint_add(wmOperatorType *ot)
 {
 	/* identifiers */
@@ -1086,13 +1105,32 @@
 	
 	/* api callbacks */
 	ot->invoke= WM_menu_invoke;
-	ot->exec= constraint_add_exec;
-	
+	ot->exec= object_constraint_add_exec;
 	ot->poll= ED_operator_object_active;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 	
+	/* properties */
 	RNA_def_enum(ot->srna, "type", constraint_type_items, 0, "Type", "");
 }
 
+void POSE_OT_constraint_add(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Add Constraint";
+	ot->description = "Add a constraint to the active bone.";
+	ot->idname= "POSE_OT_constraint_add";
+	
+	/* api callbacks */
+	ot->invoke= WM_menu_invoke;
+	ot->exec= pose_constraint_add_exec;
+	ot->poll= ED_operator_posemode;
+	
+	/* flags */
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+	
+	/* properties */
+	RNA_def_enum(ot->srna, "type", constraint_type_items, 0, "Type", "");
+}
+

Modified: branches/blender2.5/blender/source/blender/editors/object/editgroup.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/object/editgroup.c	2009-07-14 17:59:26 UTC (rev 21583)
+++ branches/blender2.5/blender/source/blender/editors/object/editgroup.c	2009-07-14 20:27:28 UTC (rev 21584)
@@ -200,7 +200,7 @@
 {
 	
 	/* identifiers */
-	ot->name= "Remove from group";
+	ot->name= "Remove From Groups";
 	ot->description = "Remove selected objects from all groups.";
 	ot->idname= "GROUP_OT_objects_remove";
 	

Modified: branches/blender2.5/blender/source/blender/editors/object/object_edit.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/object/object_edit.c	2009-07-14 17:59:26 UTC (rev 21583)
+++ branches/blender2.5/blender/source/blender/editors/object/object_edit.c	2009-07-14 20:27:28 UTC (rev 21584)
@@ -2786,7 +2786,23 @@
 	return test_parent_loop(par->parent, ob);
 }
 
+void ED_object_parent(Object *ob, Object *par, int type, const char *substr)
+{
+	if(!par || test_parent_loop(par, ob)) {
+		ob->parent= NULL;
+		ob->partype= PAROBJECT;
+		ob->parsubstr[0]= 0;
+		return;
+	}
 
+	/* this could use some more checks */
+
+	ob->parent= par;
+	ob->partype &= ~PARTYPE;
+	ob->partype |= type;
+	BLI_strncpy(ob->parsubstr, substr, sizeof(ob->parsubstr));
+}
+
 static int parent_set_exec(bContext *C, wmOperator *op)
 {
 	Scene *scene= CTX_data_scene(C);

Modified: branches/blender2.5/blender/source/blender/editors/object/object_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/object/object_intern.h	2009-07-14 17:59:26 UTC (rev 21583)
+++ branches/blender2.5/blender/source/blender/editors/object/object_intern.h	2009-07-14 20:27:28 UTC (rev 21584)
@@ -102,6 +102,7 @@
 
 /* editconstraint.c */
 void OBJECT_OT_constraint_add(struct wmOperatorType *ot);
+void POSE_OT_constraint_add(struct wmOperatorType *ot);
 void CONSTRAINT_OT_delete(struct wmOperatorType *ot);
 
 void CONSTRAINT_OT_move_up(struct wmOperatorType *ot);

Modified: branches/blender2.5/blender/source/blender/editors/object/object_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/object/object_ops.c	2009-07-14 17:59:26 UTC (rev 21583)
+++ branches/blender2.5/blender/source/blender/editors/object/object_ops.c	2009-07-14 20:27:28 UTC (rev 21584)
@@ -112,6 +112,7 @@
 	WM_operatortype_append(OBJECT_OT_modifier_mdef_bind);
 
 	WM_operatortype_append(OBJECT_OT_constraint_add);
+	WM_operatortype_append(POSE_OT_constraint_add);
 	WM_operatortype_append(CONSTRAINT_OT_delete);

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list