Blender
V3.3
|
#include <BKE_armature.h>
Public Attributes | |
struct EditBone * | next |
struct EditBone * | prev |
struct IDProperty * | prop |
struct EditBone * | parent |
char | name [64] |
float | roll |
float | head [3] |
float | tail [3] |
int | flag |
int | layer |
char | inherit_scale_mode |
float | dist |
float | weight |
float | xwidth |
float | length |
float | zwidth |
float | rad_head |
float | rad_tail |
short | segments |
float | roll1 |
float | roll2 |
float | curve_in_x |
float | curve_in_z |
float | curve_out_x |
float | curve_out_z |
float | ease1 |
float | ease2 |
float | scale_in [3] |
float | scale_out [3] |
float | oldlength |
char | bbone_prev_type |
char | bbone_next_type |
int | bbone_flag |
short | bbone_prev_flag |
short | bbone_next_flag |
struct EditBone * | bbone_prev |
struct EditBone * | bbone_next |
float | disp_mat [4][4] |
float | disp_tail_mat [4][4] |
float | disp_bbone_mat [32][4][4] |
struct EditBone * | bbone_child |
union { | |
struct EditBone * ebone | |
struct Bone * bone | |
void * p | |
int i | |
} | temp |
Definition at line 32 of file BKE_armature.h.
struct EditBone* EditBone::bbone_child |
connected child temporary during drawing
Definition at line 101 of file BKE_armature.h.
Referenced by ebone_spline_preview(), and edbo_compute_bbone_child().
int EditBone::bbone_flag |
B-Bone flags.
Definition at line 85 of file BKE_armature.h.
Referenced by armature_symmetrize_exec(), ebone_spline_preview(), ED_armature_from_edit(), and make_boneList_recursive().
struct EditBone* EditBone::bbone_next |
Definition at line 90 of file BKE_armature.h.
Referenced by armature_duplicate_selected_exec(), armature_symmetrize_exec(), ebone_spline_preview(), ED_armature_ebone_listbase_copy(), and ED_armature_from_edit().
short EditBone::bbone_next_flag |
Definition at line 87 of file BKE_armature.h.
Referenced by armature_symmetrize_exec(), ED_armature_from_edit(), and make_boneList_recursive().
char EditBone::bbone_next_type |
Definition at line 83 of file BKE_armature.h.
Referenced by armature_symmetrize_exec(), ebone_spline_preview(), ED_armature_from_edit(), and make_boneList_recursive().
struct EditBone* EditBone::bbone_prev |
Next/prev bones to use as handle references when calculating bbones (optional)
Definition at line 89 of file BKE_armature.h.
Referenced by armature_duplicate_selected_exec(), armature_symmetrize_exec(), ebone_spline_preview(), ED_armature_ebone_listbase_copy(), and ED_armature_from_edit().
short EditBone::bbone_prev_flag |
Definition at line 86 of file BKE_armature.h.
Referenced by armature_symmetrize_exec(), ED_armature_from_edit(), and make_boneList_recursive().
char EditBone::bbone_prev_type |
Type of next/prev bone handles
Definition at line 82 of file BKE_armature.h.
Referenced by armature_symmetrize_exec(), ebone_spline_preview(), ED_armature_from_edit(), and make_boneList_recursive().
struct Bone* EditBone::bone |
Definition at line 106 of file BKE_armature.h.
Referenced by armature_finalize_restpose(), ED_armature_from_edit(), get_nearest_editbonepoint(), make_boneList_recursive(), pose_grab_with_ik(), and pose_grab_with_ik_children().
float EditBone::curve_in_x |
Definition at line 73 of file BKE_armature.h.
Referenced by applyarmature_transfer_properties(), armature_extrude_exec(), ebone_spline_preview(), ED_armature_ebone_add(), ED_armature_ebone_transform_mirror_update(), ED_armature_from_edit(), and make_boneList_recursive().
float EditBone::curve_in_z |
Definition at line 73 of file BKE_armature.h.
Referenced by applyarmature_transfer_properties(), armature_extrude_exec(), ebone_spline_preview(), ED_armature_ebone_add(), ED_armature_ebone_transform_mirror_update(), ED_armature_from_edit(), and make_boneList_recursive().
float EditBone::curve_out_x |
Definition at line 74 of file BKE_armature.h.
Referenced by applyarmature_transfer_properties(), armature_extrude_exec(), ebone_spline_preview(), ED_armature_ebone_add(), ED_armature_ebone_transform_mirror_update(), ED_armature_from_edit(), and make_boneList_recursive().
float EditBone::curve_out_z |
Definition at line 74 of file BKE_armature.h.
Referenced by applyarmature_transfer_properties(), armature_extrude_exec(), ebone_spline_preview(), ED_armature_ebone_add(), ED_armature_ebone_transform_mirror_update(), ED_armature_from_edit(), and make_boneList_recursive().
float EditBone::disp_bbone_mat[32][4][4] |
in Armature space, rest pos matrix (32 == MAX_BBONE_SUBDIV)
Definition at line 98 of file BKE_armature.h.
Referenced by draw_bone_box(), draw_bone_update_disp_matrix_bbone(), and draw_bone_wire().
float EditBone::disp_mat[4][4] |
in Armature space, rest pos matrix
Definition at line 94 of file BKE_armature.h.
Referenced by draw_bone_update_disp_matrix_default(), and draw_points().
float EditBone::disp_tail_mat[4][4] |
in Armature space, rest pos matrix
Definition at line 96 of file BKE_armature.h.
Referenced by draw_bone_update_disp_matrix_default().
float EditBone::dist |
Definition at line 65 of file BKE_armature.h.
Referenced by armature_click_extrude_exec(), armature_extrude_exec(), createTransArmatureVerts(), draw_bone_envelope(), ED_armature_ebone_add(), ED_armature_ebone_transform_mirror_update(), ED_armature_edit_transform(), ED_armature_from_edit(), make_boneList_recursive(), recalcData_edit_armature(), and restoreBones().
float EditBone::ease1 |
Definition at line 75 of file BKE_armature.h.
Referenced by applyarmature_transfer_properties(), armature_extrude_exec(), ebone_spline_preview(), ED_armature_ebone_add(), ED_armature_ebone_transform_mirror_update(), ED_armature_from_edit(), and make_boneList_recursive().
float EditBone::ease2 |
Definition at line 75 of file BKE_armature.h.
Referenced by applyarmature_transfer_properties(), armature_extrude_exec(), ebone_spline_preview(), ED_armature_ebone_add(), ED_armature_ebone_transform_mirror_update(), ED_armature_from_edit(), and make_boneList_recursive().
struct EditBone* EditBone::ebone |
Definition at line 105 of file BKE_armature.h.
Referenced by armature_dissolve_selected_exec(), armature_duplicate_selected_exec(), armature_symmetrize_exec(), duplicateEditBoneObjects(), ED_armature_ebone_listbase_copy(), get_symmetrized_bone(), is_ancestor(), postEditBoneDuplicate(), undoarm_from_editarm(), undoarm_to_editarm(), and updateDuplicateSubtarget().
int EditBone::flag |
All joints are considered to have zero rotation with respect to their parents. Therefore any rotations specified during the animation are automatically relative to the bones' rest positions.
Definition at line 60 of file BKE_armature.h.
Referenced by armature_autoside_names_exec(), armature_circle_doSelectJoint(), armature_clear_swap_done_flags(), armature_click_extrude_exec(), armature_delete_ebone_cb(), armature_delete_selected_exec(), armature_dissolve_ebone_cb(), armature_dissolve_selected_exec(), armature_duplicate_selected_exec(), armature_edit_select_op_apply(), armature_extrude_exec(), armature_fill_bones_exec(), armature_flip_names_exec(), armature_parent_set_exec(), armature_select_hierarchy_exec(), armature_select_less(), armature_select_linked_pick_invoke(), armature_select_mirrored_ex(), armature_select_more(), armature_subdivide_exec(), armature_switch_direction_exec(), armature_symmetrize_exec(), armature_tag_select_mirrored(), armature_tag_unselect(), autokeyframe_pose(), bone_connect_to_existing_parent(), bone_connect_to_new_parent(), bone_mouse_select_menu(), createTransArmatureVerts(), do_circle_select_armature__doSelectBone(), do_circle_select_armature__doSelectBone_clip_content(), do_outliner_ebone_select_recursive(), draw_armature_edit(), draw_bone_line(), draw_bone_name(), draw_points(), ebone_fn(), ebone_spline_preview(), ED_armature_ebone_add(), ED_armature_ebone_remove_ex(), ED_armature_ebone_select_set(), ED_armature_ebone_selectflag_disable(), ED_armature_ebone_selectflag_enable(), ED_armature_ebone_selectflag_get(), ED_armature_ebone_selectflag_set(), ED_armature_ebone_transform_mirror_update(), ED_armature_edit_select_pick_bone(), ED_armature_edit_sync_selection(), ED_armature_edit_validate_active(), ED_armature_from_edit(), ed_armature_pick_bone_from_selectbuffer_impl(), ED_object_calc_active_center_for_editmode(), ED_object_jump_to_bone(), ED_transverts_create_from_obedit(), ED_transverts_update_obedit(), edbo_compute_bbone_child(), editbone_clear_parent(), fix_connected_bone(), fix_editbone_connected_children(), get_nearest_editbonepoint(), getTransformOrientation_ex(), make_boneList_recursive(), outliner_select_sync_from_edit_bone(), protectflag_to_drawflags_ebone(), recalcData_edit_armature(), restoreBones(), restrictbutton_ebone_select_fn(), restrictbutton_ebone_visibility_fn(), skin_armature_bone_create(), tree_element_ebone_state_get(), and v3d_editarmature_buts().
float EditBone::head[3] |
Orientation and length is implicit during editing
Definition at line 53 of file BKE_armature.h.
Referenced by add_points_bone(), applyarmature_adjust_edit_position(), applyarmature_set_edit_position(), armature_autoside_names_exec(), armature_bone_primitive_add_exec(), armature_calc_roll_exec(), armature_click_extrude_exec(), armature_extrude_exec(), armature_foreachScreenBone(), armature_subdivide_exec(), armature_switch_direction_exec(), armature_symmetrize_exec(), bone_align_to_bone(), bone_connect_to_existing_parent(), bone_connect_to_new_parent(), bone_direction_worldspace_get(), bone_length_squared_worldspace_get(), createTransArmatureVerts(), draw_bone_name(), draw_bone_relations(), draw_bone_update_disp_matrix_bbone(), draw_bone_update_disp_matrix_default(), ebone_spline_preview(), ED_armature_ebone_add_primitive(), ED_armature_ebone_from_mat3(), ED_armature_ebone_from_mat4(), ED_armature_ebone_roll_to_vector(), ED_armature_ebone_to_mat3(), ED_armature_ebone_to_mat4(), ED_armature_ebone_transform_mirror_update(), ED_armature_edit_transform(), ED_armature_from_edit(), ED_armature_origin_set(), ED_object_calc_active_center_for_editmode(), ED_transverts_create_from_obedit(), ED_transverts_update_obedit(), fill_add_joint(), fix_connected_bone(), make_boneList_recursive(), modifier_skin_armature_create(), recalcData_edit_armature(), restoreBones(), and skin_armature_bone_create().
int EditBone::i |
Definition at line 108 of file BKE_armature.h.
Referenced by armature_edit_select_op_apply(), armature_select_linked_impl(), do_armature_box_select(), do_circle_select_armature__doSelectBone(), do_circle_select_armature__doSelectBone_clip_content(), do_lasso_select_armature__doSelectBone(), and do_lasso_select_armature__doSelectBone_clip_content().
char EditBone::inherit_scale_mode |
Definition at line 62 of file BKE_armature.h.
Referenced by armature_symmetrize_exec(), ED_armature_from_edit(), and make_boneList_recursive().
int EditBone::layer |
Definition at line 61 of file BKE_armature.h.
Referenced by armature_delete_ebone_cb(), armature_delete_selected_exec(), armature_dissolve_selected_exec(), armature_extrude_exec(), armature_select_mirrored_ex(), armature_tag_select_mirrored(), draw_armature_edit(), ED_armature_ebone_add(), ED_armature_from_edit(), ED_object_jump_to_bone(), ED_transverts_create_from_obedit(), getTransformOrientation_ex(), make_boneList_recursive(), select_similar_layer(), ui_item_array(), and v3d_editarmature_buts().
float EditBone::length |
Definition at line 67 of file BKE_armature.h.
Referenced by armature_click_extrude_exec(), createTransArmatureVerts(), draw_bone_update_disp_matrix_bbone(), draw_bone_update_disp_matrix_default(), ebone_spline_preview(), make_boneList_recursive(), and recalcData_edit_armature().
char EditBone::name[64] |
(64 == MAXBONENAME)
Definition at line 43 of file BKE_armature.h.
Referenced by armature_autoside_names_exec(), armature_click_extrude_exec(), armature_duplicate_selected_exec(), armature_extrude_exec(), armature_flip_names_exec(), armature_subdivide_exec(), armature_symmetrize_exec(), bc_get_edit_bone(), bone_mouse_select_menu(), BoneExtended::BoneExtended(), copy_pchan(), draw_bone_name(), draw_selected_name(), duplicateEditBoneObjects(), ED_armature_bone_rename(), ED_armature_ebone_add(), ED_armature_ebone_get_mirrored(), ED_armature_ebone_unique_name(), ED_armature_from_edit(), get_joint_sid(), get_named_editbone(), joined_armature_fix_links(), joined_armature_fix_links_constraints(), make_boneList_recursive(), namebutton_fn(), postEditBoneDuplicate(), select_similar_data_pchan(), select_similar_prefix(), select_similar_suffix(), skin_armature_bone_create(), updateDuplicateActionConstraintSettings(), updateDuplicateConstraintSettings(), updateDuplicateCustomBoneShapes(), updateDuplicateSubtarget(), and view_lock_to_active_exec().
struct EditBone* EditBone::next |
Definition at line 33 of file BKE_armature.h.
Referenced by armature_calc_roll_exec(), armature_clear_swap_done_flags(), armature_click_extrude_exec(), armature_delete_selected_exec(), armature_dissolve_selected_exec(), armature_duplicate_selected_exec(), armature_finalize_restpose(), armature_foreachScreenBone(), armature_select_hierarchy_exec(), armature_select_mirror_exec(), armature_select_mirrored_ex(), armature_subdivide_exec(), armature_symmetrize_exec(), armature_tag_select_mirrored(), armature_tag_unselect(), bc_get_edit_bone(), bone_connect_to_new_parent(), chains_find_tips(), createTransArmatureVerts(), do_outliner_ebone_select_recursive(), draw_armature_edit(), ED_armature_ebone_listbase_copy(), ED_armature_ebone_listbase_free(), ED_armature_ebone_listbase_temp_clear(), ED_armature_ebone_remove_ex(), ED_armature_ebone_transform_mirror_update(), ED_armature_edit_free(), ED_armature_edit_sync_selection(), ED_armature_edit_transform(), ED_armature_from_edit(), ED_armature_origin_set(), ED_transverts_create_from_obedit(), ED_transverts_update_obedit(), edbo_compute_bbone_child(), fix_editbone_connected_children(), get_named_editbone(), getTransformOrientation_ex(), recalcData_edit_armature(), and restoreBones().
float EditBone::oldlength |
for envelope scaling
Definition at line 79 of file BKE_armature.h.
Referenced by createTransArmatureVerts(), and recalcData_edit_armature().
void* EditBone::p |
Definition at line 107 of file BKE_armature.h.
Referenced by armature_dissolve_selected_exec(), ED_armature_ebone_listbase_temp_clear(), and outliner_add_id_contents().
struct EditBone* EditBone::parent |
Editbones have a one-way link (i.e. children refer to parents. This is converted to a two-way link for normal bones when leaving editmode.
Definition at line 41 of file BKE_armature.h.
Referenced by armature_align_bones_exec(), armature_calc_roll_exec(), armature_click_extrude_exec(), armature_dissolve_selected_exec(), armature_duplicate_selected_exec(), armature_extrude_exec(), armature_fill_bones_exec(), armature_parent_set_exec(), armature_select_hierarchy_exec(), armature_select_less(), armature_select_linked_impl(), armature_select_more(), armature_shortest_path_select(), armature_subdivide_exec(), armature_switch_direction_exec(), armature_symmetrize_exec(), bone_connect_to_existing_parent(), bone_connect_to_new_parent(), chains_find_tips(), draw_armature_edit(), draw_bone_envelope(), draw_bone_line(), draw_bone_relations(), draw_points(), ebone_spline_preview(), ED_armature_ebone_find_shared_parent(), ED_armature_ebone_is_child_recursive(), ED_armature_ebone_listbase_copy(), ED_armature_ebone_remove_ex(), ED_armature_ebone_selectflag_get(), ED_armature_ebone_selectflag_set(), ED_armature_ebone_to_mat3(), ED_armature_ebone_transform_mirror_update(), ED_armature_edit_select_pick_bone(), ED_armature_edit_sync_selection(), ED_armature_from_edit(), ED_transverts_create_from_obedit(), ED_transverts_update_obedit(), edbo_compute_bbone_child(), editbone_clear_parent(), fill_add_joint(), fix_connected_bone(), fix_editbone_connected_children(), getTransformOrientation_ex(), make_boneList_recursive(), outliner_add_id_contents(), pose_grab_with_ik(), recalcData_edit_armature(), restoreBones(), select_similar_siblings(), skin_armature_bone_create(), and v3d_editarmature_buts().
struct EditBone * EditBone::prev |
Definition at line 33 of file BKE_armature.h.
struct IDProperty* EditBone::prop |
User-Defined Properties on this Bone
Definition at line 35 of file BKE_armature.h.
Referenced by armature_foreach_id_editbone(), armature_subdivide_exec(), bc_set_IDPropertyMatrix(), bone_free(), copy_pchan(), ED_armature_ebone_listbase_copy(), ED_armature_ebone_listbase_free(), ED_armature_edit_free(), ED_armature_from_edit(), and make_boneList_recursive().
float EditBone::rad_head |
Definition at line 68 of file BKE_armature.h.
Referenced by armature_click_extrude_exec(), armature_dissolve_selected_exec(), armature_extrude_exec(), armature_subdivide_exec(), bone_connect_to_existing_parent(), bone_connect_to_new_parent(), createTransArmatureVerts(), draw_bone_envelope(), draw_points(), ED_armature_ebone_add(), ED_armature_ebone_transform_mirror_update(), ED_armature_edit_transform(), ED_armature_from_edit(), make_boneList_recursive(), modifier_skin_armature_create(), recalcData_edit_armature(), restoreBones(), and skin_armature_bone_create().
float EditBone::rad_tail |
Definition at line 68 of file BKE_armature.h.
Referenced by armature_click_extrude_exec(), armature_dissolve_selected_exec(), armature_extrude_exec(), bone_connect_to_existing_parent(), bone_connect_to_new_parent(), createTransArmatureVerts(), draw_bone_envelope(), draw_points(), ED_armature_ebone_add(), ED_armature_ebone_transform_mirror_update(), ED_armature_edit_transform(), ED_armature_from_edit(), make_boneList_recursive(), modifier_skin_armature_create(), recalcData_edit_armature(), restoreBones(), and skin_armature_bone_create().
float EditBone::roll |
Roll along axis. We'll ultimately use the axis/angle method for determining the transformation matrix of the bone. The axis is tail-head while roll provides the angle. Refer to Graphics Gems 1 p. 466 (section IX.6) if it's not already in here somewhere.
Definition at line 50 of file BKE_armature.h.
Referenced by applyarmature_adjust_edit_position(), applyarmature_set_edit_position(), armature_calc_roll_exec(), armature_roll_clear_exec(), bone_align_to_bone(), createTransArmatureVerts(), ED_armature_ebone_from_mat3(), ED_armature_ebone_to_mat3(), ED_armature_ebone_transform_mirror_update(), ED_armature_edit_transform(), ED_armature_from_edit(), make_boneList_recursive(), recalcData_edit_armature(), and restoreBones().
float EditBone::roll1 |
Definition at line 72 of file BKE_armature.h.
Referenced by applyarmature_transfer_properties(), armature_extrude_exec(), ebone_spline_preview(), ED_armature_ebone_add(), ED_armature_ebone_transform_mirror_update(), ED_armature_from_edit(), and make_boneList_recursive().
float EditBone::roll2 |
Definition at line 72 of file BKE_armature.h.
Referenced by applyarmature_transfer_properties(), armature_extrude_exec(), ebone_spline_preview(), ED_armature_ebone_add(), ED_armature_ebone_transform_mirror_update(), ED_armature_from_edit(), and make_boneList_recursive().
float EditBone::scale_in[3] |
Definition at line 76 of file BKE_armature.h.
Referenced by applyarmature_transfer_properties(), armature_extrude_exec(), ebone_spline_preview(), ED_armature_ebone_add(), ED_armature_ebone_transform_mirror_update(), ED_armature_from_edit(), and make_boneList_recursive().
float EditBone::scale_out[3] |
Definition at line 76 of file BKE_armature.h.
Referenced by applyarmature_transfer_properties(), armature_extrude_exec(), ebone_spline_preview(), ED_armature_ebone_add(), ED_armature_ebone_transform_mirror_update(), ED_armature_from_edit(), and make_boneList_recursive().
short EditBone::segments |
Definition at line 71 of file BKE_armature.h.
Referenced by armature_extrude_exec(), draw_bone_box(), draw_bone_update_disp_matrix_bbone(), draw_bone_wire(), ebone_spline_preview(), ED_armature_ebone_add(), ED_armature_ebone_transform_mirror_update(), ED_armature_from_edit(), and make_boneList_recursive().
float EditBone::tail[3] |
Definition at line 54 of file BKE_armature.h.
Referenced by add_points_bone(), applyarmature_adjust_edit_position(), applyarmature_set_edit_position(), armature_autoside_names_exec(), armature_bone_primitive_add_exec(), armature_calc_roll_exec(), armature_click_extrude_exec(), armature_dissolve_selected_exec(), armature_extrude_exec(), armature_foreachScreenBone(), armature_subdivide_exec(), armature_switch_direction_exec(), armature_symmetrize_exec(), bone_align_to_bone(), bone_connect_to_existing_parent(), bone_connect_to_new_parent(), bone_direction_worldspace_get(), bone_length_squared_worldspace_get(), createTransArmatureVerts(), draw_bone_name(), draw_bone_relations(), draw_bone_update_disp_matrix_bbone(), draw_bone_update_disp_matrix_default(), ebone_spline_preview(), ED_armature_ebone_add_primitive(), ED_armature_ebone_from_mat3(), ED_armature_ebone_from_mat4(), ED_armature_ebone_roll_to_vector(), ED_armature_ebone_to_mat3(), ED_armature_ebone_transform_mirror_update(), ED_armature_edit_transform(), ED_armature_from_edit(), ED_armature_origin_set(), ED_transverts_create_from_obedit(), ED_transverts_update_obedit(), fill_add_joint(), fix_connected_bone(), make_boneList_recursive(), modifier_skin_armature_create(), recalcData_edit_armature(), restoreBones(), and skin_armature_bone_create().
union { ... } EditBone::temp |
Referenced by armature_dissolve_selected_exec(), armature_duplicate_selected_exec(), armature_edit_select_op_apply(), armature_finalize_restpose(), armature_select_linked_impl(), armature_symmetrize_exec(), do_armature_box_select(), do_circle_select_armature__doSelectBone(), do_circle_select_armature__doSelectBone_clip_content(), do_lasso_select_armature__doSelectBone(), do_lasso_select_armature__doSelectBone_clip_content(), duplicateEditBoneObjects(), ED_armature_ebone_listbase_copy(), ED_armature_ebone_listbase_temp_clear(), ED_armature_from_edit(), get_symmetrized_bone(), is_ancestor(), make_boneList_recursive(), outliner_add_id_contents(), postEditBoneDuplicate(), undoarm_from_editarm(), undoarm_to_editarm(), and updateDuplicateSubtarget().
float EditBone::weight |
Definition at line 65 of file BKE_armature.h.
Referenced by armature_extrude_exec(), ED_armature_ebone_add(), ED_armature_ebone_transform_mirror_update(), ED_armature_from_edit(), and make_boneList_recursive().
float EditBone::xwidth |
put them in order! transform uses this as scale
Definition at line 67 of file BKE_armature.h.
Referenced by armature_extrude_exec(), createTransArmatureVerts(), draw_bone_update_disp_matrix_bbone(), ED_armature_ebone_add(), ED_armature_ebone_transform_mirror_update(), ED_armature_edit_transform(), ED_armature_from_edit(), make_boneList_recursive(), and restoreBones().
float EditBone::zwidth |
Definition at line 67 of file BKE_armature.h.
Referenced by armature_extrude_exec(), createTransArmatureVerts(), draw_bone_update_disp_matrix_bbone(), ED_armature_ebone_add(), ED_armature_ebone_transform_mirror_update(), ED_armature_edit_transform(), ED_armature_from_edit(), make_boneList_recursive(), and restoreBones().