Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/armature/armature_select.c
| Context not available. | |||||
| SIMEDBONE_DIRECTION, | SIMEDBONE_DIRECTION, | ||||
| SIMEDBONE_PREFIX, | SIMEDBONE_PREFIX, | ||||
| SIMEDBONE_SUFFIX, | SIMEDBONE_SUFFIX, | ||||
| SIMEDBONE_LAYER | SIMEDBONE_LAYER, | ||||
| SIMEDBONE_CHILDREN, | |||||
| SIMEDBONE_CHILDREN_IMMEDIATE, | |||||
| SIMEDBONE_SIBLINGS | |||||
| }; | }; | ||||
| static EnumPropertyItem prop_similar_types[] = { | static EnumPropertyItem prop_similar_types[] = { | ||||
| Context not available. | |||||
| {SIMEDBONE_PREFIX, "PREFIX", 0, "Prefix", ""}, | {SIMEDBONE_PREFIX, "PREFIX", 0, "Prefix", ""}, | ||||
| {SIMEDBONE_SUFFIX, "SUFFIX", 0, "Suffix", ""}, | {SIMEDBONE_SUFFIX, "SUFFIX", 0, "Suffix", ""}, | ||||
| {SIMEDBONE_LAYER, "LAYER", 0, "Layer", ""}, | {SIMEDBONE_LAYER, "LAYER", 0, "Layer", ""}, | ||||
| {SIMEDBONE_CHILDREN, "CHILDREN", 0, "Children", ""}, | |||||
| {SIMEDBONE_CHILDREN_IMMEDIATE, "CHILDREN_IMMEDIATE", 0, "Immediate children", ""}, | |||||
| {SIMEDBONE_SIBLINGS, "SIBLINGS", 0, "Siblings", ""}, | |||||
| {0, NULL, 0, NULL, NULL} | {0, NULL, 0, NULL, NULL} | ||||
| }; | }; | ||||
| Context not available. | |||||
| } | } | ||||
| } | } | ||||
| static void is_ancestor(EditBone * bone, EditBone * ancestor) { | |||||
brecht: This function should be `static`. | |||||
| if(bone->temp.ebone == ancestor || bone->temp.ebone == NULL) | |||||
Not Done Inline ActionsStyle: put return; on a new line, and without the space between. brecht: Style: put `return;` on a new line, and without the space between. | |||||
| return; | |||||
| if(bone->temp.ebone->temp.ebone != NULL && bone->temp.ebone->temp.ebone != ancestor) | |||||
| is_ancestor(bone->temp.ebone, ancestor); | |||||
| bone->temp.ebone = bone->temp.ebone->temp.ebone; | |||||
| } | |||||
| static void select_similar_children(bArmature *arm, EditBone *ebone_act) | |||||
| { | |||||
| EditBone *ebone_iter; | |||||
| for (ebone_iter = arm->edbo->first; ebone_iter; ebone_iter = ebone_iter->next) { | |||||
| ebone_iter->temp.ebone = ebone_iter->parent; | |||||
| } | |||||
| for (ebone_iter = arm->edbo->first; ebone_iter; ebone_iter = ebone_iter->next){ | |||||
| is_ancestor(ebone_iter, ebone_act); | |||||
Not Done Inline ActionsStyle, use space: EBONE_SELECTABLE(arm, ebone_iter) brecht: Style, use space: `EBONE_SELECTABLE(arm, ebone_iter)` | |||||
| if(ebone_iter->temp.ebone == ebone_act && EBONE_SELECTABLE(arm, ebone_iter)) | |||||
| ED_armature_ebone_select_set(ebone_iter, true); | |||||
| } | |||||
| } | |||||
| static void select_similar_children_immediate(bArmature *arm, EditBone *ebone_act) | |||||
| { | |||||
| EditBone *ebone_iter; | |||||
| for (ebone_iter = arm->edbo->first; ebone_iter; ebone_iter = ebone_iter->next) { | |||||
Not Done Inline ActionsSame style note as above. brecht: Same style note as above. | |||||
| if(ebone_iter->parent == ebone_act && EBONE_SELECTABLE(arm, ebone_iter)) { | |||||
| ED_armature_ebone_select_set(ebone_iter, true); | |||||
| } | |||||
| } | |||||
| } | |||||
| static void select_similar_siblings(bArmature *arm, EditBone *ebone_act) | |||||
| { | |||||
| EditBone *ebone_iter; | |||||
Not Done Inline ActionsSame style note as above. brecht: Same style note as above. | |||||
| if(ebone_act->parent == NULL) | |||||
| return; | |||||
Not Done Inline ActionsSame style note as above. brecht: Same style note as above. | |||||
| for (ebone_iter = arm->edbo->first; ebone_iter; ebone_iter = ebone_iter->next) { | |||||
| if(ebone_iter->parent == ebone_act->parent && EBONE_SELECTABLE(arm, ebone_iter)) { | |||||
| ED_armature_ebone_select_set(ebone_iter, true); | |||||
| } | |||||
| } | |||||
| } | |||||
| static int armature_select_similar_exec(bContext *C, wmOperator *op) | static int armature_select_similar_exec(bContext *C, wmOperator *op) | ||||
| { | { | ||||
| Object *obedit = CTX_data_edit_object(C); | Object *obedit = CTX_data_edit_object(C); | ||||
| Context not available. | |||||
| case SIMEDBONE_LAYER: | case SIMEDBONE_LAYER: | ||||
| select_similar_layer(arm, ebone_act); | select_similar_layer(arm, ebone_act); | ||||
| break; | break; | ||||
| case SIMEDBONE_CHILDREN: | |||||
| select_similar_children(arm, ebone_act); | |||||
| break; | |||||
| case SIMEDBONE_CHILDREN_IMMEDIATE: | |||||
| select_similar_children_immediate(arm, ebone_act); | |||||
| break; | |||||
| case SIMEDBONE_SIBLINGS: | |||||
| select_similar_siblings(arm, ebone_act); | |||||
| break; | |||||
| } | } | ||||
| WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, obedit); | WM_event_add_notifier(C, NC_OBJECT | ND_BONE_SELECT, obedit); | ||||
| Context not available. | |||||
This function should be static.