diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-05-23 11:26:17 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-05-23 16:30:00 +0300 |
commit | 028bce87173e704081517bd7a2a323648e8137ad (patch) | |
tree | df4488a1ef00d989c7dcc93a824b39073c84bf4a | |
parent | 352474ced8e1e7c34b08c20dafd594b92eda6f14 (diff) |
Depsgraph: Fix fake dependnecy cycle in proxies
Noticed when was looking into T64764, F7043663.
This is a weird case when proxy group is not a group, but is the
same as linked object.
Remove useless relation which was causing cycle, but had no functional
meaning.
Pair programming session with Brecht.
Reviewers: angavrilov, brecht
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D4928
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_relations.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc index ad78e90993d..c8821c3fa0b 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc @@ -639,12 +639,14 @@ void DepsgraphRelationBuilder::build_object(Base *base, Object *object) } /* Proxy object to copy from. */ if (object->proxy_from != NULL) { + /* Object is linked here (comes from the library). */ build_object(NULL, object->proxy_from); ComponentKey ob_transform_key(&object->proxy_from->id, NodeType::TRANSFORM); ComponentKey proxy_transform_key(&object->id, NodeType::TRANSFORM); add_relation(ob_transform_key, proxy_transform_key, "Proxy Transform"); } - if (object->proxy_group != NULL) { + if (object->proxy_group != NULL && object->proxy_group != object->proxy) { + /* Object is local here (local in .blend file, users interacts with it). */ build_object(NULL, object->proxy_group); OperationKey proxy_group_eval_key( &object->proxy_group->id, NodeType::TRANSFORM, OperationCode::TRANSFORM_EVAL); |