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: _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs