This should be kept consistent, at the moment subdivide, extrude don't do this.
On Mon, Dec 13, 2010 at 1:50 PM, Ton Roosendaal <[email protected]> wrote: > Revision: 33637 > > http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33637 > Author: ton > Date: 2010-12-13 14:50:20 +0100 (Mon, 13 Dec 2010) > > Log Message: > ----------- > Bugfix #25178 > > Armature edit mode: x-mirror: "switch bone direction" now flips the > mirror bone too. It leaves the mirrored bones selected too, so > you get good visual feedback things happened there. > > Modified Paths: > -------------- > trunk/blender/source/blender/editors/armature/editarmature.c > > Modified: trunk/blender/source/blender/editors/armature/editarmature.c > =================================================================== > --- trunk/blender/source/blender/editors/armature/editarmature.c > 2010-12-13 11:39:11 UTC (rev 33636) > +++ trunk/blender/source/blender/editors/armature/editarmature.c > 2010-12-13 13:50:20 UTC (rev 33637) > @@ -152,7 +152,48 @@ > bone_free(arm, exBone); > } > > +/* context: editmode armature */ > +EditBone *ED_armature_bone_get_mirrored(ListBase *edbo, EditBone *ebo) > +{ > + EditBone *eboflip= NULL; > + char name[32]; > + > + if (ebo == NULL) > + return NULL; > + > + flip_side_name(name, ebo->name, FALSE); > + > + for (eboflip= edbo->first; eboflip; eboflip=eboflip->next) { > + if (ebo != eboflip) { > + if (!strcmp (name, eboflip->name)) > + break; > + } > + } > + > + return eboflip; > +} > > +/* helper function for tools to work on mirrored parts. > + it leaves mirrored bones selected then too, which is a good indication of > what happened */ > +static void armature_select_mirrored(bArmature *arm) > +{ > + /* Select mirrored bones */ > + if (arm->flag & ARM_MIRROR_EDIT) { > + EditBone *curBone, *ebone_mirr; > + > + for (curBone=arm->edbo->first; curBone; > curBone=curBone->next) { > + if (arm->layer & curBone->layer) { > + if (curBone->flag & BONE_SELECTED) { > + ebone_mirr= > ED_armature_bone_get_mirrored(arm->edbo, curBone); > + if (ebone_mirr) > + ebone_mirr->flag |= > BONE_SELECTED; > + } > + } > + } > + } > + > +} > + > /* converts Bones to EditBone list, used for tools as well */ > EditBone *make_boneList(ListBase *edbo, ListBase *bones, EditBone *parent, > Bone *actBone) > { > @@ -1749,28 +1790,6 @@ > return NULL; > } > > -/* context: editmode armature */ > -EditBone *ED_armature_bone_get_mirrored(ListBase *edbo, EditBone *ebo) > -{ > - EditBone *eboflip= NULL; > - char name[32]; > - > - if (ebo == NULL) > - return NULL; > - > - flip_side_name(name, ebo->name, FALSE); > - > - for (eboflip= edbo->first; eboflip; eboflip=eboflip->next) { > - if (ebo != eboflip) { > - if (!strcmp (name, eboflip->name)) > - break; > - } > - } > - > - return eboflip; > -} > - > - > /* previously delete_armature */ > /* only editmode! */ > static int armature_delete_selected_exec(bContext *C, wmOperator *UNUSED(op)) > @@ -1785,18 +1804,7 @@ > if (CTX_DATA_COUNT(C, selected_bones) == 0) > return OPERATOR_CANCELLED; > > - /* Select mirrored bones */ > - if (arm->flag & ARM_MIRROR_EDIT) { > - for (curBone=arm->edbo->first; curBone; > curBone=curBone->next) { > - if (arm->layer & curBone->layer) { > - if (curBone->flag & BONE_SELECTED) { > - ebone_next= > ED_armature_bone_get_mirrored(arm->edbo, curBone); > - if (ebone_next) > - ebone_next->flag |= > BONE_SELECTED; > - } > - } > - } > - } > + armature_select_mirrored(arm); > > /* First erase any associated pose channel */ > if (obedit->pose) { > @@ -3722,6 +3730,9 @@ > chains_find_tips(arm->edbo, &chains); > if (chains.first == NULL) return OPERATOR_CANCELLED; > > + /* leaves mirrored bones selected, as indication of operation */ > + armature_select_mirrored(arm); > + > /* loop over chains, only considering selected and visible bones */ > for (chain= chains.first; chain; chain= chain->next) { > EditBone *ebo, *child=NULL, *parent=NULL; > > > _______________________________________________ > Bf-blender-cvs mailing list > [email protected] > http://lists.blender.org/mailman/listinfo/bf-blender-cvs > -- - Campbell _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
