From 44505b38df557a5711703613685a1dec9fc2c3d9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 4 Jun 2018 09:31:30 +0200 Subject: Cleanup: strip trailing space in editors --- .../blender/editors/armature/armature_relations.c | 236 ++++++++++----------- 1 file changed, 118 insertions(+), 118 deletions(-) (limited to 'source/blender/editors/armature/armature_relations.c') diff --git a/source/blender/editors/armature/armature_relations.c b/source/blender/editors/armature/armature_relations.c index 3c272d52d1c..95c8b1d5460 100644 --- a/source/blender/editors/armature/armature_relations.c +++ b/source/blender/editors/armature/armature_relations.c @@ -107,7 +107,7 @@ static void joined_armature_fix_links_constraints( bActionConstraint *data = con->data; if (data->act) { - BKE_action_fix_paths_rename(&tarArm->id, data->act, "pose.bones[", + BKE_action_fix_paths_rename(&tarArm->id, data->act, "pose.bones[", pchan->name, curbone->name, 0, 0, false); } } @@ -119,7 +119,7 @@ static void joined_armature_fix_links_constraints( typedef struct tJoinArmature_AdtFixData { Object *srcArm; Object *tarArm; - + GHash *names_map; } tJoinArmature_AdtFixData; @@ -132,34 +132,34 @@ static void joined_armature_fix_animdata_cb(ID *id, FCurve *fcu, void *user_data tJoinArmature_AdtFixData *afd = (tJoinArmature_AdtFixData *)user_data; ID *src_id = &afd->srcArm->id; ID *dst_id = &afd->tarArm->id; - + GHashIterator gh_iter; - + /* Fix paths - If this is the target object, it will have some "dirty" paths */ if ((id == src_id) && strstr(fcu->rna_path, "pose.bones[")) { GHASH_ITER(gh_iter, afd->names_map) { const char *old_name = BLI_ghashIterator_getKey(&gh_iter); const char *new_name = BLI_ghashIterator_getValue(&gh_iter); - + /* only remap if changed; this still means there will be some waste if there aren't many drivers/keys */ if (!STREQ(old_name, new_name) && strstr(fcu->rna_path, old_name)) { fcu->rna_path = BKE_animsys_fix_rna_path_rename(id, fcu->rna_path, "pose.bones", old_name, new_name, 0, 0, false); - - /* we don't want to apply a second remapping on this driver now, + + /* we don't want to apply a second remapping on this driver now, * so stop trying names, but keep fixing drivers */ break; } } } - - + + /* Driver targets */ if (fcu->driver) { ChannelDriver *driver = fcu->driver; DriverVar *dvar; - + /* Fix driver references to invalid ID's */ for (dvar = driver->variables.first; dvar; dvar = dvar->next) { /* only change the used targets, since the others will need fixing manually anyway */ @@ -168,7 +168,7 @@ static void joined_armature_fix_animdata_cb(ID *id, FCurve *fcu, void *user_data /* change the ID's used... */ if (dtar->id == src_id) { dtar->id = dst_id; - + /* also check on the subtarget... * XXX: We duplicate the logic from drivers_path_rename_fix() here, with our own * little twists so that we know that it isn't going to clobber the wrong data @@ -177,7 +177,7 @@ static void joined_armature_fix_animdata_cb(ID *id, FCurve *fcu, void *user_data GHASH_ITER(gh_iter, afd->names_map) { const char *old_name = BLI_ghashIterator_getKey(&gh_iter); const char *new_name = BLI_ghashIterator_getValue(&gh_iter); - + /* only remap if changed */ if (!STREQ(old_name, new_name)) { if ((dtar->rna_path) && strstr(dtar->rna_path, old_name)) { @@ -207,7 +207,7 @@ static void joined_armature_fix_links(Main *bmain, Object *tarArm, Object *srcAr Object *ob; bPose *pose; bPoseChannel *pchant; - + /* let's go through all objects in database */ for (ob = bmain->object.first; ob; ob = ob->id.next) { /* do some object-type specific things */ @@ -217,12 +217,12 @@ static void joined_armature_fix_links(Main *bmain, Object *tarArm, Object *srcAr joined_armature_fix_links_constraints(tarArm, srcArm, pchan, curbone, &pchant->constraints); } } - + /* fix object-level constraints */ if (ob != srcArm) { joined_armature_fix_links_constraints(tarArm, srcArm, pchan, curbone, &ob->constraints); } - + /* See if an object is parented to this armature */ if (ob->parent && (ob->parent == srcArm)) { /* Is object parented to a bone of this src armature? */ @@ -232,7 +232,7 @@ static void joined_armature_fix_links(Main *bmain, Object *tarArm, Object *srcAr BLI_strncpy(ob->parsubstr, curbone->name, sizeof(ob->parsubstr)); } } - + /* make tar armature be new parent */ ob->parent = tarArm; } @@ -251,13 +251,13 @@ int join_armature_exec(bContext *C, wmOperator *op) EditBone *curbone; float mat[4][4], oimat[4][4]; bool ok = false; - + /* Ensure we're not in editmode and that the active object is an armature*/ if (!ob || ob->type != OB_ARMATURE) return OPERATOR_CANCELLED; if (!arm || arm->edbo) return OPERATOR_CANCELLED; - + CTX_DATA_BEGIN(C, Base *, base, selected_editable_bases) { if (base->object == ob) { @@ -275,7 +275,7 @@ int join_armature_exec(bContext *C, wmOperator *op) /* Get editbones of active armature to add editbones to */ ED_armature_to_edit(arm); - + /* get pose of active object and move it out of posemode */ pose = ob->pose; ob->mode &= ~OB_MODE_POSE; @@ -285,36 +285,36 @@ int join_armature_exec(bContext *C, wmOperator *op) if ((base->object->type == OB_ARMATURE) && (base->object != ob)) { tJoinArmature_AdtFixData afd = {NULL}; bArmature *curarm = base->object->data; - + /* we assume that each armature datablock is only used in a single place */ BLI_assert(ob->data != base->object->data); - + /* init callback data for fixing up AnimData links later */ afd.srcArm = base->object; afd.tarArm = ob; afd.names_map = BLI_ghash_str_new("join_armature_adt_fix"); - + /* Make a list of editbones in current armature */ ED_armature_to_edit(base->object->data); - + /* Get Pose of current armature */ opose = base->object->pose; base->object->mode &= ~OB_MODE_POSE; //BASACT->flag &= ~OB_MODE_POSE; - + /* Find the difference matrix */ invert_m4_m4(oimat, ob->obmat); mul_m4_m4m4(mat, oimat, base->object->obmat); - + /* Copy bones and posechannels from the object to the edit armature */ for (pchan = opose->chanbase.first; pchan; pchan = pchann) { pchann = pchan->next; curbone = ED_armature_ebone_find_name(curarm->edbo, pchan->name); - + /* Get new name */ ED_armature_ebone_unique_name(arm->edbo, curbone->name, NULL); BLI_ghash_insert(afd.names_map, BLI_strdup(pchan->name), curbone->name); - + /* Transform the bone */ { float premat[4][4]; @@ -322,48 +322,48 @@ int join_armature_exec(bContext *C, wmOperator *op) float difmat[4][4]; float imat[4][4]; float temp[3][3]; - + /* Get the premat */ ED_armature_ebone_to_mat3(curbone, temp); - + unit_m4(premat); /* mul_m4_m3m4 only sets 3x3 part */ mul_m4_m3m4(premat, temp, mat); - + mul_m4_v3(mat, curbone->head); mul_m4_v3(mat, curbone->tail); - + /* Get the postmat */ ED_armature_ebone_to_mat3(curbone, temp); copy_m4_m3(postmat, temp); - + /* Find the roll */ invert_m4_m4(imat, premat); mul_m4_m4m4(difmat, imat, postmat); - + curbone->roll -= atan2f(difmat[2][0], difmat[2][2]); } - + /* Fix Constraints and Other Links to this Bone and Armature */ joined_armature_fix_links(bmain, ob, base->object, pchan, curbone); - + /* Rename pchan */ BLI_strncpy(pchan->name, curbone->name, sizeof(pchan->name)); - + /* Jump Ship! */ BLI_remlink(curarm->edbo, curbone); BLI_addtail(arm->edbo, curbone); - + BLI_remlink(&opose->chanbase, pchan); BLI_addtail(&pose->chanbase, pchan); BKE_pose_channels_hash_free(opose); BKE_pose_channels_hash_free(pose); } - + /* Fix all the drivers (and animation data) */ BKE_fcurves_main_cb(bmain, joined_armature_fix_animdata_cb, &afd); BLI_ghash_free(afd.names_map, MEM_freeN, NULL); - - /* Only copy over animdata now, after all the remapping has been done, + + /* Only copy over animdata now, after all the remapping has been done, * so that we don't have to worry about ambiguities re which armature * a bone came from! */ @@ -377,7 +377,7 @@ int join_armature_exec(bContext *C, wmOperator *op) BKE_animdata_merge_copy(&ob->id, &base->object->id, ADT_MERGECOPY_KEEP_DST, false); } } - + if (curarm->adt) { if (arm->adt == NULL) { /* no animdata, so just use a copy of the whole thing */ @@ -388,20 +388,20 @@ int join_armature_exec(bContext *C, wmOperator *op) BKE_animdata_merge_copy(&arm->id, &curarm->id, ADT_MERGECOPY_KEEP_DST, false); } } - + /* Free the old object data */ ED_base_object_free_and_unlink(bmain, scene, base); } } CTX_DATA_END; - + DAG_relations_tag_update(bmain); /* because we removed object(s) */ ED_armature_from_edit(arm); ED_armature_edit_free(arm); WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, scene); - + return OPERATOR_FINISHED; } @@ -414,11 +414,11 @@ static void separated_armature_fix_links(Object *origArm, Object *newArm) bPoseChannel *pchan; bConstraint *con; ListBase *opchans, *npchans; - + /* get reference to list of bones in original and new armatures */ opchans = &origArm->pose->chanbase; npchans = &newArm->pose->chanbase; - + /* let's go through all objects in database */ for (ob = G.main->object.first; ob; ob = ob->id.next) { /* do some object-type specific things */ @@ -428,11 +428,11 @@ static void separated_armature_fix_links(Object *origArm, Object *newArm) const bConstraintTypeInfo *cti = BKE_constraint_typeinfo_get(con); ListBase targets = {NULL, NULL}; bConstraintTarget *ct; - + /* constraint targets */ if (cti && cti->get_constraint_targets) { cti->get_constraint_targets(con, &targets); - + for (ct = targets.first; ct; ct = ct->next) { /* any targets which point to original armature are redirected to the new one only if: * - the target isn't origArm/newArm itself @@ -459,18 +459,18 @@ static void separated_armature_fix_links(Object *origArm, Object *newArm) } } } - + /* fix object-level constraints */ if (ob != origArm) { for (con = ob->constraints.first; con; con = con->next) { const bConstraintTypeInfo *cti = BKE_constraint_typeinfo_get(con); ListBase targets = {NULL, NULL}; bConstraintTarget *ct; - + /* constraint targets */ if (cti && cti->get_constraint_targets) { cti->get_constraint_targets(con, &targets); - + for (ct = targets.first; ct; ct = ct->next) { /* any targets which point to original armature are redirected to the new one only if: * - the target isn't origArm/newArm itself @@ -489,14 +489,14 @@ static void separated_armature_fix_links(Object *origArm, Object *newArm) } } } - + if (cti->flush_constraint_targets) { cti->flush_constraint_targets(con, &targets, 0); } } } } - + /* See if an object is parented to this armature */ if (ob->parent && (ob->parent == origArm)) { /* Is object parented to a bone of this src armature? */ @@ -509,31 +509,31 @@ static void separated_armature_fix_links(Object *origArm, Object *newArm) } } -/* Helper function for armature separating - remove certain bones from the given armature +/* Helper function for armature separating - remove certain bones from the given armature * sel: remove selected bones from the armature, otherwise the unselected bones are removed * (ob is not in editmode) */ -static void separate_armature_bones(Object *ob, short sel) +static void separate_armature_bones(Object *ob, short sel) { bArmature *arm = (bArmature *)ob->data; bPoseChannel *pchan, *pchann; EditBone *curbone; - + /* make local set of editbones to manipulate here */ ED_armature_to_edit(arm); - + /* go through pose-channels, checking if a bone should be removed */ for (pchan = ob->pose->chanbase.first; pchan; pchan = pchann) { pchann = pchan->next; curbone = ED_armature_ebone_find_name(arm->edbo, pchan->name); - + /* check if bone needs to be removed */ if ( (sel && (curbone->flag & BONE_SELECTED)) || (!sel && !(curbone->flag & BONE_SELECTED)) ) { EditBone *ebo; bPoseChannel *pchn; - + /* clear the bone->parent var of any bone that had this as its parent */ for (ebo = arm->edbo->first; ebo; ebo = ebo->next) { if (ebo->parent == curbone) { @@ -542,23 +542,23 @@ static void separate_armature_bones(Object *ob, short sel) ebo->flag &= ~BONE_CONNECTED; } } - + /* clear the pchan->parent var of any pchan that had this as its parent */ for (pchn = ob->pose->chanbase.first; pchn; pchn = pchn->next) { if (pchn->parent == pchan) pchn->parent = NULL; } - + /* free any of the extra-data this pchan might have */ BKE_pose_channel_free(pchan); BKE_pose_channels_hash_free(ob->pose); - + /* get rid of unneeded bone */ bone_free(arm, curbone); BLI_freelinkN(&ob->pose->chanbase, pchan); } } - + /* exit editmode (recalculates pchans too) */ ED_armature_from_edit(ob->data); ED_armature_edit_free(ob->data); @@ -572,14 +572,14 @@ static int separate_armature_exec(bContext *C, wmOperator *op) Object *obedit = CTX_data_edit_object(C); Object *oldob, *newob; Base *oldbase, *newbase; - + /* sanity checks */ if (obedit == NULL) return OPERATOR_CANCELLED; - + /* set wait cursor in case this takes a while */ WM_cursor_wait(1); - + /* we are going to do this as follows (unlike every other instance of separate): * 1. exit editmode +posemode for active armature/base. Take note of what this is. * 2. duplicate base - BASACT is the new one now @@ -596,41 +596,41 @@ static int separate_armature_exec(bContext *C, wmOperator *op) else base->flag &= ~SELECT; } CTX_DATA_END; - + /* 1) store starting settings and exit editmode */ oldob = obedit; oldbase = BASACT; oldob->mode &= ~OB_MODE_POSE; //oldbase->flag &= ~OB_POSEMODE; - + ED_armature_from_edit(obedit->data); ED_armature_edit_free(obedit->data); - + /* 2) duplicate base */ newbase = ED_object_add_duplicate(bmain, scene, oldbase, USER_DUP_ARM); /* only duplicate linked armature */ DAG_relations_tag_update(bmain); newob = newbase->object; newbase->flag &= ~SELECT; - - + + /* 3) remove bones that shouldn't still be around on both armatures */ separate_armature_bones(oldob, 1); separate_armature_bones(newob, 0); - - + + /* 4) fix links before depsgraph flushes */ // err... or after? separated_armature_fix_links(oldob, newob); - + DAG_id_tag_update(&oldob->id, OB_RECALC_DATA); /* this is the original one */ DAG_id_tag_update(&newob->id, OB_RECALC_DATA); /* this is the separated one */ - - + + /* 5) restore original conditions */ obedit = oldob; - + ED_armature_to_edit(obedit->data); - + /* parents tips remain selected when connected children are removed. */ ED_armature_edit_deselect_all(obedit); @@ -638,10 +638,10 @@ static int separate_armature_exec(bContext *C, wmOperator *op) /* note, notifier might evolve */ WM_event_add_notifier(C, NC_OBJECT | ND_POSE, obedit); - + /* recalc/redraw + cleanup */ WM_cursor_wait(0); - + return OPERATOR_FINISHED; } @@ -651,12 +651,12 @@ void ARMATURE_OT_separate(wmOperatorType *ot) ot->name = "Separate Bones"; ot->idname = "ARMATURE_OT_separate"; ot->description = "Isolate selected bones into a separate armature"; - + /* callbacks */ ot->invoke = WM_operator_confirm; ot->exec = separate_armature_exec; ot->poll = ED_operator_editarmature; - + /* flags */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; } @@ -680,13 +680,13 @@ static void bone_connect_to_new_parent(ListBase *edbo, EditBone *selbone, EditBo { EditBone *ebone; float offset[3]; - + if ((selbone->parent) && (selbone->flag & BONE_CONNECTED)) selbone->parent->flag &= ~(BONE_TIPSEL); - + /* make actbone the parent of selbone */ selbone->parent = actbone; - + /* in actbone tree we cannot have a loop */ for (ebone = actbone->parent; ebone; ebone = ebone->parent) { if (ebone->parent == selbone) { @@ -694,21 +694,21 @@ static void bone_connect_to_new_parent(ListBase *edbo, EditBone *selbone, EditBo ebone->flag &= ~BONE_CONNECTED; } } - + if (mode == ARM_PAR_CONNECT) { /* Connected: Child bones will be moved to the parent tip */ selbone->flag |= BONE_CONNECTED; sub_v3_v3v3(offset, actbone->tail, selbone->head); - + copy_v3_v3(selbone->head, actbone->tail); selbone->rad_head = actbone->rad_tail; - + add_v3_v3(selbone->tail, offset); - + /* offset for all its children */ for (ebone = edbo->first; ebone; ebone = ebone->next) { EditBone *par; - + for (par = ebone->parent; par; par = par->parent) { if (par == selbone) { add_v3_v3(ebone->head, offset); @@ -731,14 +731,14 @@ static const EnumPropertyItem prop_editarm_make_parent_types[] = { {0, NULL, 0, NULL, NULL} }; -static int armature_parent_set_exec(bContext *C, wmOperator *op) +static int armature_parent_set_exec(bContext *C, wmOperator *op) { Object *ob = CTX_data_edit_object(C); bArmature *arm = (bArmature *)ob->data; EditBone *actbone = CTX_data_active_bone(C); EditBone *actmirb = NULL; short val = RNA_enum_get(op->ptr, "type"); - + /* there must be an active bone */ if (actbone == NULL) { BKE_report(op->reports, RPT_ERROR, "Operation requires an active bone"); @@ -746,27 +746,27 @@ static int armature_parent_set_exec(bContext *C, wmOperator *op) } else if (arm->flag & ARM_MIRROR_EDIT) { /* For X-Axis Mirror Editing option, we may need a mirror copy of actbone - * - if there's a mirrored copy of selbone, try to find a mirrored copy of actbone + * - if there's a mirrored copy of selbone, try to find a mirrored copy of actbone * (i.e. selbone="child.L" and actbone="parent.L", find "child.R" and "parent.R"). * This is useful for arm-chains, for example parenting lower arm to upper arm * - if there's no mirrored copy of actbone (i.e. actbone = "parent.C" or "parent") * then just use actbone. Useful when doing upper arm to spine. */ actmirb = ED_armature_ebone_get_mirrored(arm->edbo, actbone); - if (actmirb == NULL) + if (actmirb == NULL) actmirb = actbone; } - - /* if there is only 1 selected bone, we assume that that is the active bone, + + /* if there is only 1 selected bone, we assume that that is the active bone, * since a user will need to have clicked on a bone (thus selecting it) to make it active */ if (CTX_DATA_COUNT(C, selected_editable_bones) <= 1) { /* When only the active bone is selected, and it has a parent, - * connect it to the parent, as that is the only possible outcome. + * connect it to the parent, as that is the only possible outcome. */ if (actbone->parent) { bone_connect_to_existing_parent(actbone); - + if ((arm->flag & ARM_MIRROR_EDIT) && (actmirb->parent)) bone_connect_to_existing_parent(actmirb); } @@ -775,16 +775,16 @@ static int armature_parent_set_exec(bContext *C, wmOperator *op) /* Parent 'selected' bones to the active one * - the context iterator contains both selected bones and their mirrored copies, * so we assume that unselected bones are mirrored copies of some selected bone - * - since the active one (and/or its mirror) will also be selected, we also need + * - since the active one (and/or its mirror) will also be selected, we also need * to check that we are not trying to operate on them, since such an operation * would cause errors */ - + /* parent selected bones to the active one */ CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones) { if (ELEM(ebone, actbone, actmirb) == 0) { - if (ebone->flag & BONE_SELECTED) + if (ebone->flag & BONE_SELECTED) bone_connect_to_new_parent(arm->edbo, ebone, actbone, val); else bone_connect_to_new_parent(arm->edbo, ebone, actmirb, val); @@ -792,11 +792,11 @@ static int armature_parent_set_exec(bContext *C, wmOperator *op) } CTX_DATA_END; } - + /* note, notifier might evolve */ WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, ob); - + return OPERATOR_FINISHED; } @@ -806,7 +806,7 @@ static int armature_parent_set_invoke(bContext *C, wmOperator *UNUSED(op), const uiPopupMenu *pup = UI_popup_menu_begin(C, CTX_IFACE_(BLT_I18NCONTEXT_OPERATOR_DEFAULT, "Make Parent"), ICON_NONE); uiLayout *layout = UI_popup_menu_layout(pup); int allchildbones = 0; - + CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones) { if (ebone != actbone) { @@ -816,13 +816,13 @@ static int armature_parent_set_invoke(bContext *C, wmOperator *UNUSED(op), const CTX_DATA_END; uiItemEnumO(layout, "ARMATURE_OT_parent_set", NULL, 0, "type", ARM_PAR_CONNECT); - + /* ob becomes parent, make the associated menus */ if (allchildbones) uiItemEnumO(layout, "ARMATURE_OT_parent_set", NULL, 0, "type", ARM_PAR_OFFSET); - + UI_popup_menu_end(C, pup); - + return OPERATOR_INTERFACE; } @@ -832,15 +832,15 @@ void ARMATURE_OT_parent_set(wmOperatorType *ot) ot->name = "Make Parent"; ot->idname = "ARMATURE_OT_parent_set"; ot->description = "Set the active bone as the parent of the selected bones"; - + /* api callbacks */ ot->invoke = armature_parent_set_invoke; ot->exec = armature_parent_set_exec; ot->poll = ED_operator_editarmature; - + /* flags */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; - + RNA_def_enum(ot->srna, "type", prop_editarm_make_parent_types, 0, "ParentType", "Type of parenting"); } @@ -858,28 +858,28 @@ static void editbone_clear_parent(EditBone *ebone, int mode) /* for nice selection */ ebone->parent->flag &= ~(BONE_TIPSEL); } - + if (mode == 1) ebone->parent = NULL; ebone->flag &= ~BONE_CONNECTED; } -static int armature_parent_clear_exec(bContext *C, wmOperator *op) +static int armature_parent_clear_exec(bContext *C, wmOperator *op) { Object *ob = CTX_data_edit_object(C); bArmature *arm = (bArmature *)ob->data; int val = RNA_enum_get(op->ptr, "type"); - + CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones) { editbone_clear_parent(ebone, val); } CTX_DATA_END; - + ED_armature_edit_sync_selection(arm->edbo); /* note, notifier might evolve */ WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, ob); - + return OPERATOR_FINISHED; } @@ -889,15 +889,15 @@ void ARMATURE_OT_parent_clear(wmOperatorType *ot) ot->name = "Clear Parent"; ot->idname = "ARMATURE_OT_parent_clear"; ot->description = "Remove the parent-child relationship between selected bones and their parents"; - + /* api callbacks */ ot->invoke = WM_menu_invoke; ot->exec = armature_parent_clear_exec; ot->poll = ED_operator_editarmature; - + /* flags */ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; - + ot->prop = RNA_def_enum(ot->srna, "type", prop_editarm_clear_parent_types, 0, "ClearType", "What way to clear parenting"); } -- cgit v1.2.3