Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Goudey <h.goudey@me.com>2020-10-01 17:38:00 +0300
committerHans Goudey <h.goudey@me.com>2020-10-01 17:38:00 +0300
commit83980506957cd4e31e8dc7041672efb256b5c28c (patch)
tree15224c5527a82ee5db618a28bbd3e0c178e6095e /source/blender/modifiers/intern
parent551204a17f14b94b4e222546231f4e5846762ce7 (diff)
Use DNA defaults system for modifiers
As noted in T80164, there are quite a few area of Blender where the "Reset to Default Value" operator in button context menus doesn't work. Modifiers are one of them, because the DNA defaults system was never set up for them. Additionally, this should make modifier versioning easier. Whenever a new field is added it should be automatically initialized to the default value. I had to make some ordering changes in the following modifiers to work around an error with `-Wsign-conversion` in the macros: - Solidify Modifier - Corrective Smooth Modifier - Screw Modifier Some modifiers are special cases and are skipped in this commit: - Data Transfer Modifier - Cloth Modifier - Fluid Modifier - Softbody Modifier Differential Revision: https://developer.blender.org/D8747
Diffstat (limited to 'source/blender/modifiers/intern')
-rw-r--r--source/blender/modifiers/intern/MOD_armature.c5
-rw-r--r--source/blender/modifiers/intern/MOD_array.c17
-rw-r--r--source/blender/modifiers/intern/MOD_bevel.c21
-rw-r--r--source/blender/modifiers/intern/MOD_boolean.c8
-rw-r--r--source/blender/modifiers/intern/MOD_build.c6
-rw-r--r--source/blender/modifiers/intern/MOD_cast.c11
-rw-r--r--source/blender/modifiers/intern/MOD_collision.c14
-rw-r--r--source/blender/modifiers/intern/MOD_correctivesmooth.c16
-rw-r--r--source/blender/modifiers/intern/MOD_curve.c5
-rw-r--r--source/blender/modifiers/intern/MOD_decimate.c7
-rw-r--r--source/blender/modifiers/intern/MOD_displace.c9
-rw-r--r--source/blender/modifiers/intern/MOD_dynamicpaint.c8
-rw-r--r--source/blender/modifiers/intern/MOD_edgesplit.c7
-rw-r--r--source/blender/modifiers/intern/MOD_explode.c6
-rw-r--r--source/blender/modifiers/intern/MOD_hook.c8
-rw-r--r--source/blender/modifiers/intern/MOD_laplaciandeform.c11
-rw-r--r--source/blender/modifiers/intern/MOD_laplaciansmooth.c11
-rw-r--r--source/blender/modifiers/intern/MOD_lattice.c6
-rw-r--r--source/blender/modifiers/intern/MOD_mask.cc12
-rw-r--r--source/blender/modifiers/intern/MOD_meshcache.c12
-rw-r--r--source/blender/modifiers/intern/MOD_meshdeform.c5
-rw-r--r--source/blender/modifiers/intern/MOD_meshsequencecache.c11
-rw-r--r--source/blender/modifiers/intern/MOD_mirror.c7
-rw-r--r--source/blender/modifiers/intern/MOD_multires.c12
-rw-r--r--source/blender/modifiers/intern/MOD_normal_edit.c7
-rw-r--r--source/blender/modifiers/intern/MOD_ocean.c44
-rw-r--r--source/blender/modifiers/intern/MOD_particleinstance.c15
-rw-r--r--source/blender/modifiers/intern/MOD_particlesystem.c10
-rw-r--r--source/blender/modifiers/intern/MOD_remesh.c12
-rw-r--r--source/blender/modifiers/intern/MOD_screw.c23
-rw-r--r--source/blender/modifiers/intern/MOD_shrinkwrap.c9
-rw-r--r--source/blender/modifiers/intern/MOD_simpledeform.c10
-rw-r--r--source/blender/modifiers/intern/MOD_simulation.cc12
-rw-r--r--source/blender/modifiers/intern/MOD_skin.c11
-rw-r--r--source/blender/modifiers/intern/MOD_smooth.c8
-rw-r--r--source/blender/modifiers/intern/MOD_solidify.c21
-rw-r--r--source/blender/modifiers/intern/MOD_subsurf.c10
-rw-r--r--source/blender/modifiers/intern/MOD_surface.c8
-rw-r--r--source/blender/modifiers/intern/MOD_surfacedeform.c10
-rw-r--r--source/blender/modifiers/intern/MOD_triangulate.c10
-rw-r--r--source/blender/modifiers/intern/MOD_uvproject.c7
-rw-r--r--source/blender/modifiers/intern/MOD_uvwarp.c9
-rw-r--r--source/blender/modifiers/intern/MOD_warp.c10
-rw-r--r--source/blender/modifiers/intern/MOD_wave.c19
-rw-r--r--source/blender/modifiers/intern/MOD_weighted_normal.c9
-rw-r--r--source/blender/modifiers/intern/MOD_weightvgedit.c17
-rw-r--r--source/blender/modifiers/intern/MOD_weightvgmix.c10
-rw-r--r--source/blender/modifiers/intern/MOD_weightvgproximity.c11
-rw-r--r--source/blender/modifiers/intern/MOD_weld.c6
-rw-r--r--source/blender/modifiers/intern/MOD_wireframe.c8
50 files changed, 241 insertions, 320 deletions
diff --git a/source/blender/modifiers/intern/MOD_armature.c b/source/blender/modifiers/intern/MOD_armature.c
index f4b2df617af..4605e623dfd 100644
--- a/source/blender/modifiers/intern/MOD_armature.c
+++ b/source/blender/modifiers/intern/MOD_armature.c
@@ -29,6 +29,7 @@
#include "BLT_translation.h"
#include "DNA_armature_types.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
@@ -65,7 +66,9 @@ static void initData(ModifierData *md)
{
ArmatureModifierData *amd = (ArmatureModifierData *)md;
- amd->deformflag = ARM_DEF_VGROUP;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(amd, modifier));
+
+ MEMCPY_STRUCT_AFTER(amd, DNA_struct_default_get(ArmatureModifierData), modifier);
}
static void copyData(const ModifierData *md, ModifierData *target, const int flag)
diff --git a/source/blender/modifiers/intern/MOD_array.c b/source/blender/modifiers/intern/MOD_array.c
index 70e557dd577..ac5cc2f101f 100644
--- a/source/blender/modifiers/intern/MOD_array.c
+++ b/source/blender/modifiers/intern/MOD_array.c
@@ -32,6 +32,7 @@
#include "BLT_translation.h"
#include "DNA_curve_types.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -63,19 +64,9 @@ static void initData(ModifierData *md)
{
ArrayModifierData *amd = (ArrayModifierData *)md;
- /* default to 2 duplicates distributed along the x-axis by an
- * offset of 1 object-width
- */
- amd->start_cap = amd->end_cap = amd->curve_ob = amd->offset_ob = NULL;
- amd->count = 2;
- zero_v3(amd->offset);
- amd->scale[0] = 1;
- amd->scale[1] = amd->scale[2] = 0;
- amd->length = 0;
- amd->merge_dist = 0.01;
- amd->fit_type = MOD_ARR_FIXEDCOUNT;
- amd->offset_type = MOD_ARR_OFF_RELATIVE;
- amd->flags = 0;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(amd, modifier));
+
+ MEMCPY_STRUCT_AFTER(amd, DNA_struct_default_get(ArrayModifierData), modifier);
/* Open the first subpanel by default, it corresspnds to Relative offset which is enabled too. */
md->ui_expand_flag = (1 << 0) | (1 << 1);
diff --git a/source/blender/modifiers/intern/MOD_bevel.c b/source/blender/modifiers/intern/MOD_bevel.c
index 407ba179ef8..71dde65fd17 100644
--- a/source/blender/modifiers/intern/MOD_bevel.c
+++ b/source/blender/modifiers/intern/MOD_bevel.c
@@ -30,6 +30,7 @@
#include "BLT_translation.h"
#include "DNA_curveprofile_types.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -63,22 +64,10 @@ static void initData(ModifierData *md)
{
BevelModifierData *bmd = (BevelModifierData *)md;
- bmd->value = 0.1f;
- bmd->res = 1;
- bmd->flags = 0;
- bmd->val_flags = MOD_BEVEL_AMT_OFFSET;
- bmd->lim_flags = 0;
- bmd->e_flags = 0;
- bmd->edge_flags = 0;
- bmd->face_str_mode = MOD_BEVEL_FACE_STRENGTH_NONE;
- bmd->miter_inner = MOD_BEVEL_MITER_SHARP;
- bmd->miter_outer = MOD_BEVEL_MITER_SHARP;
- bmd->affect_type = MOD_BEVEL_AFFECT_EDGES;
- bmd->spread = 0.1f;
- bmd->mat = -1;
- bmd->profile = 0.5f;
- bmd->bevel_angle = DEG2RADF(30.0f);
- bmd->defgrp_name[0] = '\0';
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(bmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(bmd, DNA_struct_default_get(BevelModifierData), modifier);
+
bmd->custom_profile = BKE_curveprofile_add(PROF_PRESET_LINE);
}
diff --git a/source/blender/modifiers/intern/MOD_boolean.c b/source/blender/modifiers/intern/MOD_boolean.c
index 4005b56880f..ca8a4a5da1f 100644
--- a/source/blender/modifiers/intern/MOD_boolean.c
+++ b/source/blender/modifiers/intern/MOD_boolean.c
@@ -35,6 +35,7 @@
#include "BLT_translation.h"
#include "DNA_collection_types.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -79,10 +80,9 @@ static void initData(ModifierData *md)
{
BooleanModifierData *bmd = (BooleanModifierData *)md;
- bmd->double_threshold = 1e-6f;
- bmd->operation = eBooleanModifierOp_Difference;
- bmd->solver = eBooleanModifierSolver_Exact;
- bmd->flag = eBooleanModifierFlag_Object;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(bmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(bmd, DNA_struct_default_get(BooleanModifierData), modifier);
}
static bool isDisabled(const struct Scene *UNUSED(scene),
diff --git a/source/blender/modifiers/intern/MOD_build.c b/source/blender/modifiers/intern/MOD_build.c
index ac6c28e24c9..931a20f84fc 100644
--- a/source/blender/modifiers/intern/MOD_build.c
+++ b/source/blender/modifiers/intern/MOD_build.c
@@ -29,6 +29,7 @@
#include "BLI_math_vector.h"
#include "BLI_rand.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -55,8 +56,9 @@ static void initData(ModifierData *md)
{
BuildModifierData *bmd = (BuildModifierData *)md;
- bmd->start = 1.0;
- bmd->length = 100.0;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(bmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(bmd, DNA_struct_default_get(BuildModifierData), modifier);
}
static bool dependsOnTime(ModifierData *UNUSED(md))
diff --git a/source/blender/modifiers/intern/MOD_cast.c b/source/blender/modifiers/intern/MOD_cast.c
index 00f4cd63b4e..38a754f9eeb 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),
diff --git a/source/blender/modifiers/intern/MOD_collision.c b/source/blender/modifiers/intern/MOD_collision.c
index d05b6327ec9..964ed20eb26 100644
--- a/source/blender/modifiers/intern/MOD_collision.c
+++ b/source/blender/modifiers/intern/MOD_collision.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"
@@ -62,16 +63,9 @@ static void initData(ModifierData *md)
{
CollisionModifierData *collmd = (CollisionModifierData *)md;
- collmd->x = NULL;
- collmd->xnew = NULL;
- collmd->current_x = NULL;
- collmd->current_xnew = NULL;
- collmd->current_v = NULL;
- collmd->time_x = collmd->time_xnew = -1000;
- collmd->mvert_num = 0;
- collmd->tri_num = 0;
- collmd->is_static = false;
- collmd->bvhtree = NULL;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(collmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(collmd, DNA_struct_default_get(CollisionModifierData), modifier);
}
static void freeData(ModifierData *md)
diff --git a/source/blender/modifiers/intern/MOD_correctivesmooth.c b/source/blender/modifiers/intern/MOD_correctivesmooth.c
index 0e6b393ece2..09fde4e6556 100644
--- a/source/blender/modifiers/intern/MOD_correctivesmooth.c
+++ b/source/blender/modifiers/intern/MOD_correctivesmooth.c
@@ -29,6 +29,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,8 +57,6 @@
#include "BLO_read_write.h"
-#include "BLI_strict_flags.h"
-
#include "DEG_depsgraph_query.h"
// #define DEBUG_TIME
@@ -74,20 +73,15 @@ static void initData(ModifierData *md)
{
CorrectiveSmoothModifierData *csmd = (CorrectiveSmoothModifierData *)md;
- csmd->bind_coords = NULL;
- csmd->bind_coords_num = 0;
-
- csmd->lambda = 0.5f;
- csmd->scale = 1.0f;
- csmd->repeat = 5;
- csmd->flag = 0;
- csmd->smooth_type = MOD_CORRECTIVESMOOTH_SMOOTH_SIMPLE;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(csmd, modifier));
- csmd->defgrp_name[0] = '\0';
+ MEMCPY_STRUCT_AFTER(csmd, DNA_struct_default_get(CorrectiveSmoothModifierData), modifier);
csmd->delta_cache.deltas = NULL;
}
+#include "BLI_strict_flags.h"
+
static void copyData(const ModifierData *md, ModifierData *target, const int flag)
{
const CorrectiveSmoothModifierData *csmd = (const CorrectiveSmoothModifierData *)md;
diff --git a/source/blender/modifiers/intern/MOD_curve.c b/source/blender/modifiers/intern/MOD_curve.c
index 7195071c705..a1443719d02 100644
--- a/source/blender/modifiers/intern/MOD_curve.c
+++ b/source/blender/modifiers/intern/MOD_curve.c
@@ -27,6 +27,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
@@ -60,7 +61,9 @@ static void initData(ModifierData *md)
{
CurveModifierData *cmd = (CurveModifierData *)md;
- cmd->defaxis = MOD_CURVE_POSX;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(cmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(cmd, DNA_struct_default_get(CurveModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),
diff --git a/source/blender/modifiers/intern/MOD_decimate.c b/source/blender/modifiers/intern/MOD_decimate.c
index f0bfb3cc230..3c037e25940 100644
--- a/source/blender/modifiers/intern/MOD_decimate.c
+++ b/source/blender/modifiers/intern/MOD_decimate.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"
@@ -63,9 +64,9 @@ static void initData(ModifierData *md)
{
DecimateModifierData *dmd = (DecimateModifierData *)md;
- dmd->percent = 1.0;
- dmd->angle = DEG2RADF(5.0f);
- dmd->defgrp_factor = 1.0;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(dmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(dmd, DNA_struct_default_get(DecimateModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),
diff --git a/source/blender/modifiers/intern/MOD_displace.c b/source/blender/modifiers/intern/MOD_displace.c
index f66a9c3bd4a..700592c6bc3 100644
--- a/source/blender/modifiers/intern/MOD_displace.c
+++ b/source/blender/modifiers/intern/MOD_displace.c
@@ -28,6 +28,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -68,11 +69,9 @@ static void initData(ModifierData *md)
{
DisplaceModifierData *dmd = (DisplaceModifierData *)md;
- dmd->texture = NULL;
- dmd->strength = 1;
- dmd->direction = MOD_DISP_DIR_NOR;
- dmd->midlevel = 0.5;
- dmd->space = MOD_DISP_SPACE_LOCAL;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(dmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(dmd, DNA_struct_default_get(DisplaceModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),
diff --git a/source/blender/modifiers/intern/MOD_dynamicpaint.c b/source/blender/modifiers/intern/MOD_dynamicpaint.c
index 91a43423478..a0a9934af9f 100644
--- a/source/blender/modifiers/intern/MOD_dynamicpaint.c
+++ b/source/blender/modifiers/intern/MOD_dynamicpaint.c
@@ -19,12 +19,14 @@
*/
#include <stddef.h>
+#include <string.h>
#include "BLI_listbase.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_dynamicpaint_types.h"
#include "DNA_mesh_types.h"
#include "DNA_object_force_types.h"
@@ -57,9 +59,9 @@ static void initData(ModifierData *md)
{
DynamicPaintModifierData *pmd = (DynamicPaintModifierData *)md;
- pmd->canvas = NULL;
- pmd->brush = NULL;
- pmd->type = MOD_DYNAMICPAINT_TYPE_CANVAS;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(pmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(pmd, DNA_struct_default_get(DynamicPaintModifierData), modifier);
}
static void copyData(const ModifierData *md, ModifierData *target, const int flag)
diff --git a/source/blender/modifiers/intern/MOD_edgesplit.c b/source/blender/modifiers/intern/MOD_edgesplit.c
index cc4fa4e7118..b28b21a9a34 100644
--- a/source/blender/modifiers/intern/MOD_edgesplit.c
+++ b/source/blender/modifiers/intern/MOD_edgesplit.c
@@ -32,6 +32,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
@@ -119,9 +120,9 @@ static void initData(ModifierData *md)
{
EdgeSplitModifierData *emd = (EdgeSplitModifierData *)md;
- /* default to 30-degree split angle, sharpness from both angle & flag */
- emd->split_angle = DEG2RADF(30.0f);
- emd->flags = MOD_EDGESPLIT_FROMANGLE | MOD_EDGESPLIT_FROMFLAG;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(emd, modifier));
+
+ MEMCPY_STRUCT_AFTER(emd, DNA_struct_default_get(EdgeSplitModifierData), modifier);
}
static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *UNUSED(ctx), Mesh *mesh)
diff --git a/source/blender/modifiers/intern/MOD_explode.c b/source/blender/modifiers/intern/MOD_explode.c
index 1f44941d625..bdfc0c0ef59 100644
--- a/source/blender/modifiers/intern/MOD_explode.c
+++ b/source/blender/modifiers/intern/MOD_explode.c
@@ -30,6 +30,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -64,8 +65,9 @@ static void initData(ModifierData *md)
{
ExplodeModifierData *emd = (ExplodeModifierData *)md;
- emd->facepa = NULL;
- emd->flag |= eExplodeFlag_Unborn + eExplodeFlag_Alive + eExplodeFlag_Dead;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(emd, modifier));
+
+ MEMCPY_STRUCT_AFTER(emd, DNA_struct_default_get(ExplodeModifierData), modifier);
}
static void freeData(ModifierData *md)
{
diff --git a/source/blender/modifiers/intern/MOD_hook.c b/source/blender/modifiers/intern/MOD_hook.c
index f13c8087270..4767dabc7ed 100644
--- a/source/blender/modifiers/intern/MOD_hook.c
+++ b/source/blender/modifiers/intern/MOD_hook.c
@@ -28,6 +28,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -63,10 +64,11 @@ static void initData(ModifierData *md)
{
HookModifierData *hmd = (HookModifierData *)md;
- hmd->force = 1.0;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(hmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(hmd, DNA_struct_default_get(HookModifierData), modifier);
+
hmd->curfalloff = BKE_curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
- hmd->falloff_type = eHook_Falloff_Smooth;
- hmd->flag = 0;
}
static void copyData(const ModifierData *md, ModifierData *target, const int flag)
diff --git a/source/blender/modifiers/intern/MOD_laplaciandeform.c b/source/blender/modifiers/intern/MOD_laplaciandeform.c
index 94b50a35e17..5f9befbcb82 100644
--- a/source/blender/modifiers/intern/MOD_laplaciandeform.c
+++ b/source/blender/modifiers/intern/MOD_laplaciandeform.c
@@ -31,6 +31,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_screen_types.h"
@@ -731,12 +732,10 @@ static void LaplacianDeformModifier_do(
static void initData(ModifierData *md)
{
LaplacianDeformModifierData *lmd = (LaplacianDeformModifierData *)md;
- lmd->anchor_grp_name[0] = '\0';
- lmd->total_verts = 0;
- lmd->repeat = 1;
- lmd->vertexco = NULL;
- lmd->cache_system = NULL;
- lmd->flag = 0;
+
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(lmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(lmd, DNA_struct_default_get(LaplacianDeformModifierData), modifier);
}
static void copyData(const ModifierData *md, ModifierData *target, const int flag)
diff --git a/source/blender/modifiers/intern/MOD_laplaciansmooth.c b/source/blender/modifiers/intern/MOD_laplaciansmooth.c
index e7fc031840d..76f42d2f3ec 100644
--- a/source/blender/modifiers/intern/MOD_laplaciansmooth.c
+++ b/source/blender/modifiers/intern/MOD_laplaciansmooth.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"
@@ -497,12 +498,10 @@ static void laplaciansmoothModifier_do(
static void init_data(ModifierData *md)
{
LaplacianSmoothModifierData *smd = (LaplacianSmoothModifierData *)md;
- smd->lambda = 0.01f;
- smd->lambda_border = 0.01f;
- smd->repeat = 1;
- smd->flag = MOD_LAPLACIANSMOOTH_X | MOD_LAPLACIANSMOOTH_Y | MOD_LAPLACIANSMOOTH_Z |
- MOD_LAPLACIANSMOOTH_PRESERVE_VOLUME | MOD_LAPLACIANSMOOTH_NORMALIZED;
- smd->defgrp_name[0] = '\0';
+
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(smd, modifier));
+
+ MEMCPY_STRUCT_AFTER(smd, DNA_struct_default_get(LaplacianSmoothModifierData), modifier);
}
static bool is_disabled(const struct Scene *UNUSED(scene),
diff --git a/source/blender/modifiers/intern/MOD_lattice.c b/source/blender/modifiers/intern/MOD_lattice.c
index db75ca295ba..c024777b03f 100644
--- a/source/blender/modifiers/intern/MOD_lattice.c
+++ b/source/blender/modifiers/intern/MOD_lattice.c
@@ -27,6 +27,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
@@ -55,7 +56,10 @@
static void initData(ModifierData *md)
{
LatticeModifierData *lmd = (LatticeModifierData *)md;
- lmd->strength = 1.0f;
+
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(lmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(lmd, DNA_struct_default_get(LatticeModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),
diff --git a/source/blender/modifiers/intern/MOD_mask.cc b/source/blender/modifiers/intern/MOD_mask.cc
index 2bf1c58b126..140a23d6ca2 100644
--- a/source/blender/modifiers/intern/MOD_mask.cc
+++ b/source/blender/modifiers/intern/MOD_mask.cc
@@ -31,6 +31,7 @@
#include "BLT_translation.h"
#include "DNA_armature_types.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@@ -68,6 +69,15 @@ using blender::MutableSpan;
using blender::Span;
using blender::Vector;
+static void initData(ModifierData *md)
+{
+ MaskModifierData *mmd = (MaskModifierData *)md;
+
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(mmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(mmd, DNA_struct_default_get(MaskModifierData), modifier);
+}
+
static void requiredDataMask(Object *UNUSED(ob),
ModifierData *UNUSED(md),
CustomData_MeshMasks *r_cddata_masks)
@@ -455,7 +465,7 @@ ModifierTypeInfo modifierType_Mask = {
/* modifyPointCloud */ NULL,
/* modifyVolume */ NULL,
- /* initData */ NULL,
+ /* initData */ initData,
/* requiredDataMask */ requiredDataMask,
/* freeData */ NULL,
/* isDisabled */ isDisabled,
diff --git a/source/blender/modifiers/intern/MOD_meshcache.c b/source/blender/modifiers/intern/MOD_meshcache.c
index aa6f876b1c6..58717559a50 100644
--- a/source/blender/modifiers/intern/MOD_meshcache.c
+++ b/source/blender/modifiers/intern/MOD_meshcache.c
@@ -28,6 +28,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -57,16 +58,9 @@ static void initData(ModifierData *md)
{
MeshCacheModifierData *mcmd = (MeshCacheModifierData *)md;
- mcmd->flag = 0;
- mcmd->type = MOD_MESHCACHE_TYPE_MDD;
- mcmd->interp = MOD_MESHCACHE_INTERP_LINEAR;
- mcmd->frame_scale = 1.0f;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(mcmd, modifier));
- mcmd->factor = 1.0f;
-
- /* (Y, Z). Blender default */
- mcmd->forward_axis = 1;
- mcmd->up_axis = 2;
+ MEMCPY_STRUCT_AFTER(mcmd, DNA_struct_default_get(MeshCacheModifierData), modifier);
}
static bool dependsOnTime(ModifierData *md)
diff --git a/source/blender/modifiers/intern/MOD_meshdeform.c b/source/blender/modifiers/intern/MOD_meshdeform.c
index 48552cfb9a4..7e086e01cd4 100644
--- a/source/blender/modifiers/intern/MOD_meshdeform.c
+++ b/source/blender/modifiers/intern/MOD_meshdeform.c
@@ -28,6 +28,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -68,7 +69,9 @@ static void initData(ModifierData *md)
{
MeshDeformModifierData *mmd = (MeshDeformModifierData *)md;
- mmd->gridsize = 5;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(mmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(mmd, DNA_struct_default_get(MeshDeformModifierData), modifier);
}
static void freeData(ModifierData *md)
diff --git a/source/blender/modifiers/intern/MOD_meshsequencecache.c b/source/blender/modifiers/intern/MOD_meshsequencecache.c
index eca20c088ce..48b1a4c56a8 100644
--- a/source/blender/modifiers/intern/MOD_meshsequencecache.c
+++ b/source/blender/modifiers/intern/MOD_meshsequencecache.c
@@ -26,6 +26,7 @@
#include "BLT_translation.h"
#include "DNA_cachefile_types.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@@ -64,15 +65,9 @@ static void initData(ModifierData *md)
{
MeshSeqCacheModifierData *mcmd = (MeshSeqCacheModifierData *)md;
- mcmd->cache_file = NULL;
- mcmd->object_path[0] = '\0';
- mcmd->read_flag = MOD_MESHSEQ_READ_ALL | MOD_MESHSEQ_INTERPOLATE_VERTICES;
- mcmd->velocity_scale = 1.0f;
- mcmd->vertex_velocities = NULL;
- mcmd->num_vertices = 0;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(mcmd, modifier));
- mcmd->reader = NULL;
- mcmd->reader_object_path[0] = '\0';
+ MEMCPY_STRUCT_AFTER(mcmd, DNA_struct_default_get(MeshSeqCacheModifierData), modifier);
}
static void copyData(const ModifierData *md, ModifierData *target, const int flag)
diff --git a/source/blender/modifiers/intern/MOD_mirror.c b/source/blender/modifiers/intern/MOD_mirror.c
index 5098ea37333..fe2ed278230 100644
--- a/source/blender/modifiers/intern/MOD_mirror.c
+++ b/source/blender/modifiers/intern/MOD_mirror.c
@@ -25,6 +25,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -59,9 +60,9 @@ static void initData(ModifierData *md)
{
MirrorModifierData *mmd = (MirrorModifierData *)md;
- mmd->flag |= (MOD_MIR_AXIS_X | MOD_MIR_VGROUP);
- mmd->tolerance = 0.001;
- mmd->mirror_ob = NULL;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(mmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(mmd, DNA_struct_default_get(MirrorModifierData), modifier);
}
static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)
diff --git a/source/blender/modifiers/intern/MOD_multires.c b/source/blender/modifiers/intern/MOD_multires.c
index 397e4e2c698..f1c07b47c26 100644
--- a/source/blender/modifiers/intern/MOD_multires.c
+++ b/source/blender/modifiers/intern/MOD_multires.c
@@ -29,6 +29,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
@@ -68,14 +69,9 @@ static void initData(ModifierData *md)
{
MultiresModifierData *mmd = (MultiresModifierData *)md;
- mmd->lvl = 0;
- mmd->sculptlvl = 0;
- mmd->renderlvl = 0;
- mmd->totlvl = 0;
- mmd->uv_smooth = SUBSURF_UV_SMOOTH_PRESERVE_CORNERS;
- mmd->boundary_smooth = SUBSURF_BOUNDARY_SMOOTH_ALL;
- mmd->quality = 4;
- mmd->flags |= (eMultiresModifierFlag_UseCrease | eMultiresModifierFlag_ControlEdges);
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(mmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(mmd, DNA_struct_default_get(MultiresModifierData), modifier);
/* Open subdivision panels by default. */
md->ui_expand_flag = (1 << 0) | (1 << 1);
diff --git a/source/blender/modifiers/intern/MOD_normal_edit.c b/source/blender/modifiers/intern/MOD_normal_edit.c
index 691d3741b12..a10a636b268 100644
--- a/source/blender/modifiers/intern/MOD_normal_edit.c
+++ b/source/blender/modifiers/intern/MOD_normal_edit.c
@@ -29,6 +29,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -646,11 +647,9 @@ static void initData(ModifierData *md)
{
NormalEditModifierData *enmd = (NormalEditModifierData *)md;
- enmd->mode = MOD_NORMALEDIT_MODE_RADIAL;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(enmd, modifier));
- enmd->mix_mode = MOD_NORMALEDIT_MIX_COPY;
- enmd->mix_factor = 1.0f;
- enmd->mix_limit = M_PI;
+ MEMCPY_STRUCT_AFTER(enmd, DNA_struct_default_get(NormalEditModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),
diff --git a/source/blender/modifiers/intern/MOD_ocean.c b/source/blender/modifiers/intern/MOD_ocean.c
index b9f05d0cdd3..13a317a0f3c 100644
--- a/source/blender/modifiers/intern/MOD_ocean.c
+++ b/source/blender/modifiers/intern/MOD_ocean.c
@@ -30,6 +30,7 @@
#include "BLT_translation.h"
#include "DNA_customdata_types.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@@ -87,54 +88,17 @@ static void initData(ModifierData *md)
#ifdef WITH_OCEANSIM
OceanModifierData *omd = (OceanModifierData *)md;
- /* Render resolution */
- omd->resolution = 7;
- /* Display resolution for the non-render case */
- omd->viewport_resolution = 7;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(omd, modifier));
- omd->spatial_size = 50;
-
- omd->wave_alignment = 0.0;
- omd->wind_velocity = 30.0;
-
- omd->damp = 0.5;
- omd->smallest_wave = 0.01;
- omd->wave_direction = 0.0;
- omd->depth = 200.0;
-
- omd->wave_scale = 1.0;
-
- omd->chop_amount = 1.0;
-
- omd->foam_coverage = 0.0;
-
- omd->seed = 0;
- omd->time = 1.0;
-
- omd->spectrum = MOD_OCEAN_SPECTRUM_PHILLIPS;
- omd->sharpen_peak_jonswap = 0.0f;
- omd->fetch_jonswap = 120.0f;
-
- omd->size = 1.0;
- omd->repeat_x = 1;
- omd->repeat_y = 1;
+ MEMCPY_STRUCT_AFTER(omd, DNA_struct_default_get(OceanModifierData), modifier);
BKE_modifier_path_init(omd->cachepath, sizeof(omd->cachepath), "cache_ocean");
- omd->cached = 0;
- omd->bakestart = 1;
- omd->bakeend = 250;
- omd->oceancache = NULL;
- omd->foam_fade = 0.98;
- omd->foamlayername[0] = '\0'; /* layer name empty by default */
- omd->spraylayername[0] = '\0'; /* layer name empty by default */
-
omd->ocean = BKE_ocean_add();
BKE_ocean_init_from_modifier(omd->ocean, omd, omd->viewport_resolution);
simulate_ocean_modifier(omd);
#else /* WITH_OCEANSIM */
- /* unused */
- (void)md;
+ UNUSED_VARS(md);
#endif /* WITH_OCEANSIM */
}
diff --git a/source/blender/modifiers/intern/MOD_particleinstance.c b/source/blender/modifiers/intern/MOD_particleinstance.c
index 1f9b7227caf..d5c1eb6d3be 100644
--- a/source/blender/modifiers/intern/MOD_particleinstance.c
+++ b/source/blender/modifiers/intern/MOD_particleinstance.c
@@ -32,6 +32,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_screen_types.h"
@@ -61,17 +62,9 @@ static void initData(ModifierData *md)
{
ParticleInstanceModifierData *pimd = (ParticleInstanceModifierData *)md;
- pimd->flag = eParticleInstanceFlag_Parents | eParticleInstanceFlag_Unborn |
- eParticleInstanceFlag_Alive | eParticleInstanceFlag_Dead;
- pimd->psys = 1;
- pimd->position = 1.0f;
- pimd->axis = 2;
- pimd->space = eParticleInstanceSpace_World;
- pimd->particle_amount = 1.0f;
- pimd->particle_offset = 0.0f;
-
- STRNCPY(pimd->index_layer_name, "");
- STRNCPY(pimd->value_layer_name, "");
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(pimd, modifier));
+
+ MEMCPY_STRUCT_AFTER(pimd, DNA_struct_default_get(ParticleInstanceModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),
diff --git a/source/blender/modifiers/intern/MOD_particlesystem.c b/source/blender/modifiers/intern/MOD_particlesystem.c
index 92ab084097b..f9f186297fa 100644
--- a/source/blender/modifiers/intern/MOD_particlesystem.c
+++ b/source/blender/modifiers/intern/MOD_particlesystem.c
@@ -22,11 +22,13 @@
*/
#include <stddef.h>
+#include <string.h>
#include "BLI_utildefines.h"
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_material_types.h"
#include "DNA_mesh_types.h"
#include "DNA_screen_types.h"
@@ -54,10 +56,10 @@
static void initData(ModifierData *md)
{
ParticleSystemModifierData *psmd = (ParticleSystemModifierData *)md;
- psmd->psys = NULL;
- psmd->mesh_final = NULL;
- psmd->mesh_original = NULL;
- psmd->totdmvert = psmd->totdmedge = psmd->totdmface = 0;
+
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(psmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(psmd, DNA_struct_default_get(ParticleSystemModifierData), modifier);
}
static void freeData(ModifierData *md)
{
diff --git a/source/blender/modifiers/intern/MOD_remesh.c b/source/blender/modifiers/intern/MOD_remesh.c
index fe99cec23f9..6c2a358f8d3 100644
--- a/source/blender/modifiers/intern/MOD_remesh.c
+++ b/source/blender/modifiers/intern/MOD_remesh.c
@@ -29,6 +29,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@@ -63,14 +64,9 @@ static void initData(ModifierData *md)
{
RemeshModifierData *rmd = (RemeshModifierData *)md;
- rmd->scale = 0.9;
- rmd->depth = 4;
- rmd->hermite_num = 1;
- rmd->flag = MOD_REMESH_FLOOD_FILL;
- rmd->mode = MOD_REMESH_VOXEL;
- rmd->threshold = 1;
- rmd->voxel_size = 0.1f;
- rmd->adaptivity = 0.0f;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(rmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(rmd, DNA_struct_default_get(RemeshModifierData), modifier);
}
#ifdef WITH_MOD_REMESH
diff --git a/source/blender/modifiers/intern/MOD_screw.c b/source/blender/modifiers/intern/MOD_screw.c
index 8c9af71c35b..d9ac54ebf11 100644
--- a/source/blender/modifiers/intern/MOD_screw.c
+++ b/source/blender/modifiers/intern/MOD_screw.c
@@ -31,6 +31,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -54,6 +55,15 @@
#include "MOD_modifiertypes.h"
#include "MOD_ui_common.h"
+static void initData(ModifierData *md)
+{
+ ScrewModifierData *ltmd = (ScrewModifierData *)md;
+
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(ltmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(ltmd, DNA_struct_default_get(ScrewModifierData), modifier);
+}
+
#include "BLI_strict_flags.h"
/* used for gathering edge connectivity */
@@ -177,19 +187,6 @@ static Mesh *mesh_remove_doubles_on_axis(Mesh *result,
return result;
}
-static void initData(ModifierData *md)
-{
- ScrewModifierData *ltmd = (ScrewModifierData *)md;
- ltmd->ob_axis = NULL;
- ltmd->angle = (float)(M_PI * 2.0);
- ltmd->axis = 2;
- ltmd->flag = MOD_SCREW_SMOOTH_SHADING;
- ltmd->steps = 16;
- ltmd->render_steps = 16;
- ltmd->iter = 1;
- ltmd->merge_dist = 0.01f;
-}
-
static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *meshData)
{
Mesh *mesh = meshData;
diff --git a/source/blender/modifiers/intern/MOD_shrinkwrap.c b/source/blender/modifiers/intern/MOD_shrinkwrap.c
index 1f1aa375535..14014eab965 100644
--- a/source/blender/modifiers/intern/MOD_shrinkwrap.c
+++ b/source/blender/modifiers/intern/MOD_shrinkwrap.c
@@ -27,6 +27,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
@@ -56,12 +57,10 @@ static bool dependsOnNormals(ModifierData *md);
static void initData(ModifierData *md)
{
ShrinkwrapModifierData *smd = (ShrinkwrapModifierData *)md;
- smd->shrinkType = MOD_SHRINKWRAP_NEAREST_SURFACE;
- smd->shrinkOpts = MOD_SHRINKWRAP_PROJECT_ALLOW_POS_DIR;
- smd->keepDist = 0.0f;
- smd->target = NULL;
- smd->auxTarget = NULL;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(smd, modifier));
+
+ MEMCPY_STRUCT_AFTER(smd, DNA_struct_default_get(ShrinkwrapModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),
diff --git a/source/blender/modifiers/intern/MOD_simpledeform.c b/source/blender/modifiers/intern/MOD_simpledeform.c
index 456a686ebbb..00fca23299c 100644
--- a/source/blender/modifiers/intern/MOD_simpledeform.c
+++ b/source/blender/modifiers/intern/MOD_simpledeform.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"
@@ -378,14 +379,9 @@ static void initData(ModifierData *md)
{
SimpleDeformModifierData *smd = (SimpleDeformModifierData *)md;
- smd->mode = MOD_SIMPLEDEFORM_MODE_TWIST;
- smd->axis = 0;
- smd->deform_axis = 0;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(smd, modifier));
- smd->origin = NULL;
- smd->factor = DEG2RADF(45.0f);
- smd->limit[0] = 0.0f;
- smd->limit[1] = 1.0f;
+ MEMCPY_STRUCT_AFTER(smd, DNA_struct_default_get(SimpleDeformModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),
diff --git a/source/blender/modifiers/intern/MOD_simulation.cc b/source/blender/modifiers/intern/MOD_simulation.cc
index 63632c76584..8dc9a924981 100644
--- a/source/blender/modifiers/intern/MOD_simulation.cc
+++ b/source/blender/modifiers/intern/MOD_simulation.cc
@@ -32,6 +32,7 @@
#include "BLI_string.h"
#include "BLI_utildefines.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@@ -64,6 +65,15 @@
using blender::float3;
+static void initData(ModifierData *md)
+{
+ SimulationModifierData *smd = (SimulationModifierData *)md;
+
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(smd, modifier));
+
+ MEMCPY_STRUCT_AFTER(smd, DNA_struct_default_get(SimulationModifierData), modifier);
+}
+
static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
{
SimulationModifierData *smd = reinterpret_cast<SimulationModifierData *>(md);
@@ -201,7 +211,7 @@ ModifierTypeInfo modifierType_Simulation = {
/* modifyPointCloud */ modifyPointCloud,
/* modifyVolume */ NULL,
- /* initData */ NULL,
+ /* initData */ initData,
/* requiredDataMask */ NULL,
/* freeData */ freeData,
/* isDisabled */ isDisabled,
diff --git a/source/blender/modifiers/intern/MOD_skin.c b/source/blender/modifiers/intern/MOD_skin.c
index 42e3fba285c..16d92f8ac32 100644
--- a/source/blender/modifiers/intern/MOD_skin.c
+++ b/source/blender/modifiers/intern/MOD_skin.c
@@ -63,6 +63,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@@ -1925,12 +1926,12 @@ static void initData(ModifierData *md)
{
SkinModifierData *smd = (SkinModifierData *)md;
- /* Enable in editmode by default */
- md->mode |= eModifierMode_Editmode;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(smd, modifier));
+
+ MEMCPY_STRUCT_AFTER(smd, DNA_struct_default_get(SkinModifierData), modifier);
- smd->branch_smoothing = 0;
- smd->flag = 0;
- smd->symmetry_axes = MOD_SKIN_SYMM_X;
+ /* Enable in editmode by default. */
+ md->mode |= eModifierMode_Editmode;
}
static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *UNUSED(ctx), Mesh *mesh)
diff --git a/source/blender/modifiers/intern/MOD_smooth.c b/source/blender/modifiers/intern/MOD_smooth.c
index 7076721d8ce..f8e76d92615 100644
--- a/source/blender/modifiers/intern/MOD_smooth.c
+++ b/source/blender/modifiers/intern/MOD_smooth.c
@@ -29,6 +29,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_screen_types.h"
@@ -55,10 +56,9 @@ static void initData(ModifierData *md)
{
SmoothModifierData *smd = (SmoothModifierData *)md;
- smd->fac = 0.5f;
- smd->repeat = 1;
- smd->flag = MOD_SMOOTH_X | MOD_SMOOTH_Y | MOD_SMOOTH_Z;
- smd->defgrp_name[0] = '\0';
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(smd, modifier));
+
+ MEMCPY_STRUCT_AFTER(smd, DNA_struct_default_get(SmoothModifierData), modifier);
}
static bool isDisabled(const struct Scene *UNUSED(scene),
diff --git a/source/blender/modifiers/intern/MOD_solidify.c b/source/blender/modifiers/intern/MOD_solidify.c
index 82a293bce5c..17fde2c9b0e 100644
--- a/source/blender/modifiers/intern/MOD_solidify.c
+++ b/source/blender/modifiers/intern/MOD_solidify.c
@@ -27,6 +27,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_screen_types.h"
@@ -44,10 +45,6 @@
#include "MOD_solidify_util.h"
-#ifdef __GNUC__
-# pragma GCC diagnostic error "-Wsign-conversion"
-#endif
-
static bool dependsOnNormals(ModifierData *md)
{
const SolidifyModifierData *smd = (SolidifyModifierData *)md;
@@ -60,16 +57,16 @@ static bool dependsOnNormals(ModifierData *md)
static void initData(ModifierData *md)
{
SolidifyModifierData *smd = (SolidifyModifierData *)md;
- smd->offset = 0.01f;
- smd->offset_fac = -1.0f;
- smd->flag = MOD_SOLIDIFY_RIM;
- smd->mode = MOD_SOLIDIFY_MODE_EXTRUDE;
- smd->nonmanifold_offset_mode = MOD_SOLIDIFY_NONMANIFOLD_OFFSET_MODE_CONSTRAINTS;
- smd->nonmanifold_boundary_mode = MOD_SOLIDIFY_NONMANIFOLD_BOUNDARY_MODE_NONE;
- smd->merge_tolerance = 0.0001f;
- smd->bevel_convex = 0.0f;
+
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(smd, modifier));
+
+ MEMCPY_STRUCT_AFTER(smd, DNA_struct_default_get(SolidifyModifierData), modifier);
}
+#ifdef __GNUC__
+# pragma GCC diagnostic error "-Wsign-conversion"
+#endif
+
static void requiredDataMask(Object *UNUSED(ob),
ModifierData *md,
CustomData_MeshMasks *r_cddata_masks)
diff --git a/source/blender/modifiers/intern/MOD_subsurf.c b/source/blender/modifiers/intern/MOD_subsurf.c
index 2fb98bd1def..f730ccf5e29 100644
--- a/source/blender/modifiers/intern/MOD_subsurf.c
+++ b/source/blender/modifiers/intern/MOD_subsurf.c
@@ -30,6 +30,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
@@ -71,12 +72,9 @@ static void initData(ModifierData *md)
{
SubsurfModifierData *smd = (SubsurfModifierData *)md;
- smd->levels = 1;
- smd->renderLevels = 2;
- smd->uv_smooth = SUBSURF_UV_SMOOTH_PRESERVE_CORNERS;
- smd->boundary_smooth = SUBSURF_BOUNDARY_SMOOTH_ALL;
- smd->quality = 3;
- smd->flags |= (eSubsurfModifierFlag_UseCrease | eSubsurfModifierFlag_ControlEdges);
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(smd, modifier));
+
+ MEMCPY_STRUCT_AFTER(smd, DNA_struct_default_get(SubsurfModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),
diff --git a/source/blender/modifiers/intern/MOD_surface.c b/source/blender/modifiers/intern/MOD_surface.c
index 25499212bc5..3a702656138 100644
--- a/source/blender/modifiers/intern/MOD_surface.c
+++ b/source/blender/modifiers/intern/MOD_surface.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"
@@ -59,10 +60,9 @@ static void initData(ModifierData *md)
{
SurfaceModifierData *surmd = (SurfaceModifierData *)md;
- surmd->bvhtree = NULL;
- surmd->mesh = NULL;
- surmd->x = NULL;
- surmd->v = NULL;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(surmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(surmd, DNA_struct_default_get(SurfaceModifierData), modifier);
}
static void copyData(const ModifierData *md_src, ModifierData *md_dst, const int flag)
diff --git a/source/blender/modifiers/intern/MOD_surfacedeform.c b/source/blender/modifiers/intern/MOD_surfacedeform.c
index 8be95138511..7bd39126e44 100644
--- a/source/blender/modifiers/intern/MOD_surfacedeform.c
+++ b/source/blender/modifiers/intern/MOD_surfacedeform.c
@@ -26,6 +26,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -150,11 +151,10 @@ enum {
static void initData(ModifierData *md)
{
SurfaceDeformModifierData *smd = (SurfaceDeformModifierData *)md;
- smd->target = NULL;
- smd->verts = NULL;
- smd->flags = 0;
- smd->falloff = 4.0f;
- smd->strength = 1.0f;
+
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(smd, modifier));
+
+ MEMCPY_STRUCT_AFTER(smd, DNA_struct_default_get(SurfaceDeformModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),
diff --git a/source/blender/modifiers/intern/MOD_triangulate.c b/source/blender/modifiers/intern/MOD_triangulate.c
index 3b374948349..e65761a77be 100644
--- a/source/blender/modifiers/intern/MOD_triangulate.c
+++ b/source/blender/modifiers/intern/MOD_triangulate.c
@@ -18,12 +18,15 @@
* \ingroup modifiers
*/
+#include <string.h>
+
#include "MEM_guardedalloc.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -107,11 +110,12 @@ static void initData(ModifierData *md)
{
TriangulateModifierData *tmd = (TriangulateModifierData *)md;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(tmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(tmd, DNA_struct_default_get(TriangulateModifierData), modifier);
+
/* Enable in editmode by default */
md->mode |= eModifierMode_Editmode;
- tmd->quad_method = MOD_TRIANGULATE_QUAD_SHORTEDGE;
- tmd->ngon_method = MOD_TRIANGULATE_NGON_BEAUTY;
- tmd->min_vertices = 4;
}
static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *UNUSED(ctx), Mesh *mesh)
diff --git a/source/blender/modifiers/intern/MOD_uvproject.c b/source/blender/modifiers/intern/MOD_uvproject.c
index 6ebced29920..66d408a7e4d 100644
--- a/source/blender/modifiers/intern/MOD_uvproject.c
+++ b/source/blender/modifiers/intern/MOD_uvproject.c
@@ -31,6 +31,7 @@
#include "BLT_translation.h"
#include "DNA_camera_types.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -61,9 +62,9 @@ static void initData(ModifierData *md)
{
UVProjectModifierData *umd = (UVProjectModifierData *)md;
- umd->num_projectors = 1;
- umd->aspectx = umd->aspecty = 1.0f;
- umd->scalex = umd->scaley = 1.0f;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(umd, modifier));
+
+ MEMCPY_STRUCT_AFTER(umd, DNA_struct_default_get(UVProjectModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),
diff --git a/source/blender/modifiers/intern/MOD_uvwarp.c b/source/blender/modifiers/intern/MOD_uvwarp.c
index f0b0149a221..f70694d3148 100644
--- a/source/blender/modifiers/intern/MOD_uvwarp.c
+++ b/source/blender/modifiers/intern/MOD_uvwarp.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"
@@ -63,10 +64,10 @@ static void uv_warp_from_mat4_pair(float uv_dst[2],
static void initData(ModifierData *md)
{
UVWarpModifierData *umd = (UVWarpModifierData *)md;
- umd->axis_u = 0;
- umd->axis_v = 1;
- copy_v2_fl(umd->center, 0.5f);
- copy_v2_fl(umd->scale, 1.0f);
+
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(umd, modifier));
+
+ MEMCPY_STRUCT_AFTER(umd, DNA_struct_default_get(UVWarpModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),
diff --git a/source/blender/modifiers/intern/MOD_warp.c b/source/blender/modifiers/intern/MOD_warp.c
index a55714e3d5e..7eb1851e08b 100644
--- a/source/blender/modifiers/intern/MOD_warp.c
+++ b/source/blender/modifiers/intern/MOD_warp.c
@@ -28,6 +28,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -65,12 +66,11 @@ static void initData(ModifierData *md)
{
WarpModifierData *wmd = (WarpModifierData *)md;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(wmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(wmd, DNA_struct_default_get(WarpModifierData), modifier);
+
wmd->curfalloff = BKE_curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
- wmd->texture = NULL;
- wmd->strength = 1.0f;
- wmd->falloff_radius = 1.0f;
- wmd->falloff_type = eWarp_Falloff_Smooth;
- wmd->flag = 0;
}
static void copyData(const ModifierData *md, ModifierData *target, const int flag)
diff --git a/source/blender/modifiers/intern/MOD_wave.c b/source/blender/modifiers/intern/MOD_wave.c
index 580697486b3..3862b627a56 100644
--- a/source/blender/modifiers/intern/MOD_wave.c
+++ b/source/blender/modifiers/intern/MOD_wave.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"
@@ -63,21 +64,9 @@ static void initData(ModifierData *md)
{
WaveModifierData *wmd = (WaveModifierData *)md; // whadya know, moved here from Iraq
- wmd->flag |= (MOD_WAVE_X | MOD_WAVE_Y | MOD_WAVE_CYCL | MOD_WAVE_NORM_X | MOD_WAVE_NORM_Y |
- MOD_WAVE_NORM_Z);
-
- wmd->objectcenter = NULL;
- wmd->texture = NULL;
- wmd->map_object = NULL;
- wmd->height = 0.5f;
- wmd->width = 1.5f;
- wmd->speed = 0.25f;
- wmd->narrow = 1.5f;
- wmd->lifetime = 0.0f;
- wmd->damp = 10.0f;
- wmd->falloff = 0.0f;
- wmd->texmapping = MOD_DISP_MAP_LOCAL;
- wmd->defgrp_name[0] = 0;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(wmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(wmd, DNA_struct_default_get(WaveModifierData), modifier);
}
static bool dependsOnTime(ModifierData *UNUSED(md))
diff --git a/source/blender/modifiers/intern/MOD_weighted_normal.c b/source/blender/modifiers/intern/MOD_weighted_normal.c
index 2d8669be8e5..461217fb4cb 100644
--- a/source/blender/modifiers/intern/MOD_weighted_normal.c
+++ b/source/blender/modifiers/intern/MOD_weighted_normal.c
@@ -26,6 +26,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -686,10 +687,10 @@ static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *
static void initData(ModifierData *md)
{
WeightedNormalModifierData *wnmd = (WeightedNormalModifierData *)md;
- wnmd->mode = MOD_WEIGHTEDNORMAL_MODE_FACE;
- wnmd->weight = 50;
- wnmd->thresh = 1e-2f;
- wnmd->flag = 0;
+
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(wnmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(wnmd, DNA_struct_default_get(WeightedNormalModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),
diff --git a/source/blender/modifiers/intern/MOD_weightvgedit.c b/source/blender/modifiers/intern/MOD_weightvgedit.c
index e2a08f88ec1..147322180ae 100644
--- a/source/blender/modifiers/intern/MOD_weightvgedit.c
+++ b/source/blender/modifiers/intern/MOD_weightvgedit.c
@@ -21,6 +21,8 @@
* \ingroup modifiers
*/
+#include <string.h>
+
#include "BLI_utildefines.h"
#include "BLI_ghash.h"
@@ -30,6 +32,7 @@
#include "BLT_translation.h"
#include "DNA_color_types.h" /* CurveMapping. */
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@@ -67,19 +70,13 @@
static void initData(ModifierData *md)
{
WeightVGEditModifierData *wmd = (WeightVGEditModifierData *)md;
- wmd->edit_flags = 0;
- wmd->falloff_type = MOD_WVG_MAPPING_NONE;
- wmd->default_weight = 0.0f;
- wmd->cmap_curve = BKE_curvemapping_add(1, 0.0, 0.0, 1.0, 1.0);
- BKE_curvemapping_init(wmd->cmap_curve);
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(wmd, modifier));
- wmd->rem_threshold = 0.01f;
- wmd->add_threshold = 0.01f;
+ MEMCPY_STRUCT_AFTER(wmd, DNA_struct_default_get(WeightVGEditModifierData), modifier);
- wmd->mask_constant = 1.0f;
- wmd->mask_tex_use_channel = MOD_WVG_MASK_TEX_USE_INT; /* Use intensity by default. */
- wmd->mask_tex_mapping = MOD_DISP_MAP_LOCAL;
+ wmd->cmap_curve = BKE_curvemapping_add(1, 0.0, 0.0, 1.0, 1.0);
+ BKE_curvemapping_init(wmd->cmap_curve);
}
static void freeData(ModifierData *md)
diff --git a/source/blender/modifiers/intern/MOD_weightvgmix.c b/source/blender/modifiers/intern/MOD_weightvgmix.c
index 1e60afc2e84..2eb1003fe41 100644
--- a/source/blender/modifiers/intern/MOD_weightvgmix.c
+++ b/source/blender/modifiers/intern/MOD_weightvgmix.c
@@ -28,6 +28,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@@ -131,14 +132,9 @@ static void initData(ModifierData *md)
{
WeightVGMixModifierData *wmd = (WeightVGMixModifierData *)md;
- wmd->default_weight_a = 0.0f;
- wmd->default_weight_b = 0.0f;
- wmd->mix_mode = MOD_WVG_MIX_SET;
- wmd->mix_set = MOD_WVG_SET_AND;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(wmd, modifier));
- wmd->mask_constant = 1.0f;
- wmd->mask_tex_use_channel = MOD_WVG_MASK_TEX_USE_INT; /* Use intensity by default. */
- wmd->mask_tex_mapping = MOD_DISP_MAP_LOCAL;
+ MEMCPY_STRUCT_AFTER(wmd, DNA_struct_default_get(WeightVGMixModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),
diff --git a/source/blender/modifiers/intern/MOD_weightvgproximity.c b/source/blender/modifiers/intern/MOD_weightvgproximity.c
index 68a9ecac887..fb4b0dc93aa 100644
--- a/source/blender/modifiers/intern/MOD_weightvgproximity.c
+++ b/source/blender/modifiers/intern/MOD_weightvgproximity.c
@@ -31,6 +31,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@@ -316,15 +317,9 @@ static void initData(ModifierData *md)
{
WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData *)md;
- wmd->proximity_mode = MOD_WVG_PROXIMITY_OBJECT;
- wmd->proximity_flags = MOD_WVG_PROXIMITY_GEOM_VERTS;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(wmd, modifier));
- wmd->falloff_type = MOD_WVG_MAPPING_NONE;
-
- wmd->mask_constant = 1.0f;
- wmd->mask_tex_use_channel = MOD_WVG_MASK_TEX_USE_INT; /* Use intensity by default. */
- wmd->mask_tex_mapping = MOD_DISP_MAP_LOCAL;
- wmd->max_dist = 1.0f; /* vert arbitrary distance, but don't use 0 */
+ MEMCPY_STRUCT_AFTER(wmd, DNA_struct_default_get(WeightVGProximityModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),
diff --git a/source/blender/modifiers/intern/MOD_weld.c b/source/blender/modifiers/intern/MOD_weld.c
index 46e4f147e20..02bd890b205 100644
--- a/source/blender/modifiers/intern/MOD_weld.c
+++ b/source/blender/modifiers/intern/MOD_weld.c
@@ -42,6 +42,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@@ -1913,8 +1914,9 @@ static void initData(ModifierData *md)
{
WeldModifierData *wmd = (WeldModifierData *)md;
- wmd->merge_dist = 0.001f;
- wmd->defgrp_name[0] = '\0';
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(wmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(wmd, DNA_struct_default_get(WeldModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),
diff --git a/source/blender/modifiers/intern/MOD_wireframe.c b/source/blender/modifiers/intern/MOD_wireframe.c
index a24ea8b8b0f..8cf94f2ca08 100644
--- a/source/blender/modifiers/intern/MOD_wireframe.c
+++ b/source/blender/modifiers/intern/MOD_wireframe.c
@@ -24,6 +24,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
@@ -47,9 +48,10 @@
static void initData(ModifierData *md)
{
WireframeModifierData *wmd = (WireframeModifierData *)md;
- wmd->offset = 0.02f;
- wmd->flag = MOD_WIREFRAME_REPLACE | MOD_WIREFRAME_OFS_EVEN;
- wmd->crease_weight = 1.0f;
+
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(wmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(wmd, DNA_struct_default_get(WireframeModifierData), modifier);
}
static void requiredDataMask(Object *UNUSED(ob),