Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2019-03-29 12:27:57 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2019-03-29 12:27:57 +0300
commit1def03d797fcba6f01d17596e9950e727e4b3037 (patch)
tree1aa7d795b43047d9f32f22af32ecd1fec5f2b3c3 /source/blender/depsgraph
parent9f55beb971297cd3fcfd043bf4a0b5d2a5742398 (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')
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_relations.cc9
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) {