[Bf-blender-cvs] [263efb0b9a7] master: Depsgraph: Correction for previous fix

Sergey Sharybin noreply at git.blender.org
Mon Jan 29 15:07:16 CET 2018


Commit: 263efb0b9a736a1529d8c6fce37e56bdb8d7866b
Author: Sergey Sharybin
Date:   Mon Jan 29 15:06:44 2018 +0100
Branches: master
https://developer.blender.org/rB263efb0b9a736a1529d8c6fce37e56bdb8d7866b

Depsgraph: Correction for previous fix

Original fix only worked when there is one custom property.

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

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

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

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");
+		}
 	}
 }



More information about the Bf-blender-cvs mailing list