From 263efb0b9a736a1529d8c6fce37e56bdb8d7866b Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Mon, 29 Jan 2018 15:06:44 +0100 Subject: [PATCH] Depsgraph: Correction for previous fix Original fix only worked when there is one custom property. --- .../intern/builder/deg_builder_nodes_rig.cc | 1 + .../intern/builder/deg_builder_relations.cc | 8 -------- .../intern/builder/deg_builder_relations_rig.cc | 15 +++++++++++++++ 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc index 177a0ec4358..29cd72c13fd 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc @@ -274,6 +274,7 @@ void DepsgraphNodeBuilder::build_proxy_rig(Object *object) DEG_OPCODE_POSE_INIT); op_node->set_as_entry(); + BLI_LISTBASE_FOREACH (bPoseChannel *, pchan, &object->pose->chanbase) { op_node = add_operation_node(&object->id, DEG_NODE_TYPE_BONE, pchan->name, NULL, DEG_OPCODE_BONE_LOCAL); diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc index 107ba8dc9a1..85ea2c0a8e4 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc @@ -535,14 +535,6 @@ void DepsgraphRelationBuilder::build_object(Object *object) ComponentKey ob_pose_key(&object->id, DEG_NODE_TYPE_EVAL_POSE); ComponentKey proxy_pose_key(&object->proxy->id, DEG_NODE_TYPE_EVAL_POSE); add_relation(ob_pose_key, proxy_pose_key, "Proxy"); - - ComponentKey ob_parameters_key(&object->id, - DEG_NODE_TYPE_PARAMETERS); - ComponentKey proxy_parameters_key(&object->proxy->id, - DEG_NODE_TYPE_PARAMETERS); - add_relation(ob_parameters_key, - proxy_parameters_key, - "Proxy Parameters"); } /* Object dupligroup. */ if (object->dup_group != NULL) { diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc index b0e99799824..4a822fe7477 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc @@ -444,6 +444,7 @@ void DepsgraphRelationBuilder::build_rig(Object *object) void DepsgraphRelationBuilder::build_proxy_rig(Object *object) { + Object *proxy_from = object->proxy_from; OperationKey pose_init_key(&object->id, DEG_NODE_TYPE_EVAL_POSE, DEG_OPCODE_POSE_INIT); @@ -466,6 +467,20 @@ void DepsgraphRelationBuilder::build_proxy_rig(Object *object) add_relation(bone_local_key, bone_ready_key, "Local -> Ready"); add_relation(bone_ready_key, bone_done_key, "Ready -> Done"); add_relation(bone_done_key, pose_done_key, "Bone Done -> Pose Done"); + + if (pchan->prop != NULL) { + OperationKey bone_parameters(&object->id, + DEG_NODE_TYPE_PARAMETERS, + DEG_OPCODE_PARAMETERS_EVAL, + pchan->name); + OperationKey from_bone_parameters(&proxy_from->id, + DEG_NODE_TYPE_PARAMETERS, + DEG_OPCODE_PARAMETERS_EVAL, + pchan->name); + add_relation(from_bone_parameters, + bone_parameters, + "Proxy Bone Parameters"); + } } }