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:
Diffstat (limited to 'source/blender/blenkernel/intern/modifier.c')
-rw-r--r--source/blender/blenkernel/intern/modifier.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c
index 4d2f6971f64..f9a0d462ac0 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -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);