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:
authorCampbell Barton <ideasman42@gmail.com>2013-12-21 21:35:52 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-12-21 21:37:26 +0400
commit158b4e61a050a25fec47a00797ab7db46fc3198c (patch)
tree8685bf78c15dc0b65477a5d6b7da29c40b599caa /source/blender/blenkernel/intern/modifier.c
parent87cc890aef53c4660448b1125dc0c40a187ae1f2 (diff)
Mesh Modifiers: refactor copying using a generic function
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);