Commit: 24d34f2c2d05230b055b30b1059514d6359eb2a1 Author: Alexander Gavrilov Date: Sat Jan 9 21:19:37 2021 +0300 Branches: temp-angavrilov-constraints https://developer.blender.org/rB24d34f2c2d05230b055b30b1059514d6359eb2a1
Depsgraph: connect up drivers on various physics properties. It seems drivers for physics properties weren't being linked to evaluation nodes. This connects settings used by modifiers to Geometry; particle settings and rigid body data to Transform which seems to contain rigid body evaluation; and force fields to object Transform, since fields can exist on empties. Differential Revision: https://developer.blender.org/D10088 =================================================================== M source/blender/depsgraph/intern/builder/deg_builder_rna.cc =================================================================== diff --git a/source/blender/depsgraph/intern/builder/deg_builder_rna.cc b/source/blender/depsgraph/intern/builder/deg_builder_rna.cc index 4064058f231..ea2585443a2 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_rna.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_rna.cc @@ -280,7 +280,16 @@ RNANodeIdentifier RNANodeQuery::construct_node_identifier(const PointerRNA *ptr, RNA_struct_is_a(ptr->type, &RNA_LatticePoint) || RNA_struct_is_a(ptr->type, &RNA_MeshUVLoop) || RNA_struct_is_a(ptr->type, &RNA_MeshLoopColor) || - RNA_struct_is_a(ptr->type, &RNA_VertexGroupElement)) { + RNA_struct_is_a(ptr->type, &RNA_VertexGroupElement) || + ELEM(ptr->type, + &RNA_CollisionSettings, + &RNA_SoftBodySettings, + &RNA_ClothSettings, + &RNA_ClothCollisionSettings, + &RNA_DynamicPaintSurface, + &RNA_DynamicPaintCanvasSettings, + &RNA_DynamicPaintBrushSettings) || + (ELEM(ptr->type, &RNA_EffectorWeights) && GS(node_identifier.id->name) == ID_OB)) { /* When modifier is used as FROM operation this is likely referencing to * the property (for example, modifier's influence). * But when it's used as TO operation, this is geometry component. */ @@ -381,6 +390,20 @@ RNANodeIdentifier RNANodeQuery::construct_node_identifier(const PointerRNA *ptr, node_identifier.type = NodeType::GEOMETRY; return node_identifier; } + else if (GS(node_identifier.id->name) == ID_PA && + ELEM(ptr->type, &RNA_EffectorWeights, &RNA_FieldSettings, &RNA_ParticleSettings)) { + node_identifier.type = NodeType::PARTICLE_SETTINGS; + return node_identifier; + } + else if (GS(node_identifier.id->name) == ID_SCE && + ELEM(ptr->type, &RNA_EffectorWeights, &RNA_RigidBodyWorld)) { + node_identifier.type = NodeType::TRANSFORM; + return node_identifier; + } + else if (ELEM(ptr->type, &RNA_FieldSettings)) { + node_identifier.type = NodeType::TRANSFORM; + return node_identifier; + } if (prop != nullptr) { /* All unknown data effectively falls under "parameter evaluation". */ node_identifier.type = NodeType::PARAMETERS; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs