15#define DNA_DEPRECATED_ALLOW
41 Object *ob_proxy_group = ob_proxy->proxy_group;
42 const bool is_override_instancing_object = (ob_proxy_group !=
nullptr) &&
46 ID *id_instance_hint = is_override_instancing_object ? &ob_proxy_group->
id : &ob_proxy->
id;
51 if (ob_proxy->proxy !=
nullptr) {
52 ob_proxy->proxy->proxy_from =
nullptr;
55 ob_proxy->proxy = ob_proxy->proxy_group =
nullptr;
64 ob_proxy->proxy->
id.
newid = &ob_proxy->
id;
68 ob_proxy->proxy->proxy_from =
nullptr;
69 ob_proxy->proxy = ob_proxy->proxy_group =
nullptr;
101 Object *ob_proxy_group = ob_proxy->proxy_group;
102 const bool is_override_instancing_object = ob_proxy_group !=
nullptr;
109 "Proxy object '%s' successfully converted to library overrides",
113 if (is_override_instancing_object) {
116 reports->count.proxies_to_lib_overrides_success++;
126 if (object->proxy_group !=
nullptr) {
133 if (object->proxy !=
nullptr && object->proxy_group ==
nullptr) {
139 for (
LinkNode *proxy_object_iter = proxy_objects.
list; proxy_object_iter !=
nullptr;
140 proxy_object_iter = proxy_object_iter->
next)
142 Object *proxy_object =
static_cast<Object *
>(proxy_object_iter->link);
150 if (object->proxy_group !=
nullptr || object->proxy !=
nullptr) {
153 "Linked proxy object '%s' from '%s' failed to be converted to library override",
155 object->id.lib->filepath);
159 "Proxy object '%s' failed to be converted to library override",
160 object->id.name + 2);
162 reports->count.proxies_to_lib_overrides_failures++;
163 if (object->proxy !=
nullptr) {
164 object->proxy->proxy_from =
nullptr;
167 object->proxy =
object->proxy_group =
nullptr;
#define FOREACH_SCENE_OBJECT_END
bool BKE_scene_collections_object_remove(Main *bmain, Scene *scene, Object *ob, bool free_us)
#define FOREACH_SCENE_OBJECT_BEGIN(scene, _instance)
bool BKE_lib_override_library_create(Main *bmain, Scene *scene, ViewLayer *view_layer, Library *owner_library, ID *id_root_reference, ID *id_hierarchy_root_reference, ID *id_instance_hint, ID **r_id_root_override, const bool do_fully_editable)
IDOverrideLibrary * BKE_lib_override_library_init(ID *local_id, ID *reference_id)
#define FOREACH_MAIN_ID_END
#define FOREACH_MAIN_ID_BEGIN(_bmain, _id)
void BLI_linklist_free(LinkNode *list, LinkNodeFreeFP freefunc)
void void void void BLI_linklist_append(LinkNodePair *list_pair, void *ptr) ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
external readfile function prototypes.
#define CLOG_WARN(clg_ref,...)
#define CLOG_INFO(clg_ref, level,...)
void DEG_id_tag_update(ID *id, unsigned int flags)
ID and Library types, which are fundamental for SDNA.
@ LIBOVERRIDE_FLAG_SYSTEM_DEFINED
Object groups, one object can be in many groups at once.
Object is a sort of wrapper for general info.
#define ID_IS_OVERRIDABLE_LIBRARY_HIERARCHY(_id)
#define ID_IS_LINKED(_id)
bool BKE_lib_override_library_proxy_convert(Main *bmain, Scene *scene, ViewLayer *view_layer, Object *ob_proxy)
void BKE_lib_override_library_main_proxy_convert(Main *bmain, BlendFileReadReport *reports)
static void lib_override_library_proxy_convert_do(Main *bmain, Scene *scene, Object *ob_proxy, BlendFileReadReport *reports)
IDOverrideLibrary * override_library
struct Collection * instance_collection