diff options
author | Martin Felke <martin.felke@googlemail.com> | 2016-04-05 20:58:20 +0300 |
---|---|---|
committer | Martin Felke <martin.felke@googlemail.com> | 2016-04-05 20:58:20 +0300 |
commit | 1e321b998c525d93972e9d9909067d3eae37698e (patch) | |
tree | 0ce1560250a9648cd337370a031287c3a9c8d208 /source/blender/blenkernel/intern/object.c | |
parent | a8ee74ed61a0a2e6fc981ee2cb6a9f6a9d7a156c (diff) | |
parent | 89f6987953ebad852942e719a41ace3b217ec59a (diff) |
Merge remote-tracking branch 'refs/remotes/origin/blender-v2.77-release' into fracture_modifier
Diffstat (limited to 'source/blender/blenkernel/intern/object.c')
-rw-r--r-- | source/blender/blenkernel/intern/object.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 08138b7ab78..d76f927571e 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -3651,6 +3651,17 @@ static bool object_moves_in_time(Object *object) return false; } +static bool object_deforms_in_time(Object *object) +{ + if (BKE_key_from_object(object) != NULL) { + return true; + } + if (!BLI_listbase_is_empty(&object->modifiers)) { + return true; + } + return object_moves_in_time(object); +} + static bool constructive_modifier_is_deform_modified(ModifierData *md) { /* TODO(sergey): Consider generalizing this a bit so all modifier logic @@ -3710,8 +3721,16 @@ int BKE_object_is_deform_modified(Scene *scene, Object *ob) int flag = 0; const bool is_modifier_animated = modifiers_has_animation_check(ob); - if (BKE_key_from_object(ob)) + if (BKE_key_from_object(ob)) { flag |= eModifierMode_Realtime | eModifierMode_Render; + } + + if (ob->type == OB_CURVE) { + Curve *cu = (Curve *)ob->data; + if (cu->taperobj != NULL && object_deforms_in_time(cu->taperobj)) { + flag |= eModifierMode_Realtime | eModifierMode_Render; + } + } /* cloth */ for (md = modifiers_getVirtualModifierList(ob, &virtualModifierData); |