diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-03-29 12:27:57 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-03-29 12:27:57 +0300 |
commit | 1def03d797fcba6f01d17596e9950e727e4b3037 (patch) | |
tree | 1aa7d795b43047d9f32f22af32ecd1fec5f2b3c3 /source/blender/depsgraph/intern | |
parent | 9f55beb971297cd3fcfd043bf4a0b5d2a5742398 (diff) |
Fix T62938: Rigid body crash with surface effector
Missing dependency graph relation from geometry to simulation,
which made simulation to use evaluated mesh while it is being
evaluated.
Diffstat (limited to 'source/blender/depsgraph/intern')
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_relations.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc index dd8dc537c30..489b688eaaa 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc @@ -1738,6 +1738,15 @@ void DepsgraphRelationBuilder::build_rigidbody(Scene *scene) ComponentKey effector_transform_key( &effector_relation->ob->id, NodeType::TRANSFORM); add_relation(effector_transform_key, rb_init_key, "RigidBody Field"); + if (effector_relation->pd != NULL) { + const short shape = effector_relation->pd->shape; + if (ELEM(shape, PFIELD_SHAPE_SURFACE, PFIELD_SHAPE_POINTS)) { + ComponentKey effector_geometry_key( + &effector_relation->ob->id, NodeType::GEOMETRY); + add_relation( + effector_geometry_key, rb_init_key, "RigidBody Field"); + } + } } /* Objects. */ if (rbw->group != NULL) { |