[Bf-blender-cvs] [1def03d797f] master: Fix T62938: Rigid body crash with surface effector

Sergey Sharybin noreply at git.blender.org
Fri Mar 29 10:29:13 CET 2019


Commit: 1def03d797fcba6f01d17596e9950e727e4b3037
Author: Sergey Sharybin
Date:   Fri Mar 29 10:27:57 2019 +0100
Branches: master
https://developer.blender.org/rB1def03d797fcba6f01d17596e9950e727e4b3037

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.

===================================================================

M	source/blender/depsgraph/intern/builder/deg_builder_relations.cc

===================================================================

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) {



More information about the Bf-blender-cvs mailing list