22void find_selected_bones__visit_bone(
const bArmature *armature,
24 SelectedBonesResult &result,
28 result.all_bones_selected &= is_selected;
29 result.no_bones_selected &= !is_selected;
36 find_selected_bones__visit_bone(armature,
callback, result, child_bone);
46 find_selected_bones__visit_bone(armature,
callback, result, root_bone);
57 auto callback = [&](
Bone *bone) { selected_bone_names.
add(bone->name); };
61 if (result.all_bones_selected || result.no_bones_selected) {
65 return selected_bone_names;
C++ functions to deal with Armature collections (i.e. the successor of bone layers).
#define PBONE_SELECTED(arm, bone)
#define LISTBASE_FOREACH(type, var, list)
DEGForeachIDComponentCallback callback
SelectedBonesResult BKE_armature_find_selected_bones(const bArmature *armature, SelectedBoneCallback callback)
blender::FunctionRef< void(Bone *bone)> SelectedBoneCallback
BoneNameSet BKE_armature_find_selected_bone_names(const bArmature *armature)
blender::Set< std::string > BoneNameSet