[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