63 bcoll_ref->bcoll = bcoll_map.
lookup(bcoll_ref->bcoll);
103 arm->collections_span());
182 if (arm->
edbo !=
nullptr) {
231 for (
uint i = 0; i < objects.size(); i++) {
265 if (arm->
edbo ==
nullptr) {
268 "name='%s', failed to enter edit-mode for object '%s', undo state invalid",
316 ut->
name =
"Edit Armature";
C++ functions to deal with Armature collections (i.e. the successor of bone layers).
void ANIM_armature_bonecoll_active_set(bArmature *armature, BoneCollection *bcoll)
void ANIM_armature_runtime_refresh(bArmature *armature)
BoneCollection * ANIM_armature_bonecoll_get_by_name(bArmature *armature, const char *name) ATTR_WARN_UNUSED_RESULT
Scene * CTX_data_scene(const bContext *C)
wmWindowManager * CTX_wm_manager(const bContext *C)
ViewLayer * CTX_data_view_layer(const bContext *C)
void BKE_view_layer_synced_ensure(const Scene *scene, ViewLayer *view_layer)
Object * BKE_view_layer_edit_object_get(const ViewLayer *view_layer)
General operations, lookup, etc. for blender objects.
bool BKE_object_is_in_editmode(const Object *ob)
@ UNDOTYPE_FLAG_NEED_CONTEXT_FOR_ENCODE
void(*)(void *user_data, UndoRefID *id_ref) UndoTypeForEachIDRefFn
Generic array manipulation API.
#define BLI_array_is_zeroed(arr, arr_len)
#define LISTBASE_FOREACH(type, var, list)
int BLI_listbase_count(const struct ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
#define STRNCPY(dst, src)
#define CLOG_ERROR(clg_ref,...)
void DEG_id_tag_update(ID *id, unsigned int flags)
struct BoneCollectionReference BoneCollectionReference
struct BoneCollection BoneCollection
Object is a sort of wrapper for general info.
void ED_undo_object_set_active_or_warn(Scene *scene, ViewLayer *view_layer, Object *ob, const char *info, CLG_LogRef *log)
void ED_undo_object_editmode_restore_helper(Scene *scene, ViewLayer *view_layer, Object **object_array, uint object_array_len, uint object_array_stride)
blender::Vector< Object * > ED_undo_editmode_objects_from_view_layer(const Scene *scene, ViewLayer *view_layer)
void ED_undo_object_editmode_validate_scene_from_windows(wmWindowManager *wm, const Scene *scene_ref, Scene **scene_p, ViewLayer **view_layer_p)
Read Guarded memory(de)allocation.
void ED_armature_ebone_listbase_temp_clear(ListBase *lb)
void ED_armature_ebone_listbase_free(ListBase *lb, const bool do_id_user)
void ED_armature_ebone_listbase_copy(ListBase *lb_dst, ListBase *lb_src, const bool do_id_user)
const Value & lookup(const Key &key) const
static bool armature_undosys_step_encode(bContext *C, Main *bmain, UndoStep *us_p)
static void * undoarm_from_editarm(UndoArmature *uarm, bArmature *arm)
static void armature_undosys_foreach_ID_ref(UndoStep *us_p, UndoTypeForEachIDRefFn foreach_ID_ref_fn, void *user_data)
static bool armature_undosys_poll(bContext *C)
static void armature_undosys_step_free(UndoStep *us_p)
void ED_armature_undosys_type(UndoType *ut)
static void undoarm_free_data(UndoArmature *uarm)
static Object * editarm_object_from_context(bContext *C)
static void undoarm_to_editarm(UndoArmature *uarm, bArmature *arm)
static void remap_ebone_bone_collection_references(ListBase *edit_bones, const blender::Map< BoneCollection *, BoneCollection * > &bcoll_map)
static void armature_undosys_step_decode(bContext *C, Main *bmain, UndoStep *us_p, const eUndoStepDir, bool)
void MEM_freeN(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
blender::Map< BoneCollection *, BoneCollection * > ANIM_bonecoll_array_copy_no_membership(BoneCollection ***bcoll_array_dst, int *bcoll_array_dst_num, BoneCollection **bcoll_array_src, int bcoll_array_src_num, bool do_id_user)
void bonecolls_copy_expanded_flag(Span< BoneCollection * > bcolls_dest, Span< const BoneCollection * > bcolls_source)
void ANIM_bonecoll_array_free(BoneCollection ***bcoll_array, int *bcoll_array_num, bool do_id_user)
ArmatureUndoStep_Elem * next
UndoRefID_Object obedit_ref
ArmatureUndoStep_Elem * prev
ArmatureUndoStep_Elem * elems
UndoRefID_Scene scene_ref
bool is_memfile_undo_flush_needed
int collection_root_count
char active_collection_name[MAX_NAME]
BoneCollection ** collection_array
void(* step_foreach_ID_ref)(UndoStep *us, UndoTypeForEachIDRefFn foreach_ID_ref_fn, void *user_data)
void(* step_free)(UndoStep *us)
bool(* poll)(struct bContext *C)
void(* step_decode)(bContext *C, Main *bmain, UndoStep *us, eUndoStepDir dir, bool is_final)
bool(* step_encode)(bContext *C, Main *bmain, UndoStep *us)
int collection_root_count
struct BoneCollection ** collection_array
char active_collection_name[64]
struct EditBone * act_edbone
void WM_event_add_notifier(const bContext *C, uint type, void *reference)