From 1def03d797fcba6f01d17596e9950e727e4b3037 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 29 Mar 2019 10:27:57 +0100 Subject: 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. --- source/blender/depsgraph/intern/builder/deg_builder_relations.cc | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'source/blender/depsgraph') 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) { -- cgit v1.2.3