[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19019] branches/blender2.5/blender/source /blender/editors/armature: 2.5

Michael Fox mfoxdogg at gmail.com
Wed Feb 18 02:50:29 CET 2009


Revision: 19019
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19019
Author:   mfoxdogg
Date:     2009-02-18 02:50:26 +0100 (Wed, 18 Feb 2009)

Log Message:
-----------
  2.5
******
added a ARMATURE_OT_bone_add operator, ita generic operator to add a bone it behaves the same way as the old add bone (making a bone not set the tail but have it selected), commiting this so other add bone ops like add bonre pinative or making new armature

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/armature/armature_intern.h
    branches/blender2.5/blender/source/blender/editors/armature/armature_ops.c
    branches/blender2.5/blender/source/blender/editors/armature/editarmature.c

Modified: branches/blender2.5/blender/source/blender/editors/armature/armature_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/armature/armature_intern.h	2009-02-17 21:07:01 UTC (rev 19018)
+++ branches/blender2.5/blender/source/blender/editors/armature/armature_intern.h	2009-02-18 01:50:26 UTC (rev 19019)
@@ -32,7 +32,7 @@
 struct wmOperatorType;
 
 /* editarmature.c */
-
+void ARMATURE_OT_bone_add(struct wmOperatorType *ot);
 void ARMATURE_OT_align_bones(struct wmOperatorType *ot);
 void ARMATURE_OT_calculate_roll(struct wmOperatorType *ot);
 void ARMATURE_OT_switch_direction(struct wmOperatorType *ot);

Modified: branches/blender2.5/blender/source/blender/editors/armature/armature_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/armature/armature_ops.c	2009-02-17 21:07:01 UTC (rev 19018)
+++ branches/blender2.5/blender/source/blender/editors/armature/armature_ops.c	2009-02-18 01:50:26 UTC (rev 19019)
@@ -108,6 +108,8 @@
 void ED_operatortypes_armature(void)
 {
 	/* EDIT ARMATURE */
+	WM_operatortype_append(ARMATURE_OT_bone_add);
+	
 	WM_operatortype_append(ARMATURE_OT_align_bones);
 	WM_operatortype_append(ARMATURE_OT_calculate_roll);
 	WM_operatortype_append(ARMATURE_OT_switch_direction);

Modified: branches/blender2.5/blender/source/blender/editors/armature/editarmature.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/armature/editarmature.c	2009-02-17 21:07:01 UTC (rev 19018)
+++ branches/blender2.5/blender/source/blender/editors/armature/editarmature.c	2009-02-18 01:50:26 UTC (rev 19019)
@@ -2977,7 +2977,61 @@
 //	Transform();
 	
 }
+/* ********************** Bone Add ********************/
 
+/*op makes a new bone and returns it with its tip selected */
+
+static int armature_bone_add_exec(bContext *C, wmOperator *op) 
+{
+	Object *ob= CTX_data_edit_object(C);
+	bArmature *arm= (bArmature *)ob->data;
+	EditBone *bone= MEM_callocN(sizeof(EditBone), "eBone");
+	char name[32];
+	 
+	RNA_string_get(op->ptr, "name", name);
+
+	BLI_strncpy(bone->name, name, 32);
+	unique_editbone_name(arm->edbo, bone->name);
+	
+	BLI_addtail(arm->edbo, bone);
+	
+	bone->flag |= BONE_TIPSEL;
+	bone->weight= 1.0f;
+	bone->dist= 0.25f;
+	bone->xwidth= 0.1f;
+	bone->zwidth= 0.1f;
+	bone->ease1= 1.0f;
+	bone->ease2= 1.0f;
+	bone->rad_head= 0.10f;
+	bone->rad_tail= 0.05f;
+	bone->segments= 1;
+	bone->layer= arm->layer;
+	
+	armature_sync_selection(arm->edbo);
+
+	WM_event_add_notifier(C, NC_OBJECT, ob);
+	
+	return OPERATOR_FINISHED;
+}
+
+void ARMATURE_OT_bone_add(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Add Bone";
+	ot->idname= "ARMATURE_OT_bone_add";
+	
+	/* api callbacks */
+	ot->exec = armature_bone_add_exec;
+	ot->poll = ED_operator_editarmature;
+	
+	/* flags */
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+	
+	RNA_def_string(ot->srna, "name", "Bone", 32, "Name", "Name of the newly created bone");
+	
+}
+
+
 /* ----------- */
 
 /* Subdivide Operators:





More information about the Bf-blender-cvs mailing list