Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/object/object_relations.c
| Show First 20 Lines • Show All 1,575 Lines • ▼ Show 20 Lines | if (ob_src != ob_dst) { | ||||
| /* new approach, using functions from kernel */ | /* new approach, using functions from kernel */ | ||||
| for (a = 0; a < ob_src->totcol; a++) { | for (a = 0; a < ob_src->totcol; a++) { | ||||
| Material *ma = give_current_material(ob_src, a + 1); | Material *ma = give_current_material(ob_src, a + 1); | ||||
| assign_material(ob_dst, ma, a + 1, BKE_MAT_ASSIGN_USERPREF); /* also works with ma==NULL */ | assign_material(ob_dst, ma, a + 1, BKE_MAT_ASSIGN_USERPREF); /* also works with ma==NULL */ | ||||
| } | } | ||||
| DAG_id_tag_update(&ob_dst->id, OB_RECALC_DATA); | DAG_id_tag_update(&ob_dst->id, OB_RECALC_DATA); | ||||
| break; | break; | ||||
| case MAKE_LINKS_ANIMDATA: | case MAKE_LINKS_ANIMDATA: | ||||
| BKE_animdata_copy_id((ID *)ob_dst, (ID *)ob_src, false); | BKE_animdata_copy_id(bmain, (ID *)ob_dst, (ID *)ob_src, false); | ||||
| if (ob_dst->data && ob_src->data) { | if (ob_dst->data && ob_src->data) { | ||||
| if (ID_IS_LINKED_DATABLOCK(obdata_id)) { | if (ID_IS_LINKED_DATABLOCK(obdata_id)) { | ||||
| is_lib = true; | is_lib = true; | ||||
| break; | break; | ||||
| } | } | ||||
| BKE_animdata_copy_id((ID *)ob_dst->data, (ID *)ob_src->data, false); | BKE_animdata_copy_id(bmain, (ID *)ob_dst->data, (ID *)ob_src->data, false); | ||||
| } | } | ||||
| DAG_id_tag_update(&ob_dst->id, OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME); | DAG_id_tag_update(&ob_dst->id, OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME); | ||||
| break; | break; | ||||
| case MAKE_LINKS_GROUP: | case MAKE_LINKS_GROUP: | ||||
| { | { | ||||
| LinkNode *group_node; | LinkNode *group_node; | ||||
| /* first clear groups */ | /* first clear groups */ | ||||
| ▲ Show 20 Lines • Show All 976 Lines • Show Last 20 Lines | |||||