Blender
V3.3
|
#include <string.h>
#include "MEM_guardedalloc.h"
#include "DNA_armature_types.h"
#include "DNA_camera_types.h"
#include "DNA_constraint_types.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_object_types.h"
#include "BLI_blenlib.h"
#include "BLI_ghash.h"
#include "BLI_string_utils.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "BKE_action.h"
#include "BKE_animsys.h"
#include "BKE_armature.h"
#include "BKE_constraint.h"
#include "BKE_context.h"
#include "BKE_deform.h"
#include "BKE_gpencil_modifier.h"
#include "BKE_layer.h"
#include "BKE_main.h"
#include "BKE_modifier.h"
#include "DEG_depsgraph.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "WM_api.h"
#include "WM_types.h"
#include "ED_armature.h"
#include "ED_screen.h"
#include "armature_intern.h"
Go to the source code of this file.
Classes | |
struct | BoneFlipNameData |
Functions | |
Unique Bone Name Utility (Edit Mode) | |
static bool | editbone_unique_check (void *arg, const char *name) |
void | ED_armature_ebone_unique_name (ListBase *ebones, char *name, EditBone *bone) |
Unique Bone Name Utility (Object Mode) | |
static bool | bone_unique_check (void *arg, const char *name) |
static void | ed_armature_bone_unique_name (bArmature *arm, char *name) |
Bone Renaming (Object & Edit Mode API) | |
static void | constraint_bone_name_fix (Object *ob, ListBase *conlist, const char *oldname, const char *newname) |
void | ED_armature_bone_rename (Main *bmain, bArmature *arm, const char *oldnamep, const char *newnamep) |
Flip Bone Names (Edit Mode Operator) | |
static int | armature_flip_names_exec (bContext *C, wmOperator *op) |
void | ARMATURE_OT_flip_names (wmOperatorType *ot) |
Bone Auto Side Names (Edit Mode Operator) | |
static int | armature_autoside_names_exec (bContext *C, wmOperator *op) |
void | ARMATURE_OT_autoside_names (wmOperatorType *ot) |
Bone Flipping (Object & Edit Mode API) | |
typedef struct BoneFlipNameData | BoneFlipNameData |
void | ED_armature_bones_flip_names (Main *bmain, bArmature *arm, ListBase *bones_names, const bool do_strip_numbers) |
Operators and API's for renaming bones both in and out of Edit Mode.
This file contains functions/API's for renaming bones and/or working with them.
Definition in file armature_naming.c.
typedef struct BoneFlipNameData BoneFlipNameData |
|
static |
Definition at line 517 of file armature_naming.c.
References ARM_MIRROR_EDIT, BKE_view_layer_array_from_objects_in_edit_mode_unique_data, BLI_strncpy(), bone_autoside_name(), BONE_SELECTED, C, CTX_data_main(), CTX_data_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), EBONE_EDITABLE, ED_armature_bone_rename(), ED_armature_ebone_get_mirrored(), bArmature::edbo, ELEM, EditBone::flag, bArmature::flag, EditBone::head, Object::id, ID_RECALC_GEOMETRY, LISTBASE_FOREACH, MAXBONENAME, MEM_freeN, EditBone::name, NC_OBJECT, ND_POSE, NULL, OPERATOR_CANCELLED, OPERATOR_FINISHED, Object::pose, wmOperator::ptr, RNA_enum_get(), EditBone::tail, and WM_event_add_notifier().
Referenced by ARMATURE_OT_autoside_names().
|
static |
Definition at line 429 of file armature_naming.c.
References ARM_MIRROR_EDIT, BKE_view_layer_array_from_objects_in_edit_mode_unique_data, BLI_addtail(), BLI_freelistN(), BLI_genericNodeN(), BLI_listbase_is_empty(), BONE_SELECTED, C, CTX_data_edit_object(), CTX_data_main(), CTX_data_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), EBONE_VISIBLE, ED_armature_bones_flip_names(), ED_armature_ebone_get_mirrored(), bArmature::edbo, EditBone::flag, bArmature::flag, Object::id, ID_RECALC_GEOMETRY, LISTBASE_FOREACH, MEM_freeN, EditBone::name, NC_ANIMATION, NC_GEOM, ND_ANIMCHAN, ND_DATA, NULL, OPERATOR_FINISHED, Object::pose, wmOperator::ptr, RNA_boolean_get(), and WM_event_add_notifier().
Referenced by ARMATURE_OT_flip_names().
void ARMATURE_OT_autoside_names | ( | wmOperatorType * | ot | ) |
Definition at line 578 of file armature_naming.c.
References armature_autoside_names_exec(), wmOperatorType::description, ED_operator_editarmature(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, NULL, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, wmOperatorType::prop, RNA_def_enum(), wmOperatorType::srna, and WM_menu_invoke().
Referenced by ED_operatortypes_armature().
void ARMATURE_OT_flip_names | ( | wmOperatorType * | ot | ) |
Definition at line 489 of file armature_naming.c.
References armature_flip_names_exec(), wmOperatorType::description, ED_operator_editarmature(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), and wmOperatorType::srna.
Referenced by ED_operatortypes_armature().
Definition at line 86 of file armature_naming.c.
References BKE_armature_find_bone_name(), and NULL.
Referenced by ed_armature_bone_unique_name().
|
static |
Definition at line 104 of file armature_naming.c.
References bActionConstraint::act, BKE_action_fix_paths_rename(), BKE_constraint_targets_flush(), BKE_constraint_targets_get(), BLI_strncpy(), CONSTRAINT_TYPE_ACTION, bConstraint::data, ListBase::first, Object::id, MAXBONENAME, bConstraint::next, bConstraintTarget::next, NULL, STREQ, bConstraintTarget::subtarget, bConstraintTarget::tar, and bConstraint::type.
Referenced by ED_armature_bone_rename().
void ED_armature_bone_rename | ( | struct Main * | bmain, |
struct bArmature * | arm, | ||
const char * | oldnamep, | ||
const char * | newnamep | ||
) |
Bone Rename (called by UI for renaming a bone). Seems messy, but that's what you get with not using pointers but channel names :).
Definition at line 136 of file armature_naming.c.
References blender::compositor::area(), bScreen::areabase, BKE_animdata_fix_paths_rename_all(), BKE_armature_find_bone_name(), BKE_modifiers_uses_armature(), BKE_object_defgroup_find_name(), BKE_object_supports_vertex_groups(), BKE_pose_channel_find_name(), BKE_pose_channels_is_valid(), BLI_assert, BLI_ghash_haskey(), BLI_ghash_insert(), BLI_ghash_remove(), BLI_strncpy(), UVWarpModifierData::bone_dst, UVWarpModifierData::bone_src, bArmature::bonehash, bPose::chanbase, bPose::chanhash, constraint_bone_name_fix(), bPoseChannel::constraints, Object::constraints, Object::data, DEG_id_tag_update(), Camera::dof, ed_armature_bone_unique_name(), ED_armature_ebone_find_name(), ED_armature_ebone_unique_name(), bArmature::edbo, eGpencilModifierType_Armature, eGpencilModifierType_Hook, eModifierType_Hook, eModifierType_UVWarp, ListBase::first, CameraDOFSettings::focus_object, CameraDOFSettings::focus_subtarget, Object::greasepencil_modifiers, bArmature::id, Camera::id, Object::id, bScreen::id, ID_RECALC_COPY_ON_WRITE, ID_RECALC_GEOMETRY, if(), bGPdata::layers, LISTBASE_FOREACH, MAXBONENAME, Object::modifiers, EditBone::name, bPoseChannel::name, Bone::name, bDeformGroup::name, bPoseChannel::next, ID::next, ModifierData::next, SpaceLink::next, NULL, OB_CAMERA, View3D::ob_center, View3D::ob_center_bone, OB_GPENCIL, HookGpencilModifierData::object, ArmatureGpencilModifierData::object, HookModifierData::object, UVWarpModifierData::object_dst, UVWarpModifierData::object_src, Main::objects, PARBONE, Object::parent, Object::parsubstr, Object::partype, Object::pose, Main::screens, SPACE_VIEW3D, SpaceLink::spacetype, STREQ, STREQLEN, HookGpencilModifierData::subtarget, HookModifierData::subtarget, ModifierData::type, and Object::type.
Referenced by armature_autoside_names_exec(), ED_armature_bones_flip_names(), namebutton_fn(), and pose_autoside_names_exec().
Definition at line 91 of file armature_naming.c.
References BLI_uniquename_cb(), bone_unique_check(), DATA_, and NULL.
Referenced by ED_armature_bone_rename().
void ED_armature_bones_flip_names | ( | struct Main * | bmain, |
struct bArmature * | arm, | ||
struct ListBase * | bones_names, | ||
bool | do_strip_numbers | ||
) |
Renames (by flipping) all selected bones at once.
This way if we are flipping related bones (e.g., Bone.L, Bone.R) at the same time all the bones are safely renamed, without conflicting with each other.
arm | Armature the bones belong to |
bones_names | List of bone conflict elements (LinkData pointing to names). |
do_strip_numbers | if set, try to get rid of dot-numbers at end of bone names. |
Definition at line 385 of file armature_naming.c.
References BLI_addtail(), BLI_string_flip_side_name(), BLI_strncpy(), ED_armature_bone_rename(), ListBase::first, LISTBASE_FOREACH, MAXBONENAME, BoneFlipNameData::name, BoneFlipNameData::name_flip, BoneFlipNameData::next, NULL, and STREQ.
Referenced by armature_flip_names_exec(), and pose_flip_names_exec().
void ED_armature_ebone_unique_name | ( | struct ListBase * | ebones, |
char * | name, | ||
struct EditBone * | bone | ||
) |
Ensure the bone name is unique. If bone is already in list, pass it as argument to ignore it.
Definition at line 68 of file armature_naming.c.
References BLI_uniquename_cb(), data, DATA_, editbone_unique_check(), and EditBone::name.
Referenced by armature_extrude_exec(), armature_subdivide_exec(), duplicateEditBoneObjects(), ED_armature_bone_rename(), ED_armature_ebone_add(), and ED_armature_join_objects_exec().
Definition at line 58 of file armature_naming.c.
References data, and ED_armature_ebone_find_name().
Referenced by ED_armature_ebone_unique_name().