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>2015-06-02 13:23:01 +0300
committerCampbell Barton <ideasman42@gmail.com>2015-06-02 13:23:01 +0300
commit9454377c71f48ab5f10b523e002041c31324fbae (patch)
tree2ef0071e6496cd8ebac9fa20a2d94cc8f13025be /source/blender/blenkernel/intern
parent7724b26ab247d7a31dcaa2eb4f3a86cc61ff6efe (diff)
Fix T36994: Make link modifier fails (soft body)
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r--source/blender/blenkernel/intern/object.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index c1626ed68fe..939d6eed454 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -264,8 +264,6 @@ void BKE_object_link_modifiers(struct Object *ob_dst, const struct Object *ob_sr
if (ELEM(md->type,
eModifierType_Hook,
- eModifierType_Softbody,
- eModifierType_ParticleInstance,
eModifierType_Collision))
{
continue;
@@ -273,10 +271,15 @@ void BKE_object_link_modifiers(struct Object *ob_dst, const struct Object *ob_sr
if (!BKE_object_support_modifier_type_check(ob_dst, md->type))
continue;
-
- if (md->type == eModifierType_Skin) {
- /* ensure skin-node customdata exists */
- BKE_mesh_ensure_skin_customdata(ob_dst->data);
+
+ switch (md->type) {
+ case eModifierType_Softbody:
+ BKE_object_copy_softbody(ob_dst, ob_src);
+ break;
+ case eModifierType_Skin:
+ /* ensure skin-node customdata exists */
+ BKE_mesh_ensure_skin_customdata(ob_dst->data);
+ break;
}
nmd = modifier_new(md->type);
@@ -293,7 +296,6 @@ void BKE_object_link_modifiers(struct Object *ob_dst, const struct Object *ob_sr
}
BKE_object_copy_particlesystems(ob_dst, ob_src);
- BKE_object_copy_softbody(ob_dst, ob_src);
/* TODO: smoke?, cloth? */
}
@@ -1379,6 +1381,7 @@ void BKE_object_copy_particlesystems(Object *ob_dst, const Object *ob_src)
void BKE_object_copy_softbody(Object *ob_dst, const Object *ob_src)
{
if (ob_src->soft) {
+ ob_dst->softflag = ob_src->softflag;
ob_dst->soft = copy_softbody(ob_src->soft, false);
}
}