[Bf-blender-cvs] [c080ca1b372] soc-2021-adaptive-cloth: modifier: adaptive_remesh: use dna defaults through initData

ishbosamiya noreply at git.blender.org
Mon Jul 26 08:17:41 CEST 2021


Commit: c080ca1b3728d48a132b789bf816959fdb98f890
Author: ishbosamiya
Date:   Wed Jul 21 23:19:59 2021 +0530
Branches: soc-2021-adaptive-cloth
https://developer.blender.org/rBc080ca1b3728d48a132b789bf816959fdb98f890

modifier: adaptive_remesh: use dna defaults through initData

Adding defaults for a new modifier is not as simple as just adding the
new structure to the defaults macro file. It needs to be copied over
to the ModifierData to actually use it.

===================================================================

M	source/blender/makesdna/intern/dna_defaults.c
M	source/blender/modifiers/intern/MOD_adaptive_remesh.cc

===================================================================

diff --git a/source/blender/makesdna/intern/dna_defaults.c b/source/blender/makesdna/intern/dna_defaults.c
index 2d55ea05867..96ee4103f63 100644
--- a/source/blender/makesdna/intern/dna_defaults.c
+++ b/source/blender/makesdna/intern/dna_defaults.c
@@ -238,6 +238,7 @@ SDNA_DEFAULT_DECL_STRUCT(Volume);
 SDNA_DEFAULT_DECL_STRUCT(World);
 
 /* DNA_modifier_defaults.h */
+SDNA_DEFAULT_DECL_STRUCT(AdaptiveRemeshModifierData);
 SDNA_DEFAULT_DECL_STRUCT(ArmatureModifierData);
 SDNA_DEFAULT_DECL_STRUCT(ArrayModifierData);
 SDNA_DEFAULT_DECL_STRUCT(BevelModifierData);
@@ -464,6 +465,7 @@ const void *DNA_default_table[SDNA_TYPE_MAX] = {
     SDNA_DEFAULT_DECL(World),
 
     /* DNA_modifier_defaults.h */
+    SDNA_DEFAULT_DECL(AdaptiveRemeshModifierData),
     SDNA_DEFAULT_DECL(ArmatureModifierData),
     SDNA_DEFAULT_DECL(ArrayModifierData),
     SDNA_DEFAULT_DECL(BevelModifierData),
diff --git a/source/blender/modifiers/intern/MOD_adaptive_remesh.cc b/source/blender/modifiers/intern/MOD_adaptive_remesh.cc
index fc1ad8ffa3e..1283ff4a520 100644
--- a/source/blender/modifiers/intern/MOD_adaptive_remesh.cc
+++ b/source/blender/modifiers/intern/MOD_adaptive_remesh.cc
@@ -21,12 +21,14 @@
  * \ingroup modifiers
  */
 
+#include "BLI_assert.h"
 #include "BLI_utildefines.h"
 
 #include "BKE_cloth_remesh.hh"
 #include "BKE_context.h"
 #include "BKE_modifier.h"
 
+#include "DNA_defaults.h"
 #include "DNA_modifier_types.h"
 #include "DNA_screen_types.h"
 
@@ -39,6 +41,14 @@
 
 using namespace blender::bke;
 
+static void initData(ModifierData *md)
+{
+  AdaptiveRemeshModifierData *armd = reinterpret_cast<AdaptiveRemeshModifierData *>(md);
+  BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(armd, modifier));
+
+  MEMCPY_STRUCT_AFTER(armd, DNA_struct_default_get(AdaptiveRemeshModifierData), modifier);
+}
+
 static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *UNUSED(ctx), Mesh *mesh)
 {
   AdaptiveRemeshModifierData *armd = (AdaptiveRemeshModifierData *)md;
@@ -131,7 +141,7 @@ ModifierTypeInfo modifierType_AdaptiveRemesh = {
     /* modifyHair */ nullptr,
     /* modifyGeometrySet */ nullptr,
 
-    /* initData */ nullptr,
+    /* initData */ initData,
     /* requiredDataMask */ nullptr,
     /* freeData */ nullptr,
     /* isDisabled */ nullptr,



More information about the Bf-blender-cvs mailing list