diff options
Diffstat (limited to 'source/blender/modifiers/intern/MOD_cast.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_cast.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/source/blender/modifiers/intern/MOD_cast.c b/source/blender/modifiers/intern/MOD_cast.c index 4f2f6d219d8..185c21af7ad 100644 --- a/source/blender/modifiers/intern/MOD_cast.c +++ b/source/blender/modifiers/intern/MOD_cast.c @@ -27,6 +27,7 @@ #include "BLT_translation.h" +#include "DNA_defaults.h" #include "DNA_mesh_types.h" #include "DNA_meshdata_types.h" #include "DNA_object_types.h" @@ -56,13 +57,9 @@ static void initData(ModifierData *md) { CastModifierData *cmd = (CastModifierData *)md; - cmd->fac = 0.5f; - cmd->radius = 0.0f; - cmd->size = 0.0f; - cmd->flag = MOD_CAST_X | MOD_CAST_Y | MOD_CAST_Z | MOD_CAST_SIZE_FROM_RADIUS; - cmd->type = MOD_CAST_TYPE_SPHERE; - cmd->defgrp_name[0] = '\0'; - cmd->object = NULL; + BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(cmd, modifier)); + + MEMCPY_STRUCT_AFTER(cmd, DNA_struct_default_get(CastModifierData), modifier); } static bool isDisabled(const struct Scene *UNUSED(scene), @@ -93,11 +90,11 @@ static void requiredDataMask(Object *UNUSED(ob), } } -static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData) +static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData) { CastModifierData *cmd = (CastModifierData *)md; - walk(userData, ob, &cmd->object, IDWALK_CB_NOP); + walk(userData, ob, (ID **)&cmd->object, IDWALK_CB_NOP); } static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphContext *ctx) @@ -515,7 +512,7 @@ static void deformVertsEM(ModifierData *md, } if (mesh && mesh->runtime.wrapper_type == ME_WRAPPER_TYPE_MDATA) { - BLI_assert(mesh_src->totvert == numVerts); + BLI_assert(mesh->totvert == numVerts); } /* TODO(Campbell): use edit-mode data only (remove this line). */ @@ -579,9 +576,11 @@ ModifierTypeInfo modifierType_Cast = { /* name */ "Cast", /* structName */ "CastModifierData", /* structSize */ sizeof(CastModifierData), + /* srna */ &RNA_CastModifier, /* type */ eModifierTypeType_OnlyDeform, /* flags */ eModifierTypeFlag_AcceptsCVs | eModifierTypeFlag_AcceptsVertexCosOnly | eModifierTypeFlag_SupportsEditmode, + /* icon */ ICON_MOD_CAST, /* copyData */ BKE_modifier_copydata_generic, @@ -601,8 +600,7 @@ ModifierTypeInfo modifierType_Cast = { /* updateDepsgraph */ updateDepsgraph, /* dependsOnTime */ NULL, /* dependsOnNormals */ NULL, - /* foreachObjectLink */ foreachObjectLink, - /* foreachIDLink */ NULL, + /* foreachIDLink */ foreachIDLink, /* foreachTexLink */ NULL, /* freeRuntimeData */ NULL, /* panelRegister */ panelRegister, |