Blender  V2.93
Classes
armature_naming.c File Reference
#include <string.h>
#include "MEM_guardedalloc.h"
#include "DNA_armature_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)
 

Detailed Description

This file contains functions/API's for renaming bones and/or working with them.

Definition in file armature_naming.c.

Typedef Documentation

◆ BoneFlipNameData

Function Documentation

◆ armature_autoside_names_exec()

static int armature_autoside_names_exec ( bContext C,
wmOperator op 
)
static

◆ armature_flip_names_exec()

static int armature_flip_names_exec ( bContext C,
wmOperator op 
)
static

◆ ARMATURE_OT_autoside_names()

void ARMATURE_OT_autoside_names ( wmOperatorType ot)

◆ ARMATURE_OT_flip_names()

void ARMATURE_OT_flip_names ( wmOperatorType ot)

◆ bone_unique_check()

static bool bone_unique_check ( void *  arg,
const char *  name 
)
static

Definition at line 102 of file armature_naming.c.

References BKE_armature_find_bone_name(), and NULL.

Referenced by ed_armature_bone_unique_name().

◆ constraint_bone_name_fix()

static void constraint_bone_name_fix ( Object ob,
ListBase conlist,
const char *  oldname,
const char *  newname 
)
static

◆ ED_armature_bone_rename()

void ED_armature_bone_rename ( Main bmain,
bArmature arm,
const char *  oldnamep,
const char *  newnamep 
)

Definition at line 160 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_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(), 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, Object::greasepencil_modifiers, bArmature::id, Object::id, bScreen::id, ID_RECALC_COPY_ON_WRITE, bGPdata::layers, LISTBASE_FOREACH, MAXBONENAME, Object::modifiers, EditBone::name, bPoseChannel::name, Bone::name, bDeformGroup::name, bPoseChannel::next, ID::next, ModifierData::next, SpaceLink::next, NULL, 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().

◆ ed_armature_bone_unique_name()

static void ed_armature_bone_unique_name ( bArmature arm,
char *  name 
)
static

Definition at line 107 of file armature_naming.c.

References BLI_uniquename_cb(), bone_unique_check(), DATA_, and NULL.

Referenced by ED_armature_bone_rename().

◆ ED_armature_bones_flip_names()

void ED_armature_bones_flip_names ( Main bmain,
bArmature arm,
ListBase bones_names,
const 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.

Parameters
armArmature the bones belong to
bones_namesList of BoneConflict elems.
do_strip_numbersif set, try to get rid of dot-numbers at end of bone names.

Definition at line 406 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().

◆ ED_armature_ebone_unique_name()

void ED_armature_ebone_unique_name ( ListBase ebones,
char *  name,
EditBone bone 
)

◆ editbone_unique_check()

static bool editbone_unique_check ( void *  arg,
const char *  name 
)
static

Definition at line 73 of file armature_naming.c.

References data, and ED_armature_ebone_find_name().

Referenced by ED_armature_ebone_unique_name().