Depsgraph: Correction for previous fix

Original fix only worked when there is one custom property.
This commit is contained in:
Sergey Sharybin 2018-01-29 15:06:44 +01:00
parent 68c1e3c28d
commit 263efb0b9a
3 changed files with 16 additions and 8 deletions

View File

@ -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);

View File

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

View File

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