diff options
Diffstat (limited to 'source/blender/modifiers/intern/MOD_datatransfer.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_datatransfer.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/source/blender/modifiers/intern/MOD_datatransfer.c b/source/blender/modifiers/intern/MOD_datatransfer.c index 3e461476eac..567af7bae09 100644 --- a/source/blender/modifiers/intern/MOD_datatransfer.c +++ b/source/blender/modifiers/intern/MOD_datatransfer.c @@ -122,6 +122,8 @@ static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphConte if (dtmd->ob_source != NULL) { CustomData_MeshMasks cddata_masks = {0}; BKE_object_data_transfer_dttypes_to_cdmask(dtmd->data_types, &cddata_masks); + BKE_mesh_remap_calc_source_cddata_masks_from_map_modes( + dtmd->vmap_mode, dtmd->emap_mode, dtmd->lmap_mode, dtmd->pmap_mode, &cddata_masks); DEG_add_object_relation(ctx->node, dtmd->ob_source, DEG_OB_COMP_GEOMETRY, "DataTransfer Modifier"); DEG_add_customdata_mask(ctx->node, dtmd->ob_source, &cddata_masks); @@ -158,7 +160,7 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes /* Only used to check wehther we are operating on org data or not... */ Mesh *me = ctx->object->data; - Object *ob_source = DEG_get_evaluated_object(ctx->depsgraph, dtmd->ob_source); + Object *ob_source = dtmd->ob_source; const bool invert_vgroup = (dtmd->flags & MOD_DATATRANSFER_INVERT_VGROUP) != 0; @@ -216,12 +218,6 @@ ModifierTypeInfo modifierType_DataTransfer = { /* copyData */ modifier_copyData_generic, - /* deformVerts_DM */ NULL, - /* deformMatrices_DM */ NULL, - /* deformVertsEM_DM */ NULL, - /* deformMatricesEM_DM*/NULL, - /* applyModifier_DM */ NULL, - /* deformVerts */ NULL, /* deformMatrices */ NULL, /* deformVertsEM */ NULL, @@ -238,4 +234,5 @@ ModifierTypeInfo modifierType_DataTransfer = { /* foreachObjectLink */ foreachObjectLink, /* foreachIDLink */ NULL, /* foreachTexLink */ NULL, + /* freeRuntimeData */ NULL, }; |