Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/group.c
| Show First 20 Lines • Show All 83 Lines • ▼ Show 20 Lines | Group *BKE_group_add(Main *bmain, const char *name) | ||||
| id_us_ensure_real(&group->id); | id_us_ensure_real(&group->id); | ||||
| group->layer = (1 << 20) - 1; | group->layer = (1 << 20) - 1; | ||||
| group->preview = NULL; | group->preview = NULL; | ||||
| return group; | return group; | ||||
| } | } | ||||
| Group *BKE_group_copy(Main *bmain, const Group *group) | /** | ||||
| * Only copy internal data of Group ID from source to already allocated/initialized destination. | |||||
| * You probably nerver want to use that directly, use id_copy or BKE_id_copy_ex for typical needs. | |||||
| * | |||||
| * WARNING! This function will not handle ID user count! | |||||
| * | |||||
| * \param flag Copying options (see BKE_library.h's LIB_ID_COPY_... flags for more). | |||||
| */ | |||||
| void BKE_group_copy_data(Main *UNUSED(bmain), Group *group_dst, const Group *group_src, const int flag) | |||||
| { | { | ||||
| Group *groupn; | BLI_duplicatelist(&group_dst->gobject, &group_src->gobject); | ||||
| groupn = BKE_libblock_copy(bmain, &group->id); | |||||
| BLI_duplicatelist(&groupn->gobject, &group->gobject); | |||||
| /* Do not copy group's preview (same behavior as for objects). */ | /* Do not copy group's preview (same behavior as for objects). */ | ||||
| groupn->preview = NULL; | if ((flag & LIB_ID_COPY_NO_PREVIEW) == 0 && false) { /* XXX TODO temp hack */ | ||||
| BKE_previewimg_id_copy(&group_dst->id, &group_src->id); | |||||
| BKE_id_copy_ensure_local(bmain, &group->id, &groupn->id); | } | ||||
| else { | |||||
| group_dst->preview = NULL; | |||||
| } | |||||
| } | |||||
| return groupn; | Group *BKE_group_copy(Main *bmain, const Group *group) | ||||
| { | |||||
| Group *group_copy; | |||||
| BKE_id_copy_ex(bmain, &group->id, (ID **)&group_copy, 0, false); | |||||
| return group_copy; | |||||
| } | } | ||||
| void BKE_group_make_local(Main *bmain, Group *group, const bool lib_local) | void BKE_group_make_local(Main *bmain, Group *group, const bool lib_local) | ||||
| { | { | ||||
| BKE_id_make_local_generic(bmain, &group->id, true, lib_local); | BKE_id_make_local_generic(bmain, &group->id, true, lib_local); | ||||
| } | } | ||||
| /* external */ | /* external */ | ||||
| ▲ Show 20 Lines • Show All 265 Lines • Show Last 20 Lines | |||||