Mesh Modifiers: refactor copying using a generic function
authorCampbell Barton <ideasman42@gmail.com>
Sat, 21 Dec 2013 17:35:52 +0000 (04:35 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Sat, 21 Dec 2013 17:37:26 +0000 (04:37 +1100)
38 files changed:
source/blender/blenkernel/BKE_modifier.h
source/blender/blenkernel/intern/modifier.c
source/blender/makesdna/DNA_modifier_types.h
source/blender/modifiers/intern/MOD_array.c
source/blender/modifiers/intern/MOD_boolean.c
source/blender/modifiers/intern/MOD_build.c
source/blender/modifiers/intern/MOD_cast.c
source/blender/modifiers/intern/MOD_curve.c
source/blender/modifiers/intern/MOD_decimate.c
source/blender/modifiers/intern/MOD_displace.c
source/blender/modifiers/intern/MOD_edgesplit.c
source/blender/modifiers/intern/MOD_explode.c
source/blender/modifiers/intern/MOD_hook.c
source/blender/modifiers/intern/MOD_laplaciandeform.c
source/blender/modifiers/intern/MOD_laplaciansmooth.c
source/blender/modifiers/intern/MOD_lattice.c
source/blender/modifiers/intern/MOD_mask.c
source/blender/modifiers/intern/MOD_meshcache.c
source/blender/modifiers/intern/MOD_mirror.c
source/blender/modifiers/intern/MOD_multires.c
source/blender/modifiers/intern/MOD_particleinstance.c
source/blender/modifiers/intern/MOD_particlesystem.c
source/blender/modifiers/intern/MOD_remesh.c
source/blender/modifiers/intern/MOD_screw.c
source/blender/modifiers/intern/MOD_shrinkwrap.c
source/blender/modifiers/intern/MOD_simpledeform.c
source/blender/modifiers/intern/MOD_skin.c
source/blender/modifiers/intern/MOD_smooth.c
source/blender/modifiers/intern/MOD_solidify.c
source/blender/modifiers/intern/MOD_subsurf.c
source/blender/modifiers/intern/MOD_triangulate.c
source/blender/modifiers/intern/MOD_uvproject.c
source/blender/modifiers/intern/MOD_uvwarp.c
source/blender/modifiers/intern/MOD_warp.c
source/blender/modifiers/intern/MOD_wave.c
source/blender/modifiers/intern/MOD_weightvgedit.c
source/blender/modifiers/intern/MOD_weightvgmix.c
source/blender/modifiers/intern/MOD_weightvgproximity.c

index 3275adf79faaf6b7a543ee169db04d682c7e470c..25dee613d206ab65ff48c7acad42e99db216fdd1 100644 (file)
@@ -318,6 +318,7 @@ void          modifier_free(struct ModifierData *md);
 
 void          modifier_unique_name(struct ListBase *modifiers, struct ModifierData *md);
 
+void          modifier_copyData_generic(const struct ModifierData *md, struct ModifierData *target);
 void          modifier_copyData(struct ModifierData *md, struct ModifierData *target);
 bool          modifier_dependsOnTime(struct ModifierData *md);
 bool          modifier_supportsMapping(struct ModifierData *md);
index 4d2f6971f64b28c48bf6c07e5fd02c25deca68d7..f9a0d462ac09801b27f7b85b58734f1dfeda0f88 100644 (file)
@@ -253,6 +253,19 @@ void modifiers_foreachTexLink(Object *ob, TexWalkFunc walk, void *userData)
        }
 }
 
+/* callback's can use this
+ * to avoid copying every member.
+ */
+void modifier_copyData_generic(const ModifierData *md_src, ModifierData *md_dst)
+{
+       ModifierTypeInfo *mti = modifierType_getInfo(md_src->type);
+       const size_t data_size = sizeof(ModifierData);
+       const char *md_src_data = ((char *)md_src) + data_size;
+       char       *md_dst_data = ((char *)md_dst) + data_size;
+       BLI_assert(data_size <= (size_t)mti->structSize);
+       memcpy(md_dst_data, md_src_data, (size_t)mti->structSize - data_size);
+}
+
 void modifier_copyData(ModifierData *md, ModifierData *target)
 {
        ModifierTypeInfo *mti = modifierType_getInfo(md->type);
index 92055fdcc05faf238c606ced5046a9a033326e4d..b3c7427074c4f209f4a05d307890d388909c2f56 100644 (file)
@@ -646,7 +646,7 @@ typedef struct ParticleSystemModifierData {
        struct ParticleSystem *psys;
        struct DerivedMesh *dm;
        int totdmvert, totdmedge, totdmface;
-       short flag, rt;
+       short flag, pad;
 } ParticleSystemModifierData;
 
 typedef enum {
@@ -670,7 +670,7 @@ typedef struct ParticleInstanceModifierData {
        ModifierData modifier;
 
        struct Object *ob;
-       short psys, flag, axis, rt;
+       short psys, flag, axis, pad;
        float position, random_position;
 } ParticleInstanceModifierData;
 
index bc38b0e030b0f8b369ccedfb4beb24b67f3275ab..2bf7bb5f672df9f23f1c4f2b87cf175364d0aca3 100644 (file)
@@ -84,21 +84,11 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        ArrayModifierData *amd = (ArrayModifierData *) md;
        ArrayModifierData *tamd = (ArrayModifierData *) target;
-
-       tamd->start_cap = amd->start_cap;
-       tamd->end_cap = amd->end_cap;
-       tamd->curve_ob = amd->curve_ob;
-       tamd->offset_ob = amd->offset_ob;
-       tamd->count = amd->count;
-       copy_v3_v3(tamd->offset, amd->offset);
-       copy_v3_v3(tamd->scale, amd->scale);
-       tamd->length = amd->length;
-       tamd->merge_dist = amd->merge_dist;
-       tamd->fit_type = amd->fit_type;
-       tamd->offset_type = amd->offset_type;
-       tamd->flags = amd->flags;
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static void foreachObjectLink(
index 03d40eb58f15a2cbe59a3f8bcc157d89118e1ded..bee7a32f6aab2f002a5a0f11d93c1f7c14ad111b 100644 (file)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        BooleanModifierData *bmd = (BooleanModifierData *) md;
        BooleanModifierData *tbmd = (BooleanModifierData *) target;
-
-       tbmd->object = bmd->object;
-       tbmd->operation = bmd->operation;
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
index a54cc80839b0ef211ac050baa6c416184d21e210..d74044fa1efc44d6232dcdd65098450880dd4107 100644 (file)
@@ -62,13 +62,11 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        BuildModifierData *bmd = (BuildModifierData *) md;
        BuildModifierData *tbmd = (BuildModifierData *) target;
-
-       tbmd->start = bmd->start;
-       tbmd->length = bmd->length;
-       tbmd->randomize = bmd->randomize;
-       tbmd->seed = bmd->seed;
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static bool dependsOnTime(ModifierData *UNUSED(md))
index 05b51c2cf4bb3feca85e7d73bf6bb6b69337653d..44cf240816ee83c424d2a151b06e676dfd2fd666 100644 (file)
@@ -66,16 +66,11 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        CastModifierData *cmd = (CastModifierData *) md;
        CastModifierData *tcmd = (CastModifierData *) target;
-
-       tcmd->fac = cmd->fac;
-       tcmd->radius = cmd->radius;
-       tcmd->size = cmd->size;
-       tcmd->flag = cmd->flag;
-       tcmd->type = cmd->type;
-       tcmd->object = cmd->object;
-       BLI_strncpy(tcmd->defgrp_name, cmd->defgrp_name, sizeof(tcmd->defgrp_name));
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
index 28749d5ce904020c425beec51a8da6cc8fbac98b..28042185de0157d79826fe33d71b79fb26619218 100644 (file)
@@ -59,12 +59,11 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        CurveModifierData *cmd = (CurveModifierData *) md;
        CurveModifierData *tcmd = (CurveModifierData *) target;
-
-       tcmd->defaxis = cmd->defaxis;
-       tcmd->object = cmd->object;
-       BLI_strncpy(tcmd->name, cmd->name, sizeof(tcmd->name));
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
index e4399d1e41600a4b969d60d3c9b8d5a950eb192c..155ccf034d70580d37aecb4cec129e8967f991c0 100644 (file)
@@ -70,15 +70,11 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        DecimateModifierData *dmd = (DecimateModifierData *) md;
        DecimateModifierData *tdmd = (DecimateModifierData *) target;
-
-       tdmd->percent = dmd->percent;
-       tdmd->iter = dmd->iter;
-       tdmd->angle = dmd->angle;
-       BLI_strncpy(tdmd->defgrp_name, dmd->defgrp_name, sizeof(tdmd->defgrp_name));
-       tdmd->flag = dmd->flag;
-       tdmd->mode = dmd->mode;
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
index 61f5495bee844470e917da0a5e4438d6800f3019..54f2e688f314cce1134e5a8c94c16abb94efe4b1 100644 (file)
@@ -69,17 +69,12 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        DisplaceModifierData *dmd = (DisplaceModifierData *) md;
+#endif
        DisplaceModifierData *tdmd = (DisplaceModifierData *) target;
 
-       tdmd->texture = dmd->texture;
-       tdmd->strength = dmd->strength;
-       tdmd->direction = dmd->direction;
-       BLI_strncpy(tdmd->defgrp_name, dmd->defgrp_name, sizeof(tdmd->defgrp_name));
-       tdmd->midlevel = dmd->midlevel;
-       tdmd->texmapping = dmd->texmapping;
-       tdmd->map_object = dmd->map_object;
-       BLI_strncpy(tdmd->uvlayer_name, dmd->uvlayer_name, sizeof(tdmd->uvlayer_name));
+       modifier_copyData_generic(md, target);
 
        if (tdmd->texture) {
                id_us_plus(&tdmd->texture->id);
index a17858d58f5b54b2026f4eb8bcff5c670c513a66..609d37a13275cf0d9341c3d3b35a861222e07f31 100644 (file)
@@ -113,11 +113,11 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        EdgeSplitModifierData *emd = (EdgeSplitModifierData *) md;
        EdgeSplitModifierData *temd = (EdgeSplitModifierData *) target;
-
-       temd->split_angle = emd->split_angle;
-       temd->flags = emd->flags;
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static DerivedMesh *applyModifier(ModifierData *md, Object *UNUSED(ob), DerivedMesh *dm,
index 9fd11f78ea0fcbdd116db6058910eb30f21566ee..aef6a12e8ffeeae7444a98e614f65fea6a8bf540 100644 (file)
@@ -72,13 +72,14 @@ static void freeData(ModifierData *md)
 }
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        ExplodeModifierData *emd = (ExplodeModifierData *) md;
+#endif
        ExplodeModifierData *temd = (ExplodeModifierData *) target;
 
+       modifier_copyData_generic(md, target);
+
        temd->facepa = NULL;
-       temd->flag = emd->flag;
-       temd->protect = emd->protect;
-       temd->vgroup = emd->vgroup;
 }
 static bool dependsOnTime(ModifierData *UNUSED(md))
 {
index 4e8af650cb2f93d66170da7e0e1729162cbe6aff..31aad5337276c46aa9e9fbfd4cc80352473a779b 100644 (file)
@@ -64,15 +64,9 @@ static void copyData(ModifierData *md, ModifierData *target)
        HookModifierData *hmd = (HookModifierData *) md;
        HookModifierData *thmd = (HookModifierData *) target;
 
-       copy_v3_v3(thmd->cent, hmd->cent);
-       thmd->falloff = hmd->falloff;
-       thmd->force = hmd->force;
-       thmd->object = hmd->object;
-       thmd->totindex = hmd->totindex;
+       modifier_copyData_generic(md, target);
+
        thmd->indexar = MEM_dupallocN(hmd->indexar);
-       memcpy(thmd->parentinv, hmd->parentinv, sizeof(hmd->parentinv));
-       BLI_strncpy(thmd->name, hmd->name, sizeof(thmd->name));
-       BLI_strncpy(thmd->subtarget, hmd->subtarget, sizeof(thmd->subtarget));
 }
 
 static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
index 5040ffbe9162052d135a0620f545ecc912d85085..defd287034eedde7f91742c99b1e3068e0067bdf 100644 (file)
@@ -797,12 +797,11 @@ static void copyData(ModifierData *md, ModifierData *target)
 {
        LaplacianDeformModifierData *lmd = (LaplacianDeformModifierData *)md;
        LaplacianDeformModifierData *tlmd = (LaplacianDeformModifierData *)target;
-       tlmd->total_verts = lmd->total_verts;
-       tlmd->repeat = lmd->repeat;
-       BLI_strncpy(tlmd->anchor_grp_name, lmd->anchor_grp_name, sizeof(tlmd->anchor_grp_name));
+
+       modifier_copyData_generic(md, target);
+
        tlmd->vertexco = MEM_dupallocN(lmd->vertexco);
        tlmd->cache_system = MEM_dupallocN(lmd->cache_system);
-       tlmd->flag = lmd->flag;
 }
 
 static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
index f97818a02d4664fc4599ab4700049b19b227c771..ed562afaf1184ecd67c00a600b3784b72021ff9a 100644 (file)
@@ -642,14 +642,12 @@ static void init_data(ModifierData *md)
 
 static void copy_data(ModifierData *md, ModifierData *target)
 {
+#if 0
        LaplacianSmoothModifierData *smd = (LaplacianSmoothModifierData *) md;
        LaplacianSmoothModifierData *tsmd = (LaplacianSmoothModifierData *) target;
+#endif
 
-       tsmd->lambda = smd->lambda;
-       tsmd->lambda_border = smd->lambda_border;
-       tsmd->repeat = smd->repeat;
-       tsmd->flag = smd->flag;
-       BLI_strncpy(tsmd->defgrp_name, smd->defgrp_name, sizeof(tsmd->defgrp_name));
+       modifier_copyData_generic(md, target);
 }
 
 static bool is_disabled(ModifierData *md, int UNUSED(useRenderParams))
index b83323d9141175855d4ff854dd22a8cf577b917d..76db877c229fdc866c108716c8ef0f90c04f33f5 100644 (file)
@@ -56,11 +56,12 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        LatticeModifierData *lmd = (LatticeModifierData *) md;
        LatticeModifierData *tlmd = (LatticeModifierData *) target;
+#endif
 
-       tlmd->object = lmd->object;
-       BLI_strncpy(tlmd->name, lmd->name, sizeof(tlmd->name));
+       modifier_copyData_generic(md, target);
 }
 
 static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
index 839e30d9c1a93c0a9bbcb1d343ff74ffb72d469f..e754ac8f766955f452e80232cffe2db3fd54882c 100644 (file)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        MaskModifierData *mmd = (MaskModifierData *) md;
        MaskModifierData *tmmd = (MaskModifierData *) target;
-       
-       BLI_strncpy(tmmd->vgroup, mmd->vgroup, sizeof(tmmd->vgroup));
-       tmmd->flag = mmd->flag;
-       tmmd->mode = mmd->mode;
-       tmmd->ob_arm = mmd->ob_arm;
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *UNUSED(md))
index 6d5caaa3ad102e8e0fe53e4a6d4498da1332feeb..925d96918923adbe63d2494f4ce6a18909050d20 100644 (file)
@@ -68,32 +68,11 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        MeshCacheModifierData *mcmd = (MeshCacheModifierData *)md;
        MeshCacheModifierData *tmcmd = (MeshCacheModifierData *)target;
-
-       tmcmd->flag = mcmd->flag;
-       tmcmd->type = mcmd->type;
-
-       tmcmd->time_mode = mcmd->time_mode;
-       tmcmd->play_mode = mcmd->play_mode;
-
-       tmcmd->forward_axis = mcmd->forward_axis;
-       tmcmd->up_axis      = mcmd->up_axis;
-       tmcmd->flip_axis    = mcmd->flip_axis;
-
-       tmcmd->interp = mcmd->interp;
-
-       tmcmd->frame_start = mcmd->frame_start;
-       tmcmd->frame_scale = mcmd->frame_scale;
-
-       tmcmd->factor = mcmd->factor;
-       tmcmd->deform_mode = mcmd->deform_mode;
-
-       tmcmd->eval_frame  = mcmd->eval_frame;
-       tmcmd->eval_time   = mcmd->eval_time;
-       tmcmd->eval_factor = mcmd->eval_factor;
-
-       BLI_strncpy(tmcmd->filepath, mcmd->filepath, sizeof(tmcmd->filepath));
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static bool dependsOnTime(ModifierData *md)
index ec09b80dc5afd5c1dc788a5b230a01e7de0b22b6..7f8fb85166859521a02c95e756aac03bdd846761 100644 (file)
@@ -59,12 +59,11 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        MirrorModifierData *mmd = (MirrorModifierData *) md;
        MirrorModifierData *tmmd = (MirrorModifierData *) target;
-
-       tmmd->flag = mmd->flag;
-       tmmd->tolerance = mmd->tolerance;
-       tmmd->mirror_ob = mmd->mirror_ob;
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static void foreachObjectLink(ModifierData *md, Object *ob,
index 848f7ee0fc1d56eaed9c5ce1d59a01e515cae372..b3b08ce5c85694726784e5e47657b475482eabe9 100644 (file)
@@ -61,15 +61,11 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        MultiresModifierData *mmd = (MultiresModifierData *) md;
        MultiresModifierData *tmmd = (MultiresModifierData *) target;
-
-       tmmd->lvl = mmd->lvl;
-       tmmd->sculptlvl = mmd->sculptlvl;
-       tmmd->renderlvl = mmd->renderlvl;
-       tmmd->totlvl = mmd->totlvl;
-       tmmd->simple = mmd->simple;
-       tmmd->flags = mmd->flags;
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *dm,
index c51fa329df22fc7eb810bdf9d3922fe1249a01bd..a493db139a0dc143171da020c2baf3504b9fc905 100644 (file)
@@ -66,15 +66,11 @@ static void initData(ModifierData *md)
 }
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        ParticleInstanceModifierData *pimd = (ParticleInstanceModifierData *) md;
        ParticleInstanceModifierData *tpimd = (ParticleInstanceModifierData *) target;
-
-       tpimd->ob = pimd->ob;
-       tpimd->psys = pimd->psys;
-       tpimd->flag = pimd->flag;
-       tpimd->axis = pimd->axis;
-       tpimd->position = pimd->position;
-       tpimd->random_position = pimd->random_position;
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static bool isDisabled(ModifierData *md, int useRenderParams)
index 327ae5771086e20b68410dd4b25f8b1456599f07..8e72c49740fd9c76c995f4b84cd18160b1ec6f7c 100644 (file)
@@ -73,15 +73,15 @@ static void freeData(ModifierData *md)
 }
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        ParticleSystemModifierData *psmd = (ParticleSystemModifierData *) md;
+#endif
        ParticleSystemModifierData *tpsmd = (ParticleSystemModifierData *) target;
 
+       modifier_copyData_generic(md, target);
+
        tpsmd->dm = NULL;
        tpsmd->totdmvert = tpsmd->totdmedge = tpsmd->totdmface = 0;
-       //tpsmd->facepa = 0;
-       tpsmd->flag = psmd->flag;
-       /* need to keep this to recognise a bit later in BKE_object_copy */
-       tpsmd->psys = psmd->psys;
 }
 
 static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
index c8fdbc535bcbdd08ff542b8bf0ca8dddc5a5d038..8f0db9f8ebf736f03dbe67f07c99e5e53256cf89 100644 (file)
@@ -62,15 +62,11 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        RemeshModifierData *rmd = (RemeshModifierData *) md;
        RemeshModifierData *trmd = (RemeshModifierData *) target;
-
-       trmd->threshold = rmd->threshold;
-       trmd->scale = rmd->scale;
-       trmd->hermite_num = rmd->hermite_num;
-       trmd->depth = rmd->depth;
-       trmd->flag = rmd->flag;
-       trmd->mode = rmd->mode;
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 #ifdef WITH_MOD_REMESH
index 640ed9269081f2b98b40ed5ccb1650fc08b0200f..9e5b4fad439749ac88655a330f7c5893e890b5b6 100644 (file)
@@ -124,17 +124,11 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        ScrewModifierData *sltmd = (ScrewModifierData *) md;
        ScrewModifierData *tltmd = (ScrewModifierData *) target;
-       
-       tltmd->ob_axis = sltmd->ob_axis;
-       tltmd->angle = sltmd->angle;
-       tltmd->axis = sltmd->axis;
-       tltmd->flag = sltmd->flag;
-       tltmd->steps = sltmd->steps;
-       tltmd->render_steps = sltmd->render_steps;
-       tltmd->screw_ofs = sltmd->screw_ofs;
-       tltmd->iter = sltmd->iter;
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
index e06c4f22553c179a66cd2e6ec639e58cf336ad68..6e96a160cd44258197b7bcb5f6e3973bd98daa59 100644 (file)
@@ -64,19 +64,11 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        ShrinkwrapModifierData *smd  = (ShrinkwrapModifierData *)md;
        ShrinkwrapModifierData *tsmd = (ShrinkwrapModifierData *)target;
-
-       tsmd->target    = smd->target;
-       tsmd->auxTarget = smd->auxTarget;
-
-       BLI_strncpy(tsmd->vgroup_name, smd->vgroup_name, sizeof(tsmd->vgroup_name));
-
-       tsmd->keepDist  = smd->keepDist;
-       tsmd->shrinkType = smd->shrinkType;
-       tsmd->shrinkOpts = smd->shrinkOpts;
-       tsmd->projAxis = smd->projAxis;
-       tsmd->subsurfLevels = smd->subsurfLevels;
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
index 3c1f15a933dd6977f81baf9014b2153d472fc26c..fdc5578c049e0f34b244cc7b852e17194bd74ee5 100644 (file)
@@ -255,15 +255,11 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        SimpleDeformModifierData *smd  = (SimpleDeformModifierData *)md;
        SimpleDeformModifierData *tsmd = (SimpleDeformModifierData *)target;
-
-       tsmd->mode  = smd->mode;
-       tsmd->axis  = smd->axis;
-       tsmd->origin = smd->origin;
-       tsmd->factor = smd->factor;
-       copy_v2_v2(tsmd->limit, smd->limit);
-       BLI_strncpy(tsmd->vgroup_name, smd->vgroup_name, sizeof(tsmd->vgroup_name));
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
index 90c37459d31020fad29248bc9115e6c9fcce2055..a031cd10ca8f30b78773ec9b7862d0f92e0dc9a5 100644 (file)
@@ -1835,10 +1835,11 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        SkinModifierData *smd = (SkinModifierData *) md;
        SkinModifierData *tsmd = (SkinModifierData *) target;
-
-       *tsmd = *smd;
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static DerivedMesh *applyModifier(ModifierData *md,
index 96d7d5956c5badf2e02a363d702f9e7fd03f9315..eb8c62cfd895d70f12d6b7aa647deea1c64eafb7 100644 (file)
@@ -61,13 +61,11 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        SmoothModifierData *smd = (SmoothModifierData *) md;
        SmoothModifierData *tsmd = (SmoothModifierData *) target;
-
-       tsmd->fac = smd->fac;
-       tsmd->repeat = smd->repeat;
-       tsmd->flag = smd->flag;
-       BLI_strncpy(tsmd->defgrp_name, smd->defgrp_name, sizeof(tsmd->defgrp_name));
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
index 2696a3e156b836a4d83e1422561b36bc7985c229..534f4532733f9b8c09c81cf9acae096c2bcb90b0 100644 (file)
@@ -176,19 +176,11 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        SolidifyModifierData *smd = (SolidifyModifierData *) md;
        SolidifyModifierData *tsmd = (SolidifyModifierData *) target;
-       tsmd->offset = smd->offset;
-       tsmd->offset_fac = smd->offset_fac;
-       tsmd->offset_fac_vg = smd->offset_fac_vg;
-       tsmd->offset_clamp = smd->offset_clamp;
-       tsmd->crease_inner = smd->crease_inner;
-       tsmd->crease_outer = smd->crease_outer;
-       tsmd->crease_rim = smd->crease_rim;
-       tsmd->flag = smd->flag;
-       tsmd->mat_ofs = smd->mat_ofs;
-       tsmd->mat_ofs_rim = smd->mat_ofs_rim;
-       BLI_strncpy(tsmd->defgrp_name, smd->defgrp_name, sizeof(tsmd->defgrp_name));
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
index 4e2656bbf008adbd9918cb71a0adb61091c78139..3de85047ebfd65b97ef80a7d10d06b3d3a8bbb16 100644 (file)
@@ -60,13 +60,15 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        SubsurfModifierData *smd = (SubsurfModifierData *) md;
+#endif
        SubsurfModifierData *tsmd = (SubsurfModifierData *) target;
 
-       tsmd->flags = smd->flags;
-       tsmd->levels = smd->levels;
-       tsmd->renderLevels = smd->renderLevels;
-       tsmd->subdivType = smd->subdivType;
+       modifier_copyData_generic(md, target);
+
+       tsmd->emCache = tsmd->mCache = NULL;
+
 }
 
 static void freeData(ModifierData *md)
index d519c981a237016e6cf8d4ecbe3daa49071b78bd..182c339abfd0b5961c6be02f4d5efd6928610f17 100644 (file)
@@ -76,10 +76,11 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        TriangulateModifierData *smd = (TriangulateModifierData *) md;
        TriangulateModifierData *tsmd = (TriangulateModifierData *) target;
-
-       *tsmd = *smd;
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static DerivedMesh *applyModifier(ModifierData *md,
index ad1e2a464a84991b8b0bcbb41f5a1fd4a899b336..8ded9847c2a24cd62fb9f5b47396b2e48d77e869 100644 (file)
 static void initData(ModifierData *md)
 {
        UVProjectModifierData *umd = (UVProjectModifierData *) md;
-       int i;
 
-       for (i = 0; i < MOD_UVPROJECT_MAXPROJECTORS; ++i)
-               umd->projectors[i] = NULL;
-       umd->image = NULL;
        umd->flags = 0;
        umd->num_projectors = 1;
        umd->aspectx = umd->aspecty = 1.0f;
@@ -72,20 +68,11 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        UVProjectModifierData *umd = (UVProjectModifierData *) md;
        UVProjectModifierData *tumd = (UVProjectModifierData *) target;
-       int i;
-
-       for (i = 0; i < MOD_UVPROJECT_MAXPROJECTORS; ++i)
-               tumd->projectors[i] = umd->projectors[i];
-       tumd->image = umd->image;
-       tumd->flags = umd->flags;
-       tumd->num_projectors = umd->num_projectors;
-       tumd->aspectx = umd->aspectx;
-       tumd->aspecty = umd->aspecty;
-       tumd->scalex = umd->scalex;
-       tumd->scaley = umd->scaley;
-       BLI_strncpy(tumd->uvlayer_name, umd->uvlayer_name, sizeof(umd->uvlayer_name));
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *UNUSED(md))
index 240daa524002d04384e4e5005a11ebad550c0fe5..4640a36909bd868d49aa6c01e842e3da608ed9ba 100644 (file)
@@ -68,18 +68,11 @@ static void initData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        UVWarpModifierData *umd  = (UVWarpModifierData *)md;
        UVWarpModifierData *tumd = (UVWarpModifierData *)target;
-
-       tumd->axis_u = umd->axis_u;
-       tumd->axis_v = umd->axis_v;
-       copy_v2_v2(tumd->center, umd->center);
-       tumd->object_src = umd->object_src;
-       BLI_strncpy(tumd->bone_src, umd->bone_src, sizeof(tumd->bone_src));
-       tumd->object_dst = umd->object_dst;
-       BLI_strncpy(tumd->bone_dst, umd->bone_dst, sizeof(tumd->bone_dst));
-       BLI_strncpy(tumd->vgroup_name, umd->vgroup_name, sizeof(tumd->vgroup_name));
-       BLI_strncpy(tumd->uvlayer_name, umd->uvlayer_name, sizeof(umd->uvlayer_name));
+#endif
+       modifier_copyData_generic(md, target);
 }
 
 static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
index 83b05ae708a1cc28da8f03ed025866afb7ce0bfc..e6d6c6296810daa466e6df5f6ed74124947b5888 100644 (file)
@@ -66,20 +66,9 @@ static void copyData(ModifierData *md, ModifierData *target)
        WarpModifierData *wmd = (WarpModifierData *) md;
        WarpModifierData *twmd = (WarpModifierData *) target;
 
-       twmd->object_from = wmd->object_from;
-       twmd->object_to = wmd->object_to;
+       modifier_copyData_generic(md, target);
 
-       twmd->strength = wmd->strength;
-       twmd->falloff_radius = wmd->falloff_radius;
-       twmd->falloff_type = wmd->falloff_type;
-       BLI_strncpy(twmd->defgrp_name, wmd->defgrp_name, sizeof(twmd->defgrp_name));
        twmd->curfalloff = curvemapping_copy(wmd->curfalloff);
-
-       /* map info */
-       twmd->texture = wmd->texture;
-       twmd->map_object = wmd->map_object;
-       BLI_strncpy(twmd->uvlayer_name, wmd->uvlayer_name, sizeof(twmd->uvlayer_name));
-       twmd->texmapping = wmd->texmapping;
 }
 
 static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
index 168907e293cc4dc787548f4f155128b94d9f0323..1a81b1fdf4c5b6e33b0293e973180334b504be32 100644 (file)
@@ -89,25 +89,12 @@ static void freeData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        WaveModifierData *wmd = (WaveModifierData *) md;
+#endif
        WaveModifierData *twmd = (WaveModifierData *) target;
 
-       twmd->damp = wmd->damp;
-       twmd->flag = wmd->flag;
-       twmd->height = wmd->height;
-       twmd->lifetime = wmd->lifetime;
-       twmd->narrow = wmd->narrow;
-       twmd->speed = wmd->speed;
-       twmd->startx = wmd->startx;
-       twmd->starty = wmd->starty;
-       twmd->timeoffs = wmd->timeoffs;
-       twmd->width = wmd->width;
-       twmd->falloff = wmd->falloff;
-       twmd->objectcenter = wmd->objectcenter;
-       twmd->texture = wmd->texture;
-       twmd->map_object = wmd->map_object;
-       twmd->texmapping = wmd->texmapping;
-       BLI_strncpy(twmd->defgrp_name, wmd->defgrp_name, sizeof(twmd->defgrp_name));
+       modifier_copyData_generic(md, target);
 
        if (twmd->texture) {
                id_us_plus(&twmd->texture->id);
index c8da0eb6de7d87103c51e51a7e9652f942aba33e..fee4e81cb2d33cb54e7cfbeb971c47bef0751702 100644 (file)
@@ -89,24 +89,9 @@ static void copyData(ModifierData *md, ModifierData *target)
        WeightVGEditModifierData *wmd  = (WeightVGEditModifierData *) md;
        WeightVGEditModifierData *twmd = (WeightVGEditModifierData *) target;
 
-       BLI_strncpy(twmd->defgrp_name, wmd->defgrp_name, sizeof(twmd->defgrp_name));
+       modifier_copyData_generic(md, target);
 
-       twmd->edit_flags             = wmd->edit_flags;
-       twmd->falloff_type           = wmd->falloff_type;
-       twmd->default_weight         = wmd->default_weight;
-
-       twmd->cmap_curve             = curvemapping_copy(wmd->cmap_curve);
-
-       twmd->add_threshold          = wmd->add_threshold;
-       twmd->rem_threshold          = wmd->rem_threshold;
-
-       twmd->mask_constant          = wmd->mask_constant;
-       BLI_strncpy(twmd->mask_defgrp_name, wmd->mask_defgrp_name, sizeof(twmd->mask_defgrp_name));
-       twmd->mask_texture           = wmd->mask_texture;
-       twmd->mask_tex_use_channel   = wmd->mask_tex_use_channel;
-       twmd->mask_tex_mapping       = wmd->mask_tex_mapping;
-       twmd->mask_tex_map_obj       = wmd->mask_tex_map_obj;
-       BLI_strncpy(twmd->mask_tex_uvlayer_name, wmd->mask_tex_uvlayer_name, sizeof(twmd->mask_tex_uvlayer_name));
+       twmd->cmap_curve = curvemapping_copy(wmd->cmap_curve);
 
        if (twmd->mask_texture) {
                id_us_plus(&twmd->mask_texture->id);
index 1ec287b3b3aed4fdb677855be1beb2b3f92c00fa..304d4c8774add2cec1a07b68db2191c499c59672 100644 (file)
@@ -134,23 +134,12 @@ static void freeData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        WeightVGMixModifierData *wmd  = (WeightVGMixModifierData *) md;
+#endif
        WeightVGMixModifierData *twmd = (WeightVGMixModifierData *) target;
 
-       BLI_strncpy(twmd->defgrp_name_a, wmd->defgrp_name_a, sizeof(twmd->defgrp_name_a));
-       BLI_strncpy(twmd->defgrp_name_b, wmd->defgrp_name_b, sizeof(twmd->defgrp_name_b));
-       twmd->default_weight_a       = wmd->default_weight_a;
-       twmd->default_weight_b       = wmd->default_weight_b;
-       twmd->mix_mode               = wmd->mix_mode;
-       twmd->mix_set                = wmd->mix_set;
-
-       twmd->mask_constant          = wmd->mask_constant;
-       BLI_strncpy(twmd->mask_defgrp_name, wmd->mask_defgrp_name, sizeof(twmd->mask_defgrp_name));
-       twmd->mask_texture           = wmd->mask_texture;
-       twmd->mask_tex_use_channel   = wmd->mask_tex_use_channel;
-       twmd->mask_tex_mapping       = wmd->mask_tex_mapping;
-       twmd->mask_tex_map_obj       = wmd->mask_tex_map_obj;
-       BLI_strncpy(twmd->mask_tex_uvlayer_name, wmd->mask_tex_uvlayer_name, sizeof(twmd->mask_tex_uvlayer_name));
+       modifier_copyData_generic(md, target);
 
        if (twmd->mask_texture) {
                id_us_plus(&twmd->mask_texture->id);
index 67168e529498d7353ea23fbf092b1db8c6081b03..06f4664c11b50c9490eb3f2485dde6713084ef6d 100644 (file)
@@ -254,25 +254,12 @@ static void freeData(ModifierData *md)
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
+#if 0
        WeightVGProximityModifierData *wmd  = (WeightVGProximityModifierData *) md;
+#endif
        WeightVGProximityModifierData *twmd = (WeightVGProximityModifierData *) target;
 
-       BLI_strncpy(twmd->defgrp_name, wmd->defgrp_name, sizeof(twmd->defgrp_name));
-       twmd->proximity_mode         = wmd->proximity_mode;
-       twmd->proximity_flags        = wmd->proximity_flags;
-       twmd->proximity_ob_target    = wmd->proximity_ob_target;
-
-       twmd->falloff_type           = wmd->falloff_type;
-
-       twmd->mask_constant          = wmd->mask_constant;
-       BLI_strncpy(twmd->mask_defgrp_name, wmd->mask_defgrp_name, sizeof(twmd->mask_defgrp_name));
-       twmd->mask_texture           = wmd->mask_texture;
-       twmd->mask_tex_use_channel   = wmd->mask_tex_use_channel;
-       twmd->mask_tex_mapping       = wmd->mask_tex_mapping;
-       twmd->mask_tex_map_obj       = wmd->mask_tex_map_obj;
-       BLI_strncpy(twmd->mask_tex_uvlayer_name, wmd->mask_tex_uvlayer_name, sizeof(twmd->mask_tex_uvlayer_name));
-       twmd->min_dist               = wmd->min_dist;
-       twmd->max_dist               = wmd->max_dist;
+       modifier_copyData_generic(md, target);
 
        if (twmd->mask_texture) {
                id_us_plus(&twmd->mask_texture->id);