32 Action &action = dna_action->wrap();
34 BLI_assert_msg(slot->runtime,
"Slot::runtime should always be allocated");
35 slot->runtime->users.clear();
50 auto visit_id = [&visited_ids](
ID *id) ->
bool {
53 if (!visited_ids.
add(
id)) {
64 const_cast<Slot *
>(slot)->users_add(*
id);
72 ID *
id = *cb_data->id_pointer;
91 id =
static_cast<ID *
>(ids_of_idtype->
first);
Functions and classes to work with Actions.
Functionality to iterate an Action in various ways.
bool id_can_have_animdata(const ID *id)
bool id_type_can_have_animdata(short id_type)
@ IDWALK_RET_STOP_RECURSION
void BKE_library_foreach_ID_link(Main *bmain, ID *id, blender::FunctionRef< LibraryIDLinkCallback > callback, void *user_data, int flag)
@ IDWALK_IGNORE_MISSING_OWNER_ID
#define FOREACH_MAIN_LISTBASE_ID_END
#define FOREACH_MAIN_LISTBASE_ID_BEGIN(_lb, _id)
#define FOREACH_MAIN_LISTBASE_END
#define FOREACH_MAIN_LISTBASE_BEGIN(_bmain, _lb)
#define BLI_assert_msg(a, msg)
#define LISTBASE_FOREACH(type, var, list)
Internal C++ functions to deal with Actions, Slots, and their runtime data.
blender::Span< const Slot * > slots() const
Slot * slot_for_handle(slot_handle_t handle)
void rebuild_slot_user_cache(Main &bmain)
decltype(::ActionSlot::handle) slot_handle_t
bool foreach_action_slot_use(const ID &animated_id, FunctionRef< bool(const Action &action, slot_handle_t slot_handle)> callback)
bool is_action_slot_to_id_map_dirty