diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-03-20 18:35:23 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-03-20 18:37:15 +0300 |
commit | 099a41047882bbd835941e70c419290008ee35cd (patch) | |
tree | 024417dd079c0fb8b6cc8b83e8a12b1fd65a8542 /source/blender/depsgraph/intern/builder/deg_builder_nodes.cc | |
parent | c5fc861172879102034129ecbe653e91eeff5caf (diff) |
Depsgraph: Fix cycle with rigid body and Weight Proximity
The issue is a feedback loop with point cache reset operation.
Solved by introducing extra node which ensures object's transformation
is ready for simulator input. Allows to route relations without causing
a fake dependency cycle now.
Diffstat (limited to 'source/blender/depsgraph/intern/builder/deg_builder_nodes.cc')
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_nodes.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc index 09a79db2dbd..39806d22071 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc @@ -1072,8 +1072,11 @@ void DepsgraphNodeBuilder::build_rigidbody(Scene *scene) if (object->type != OB_MESH) { continue; } - /* 2) create operation for flushing results */ - /* object's transform component - where the rigidbody operation + add_operation_node(&object->id, + NodeType::TRANSFORM, + OperationCode::TRANSFORM_SIMULATION_INIT); + /* Create operation for flushing results. */ + /* Object's transform component - where the rigidbody operation * lives. */ add_operation_node(&object->id, NodeType::TRANSFORM, |