Depsgraph: Correction for previous fix
Original fix only worked when there is one custom property.
This commit is contained in:
@@ -274,6 +274,7 @@ void DepsgraphNodeBuilder::build_proxy_rig(Object *object)
|
|||||||
DEG_OPCODE_POSE_INIT);
|
DEG_OPCODE_POSE_INIT);
|
||||||
op_node->set_as_entry();
|
op_node->set_as_entry();
|
||||||
|
|
||||||
|
|
||||||
BLI_LISTBASE_FOREACH (bPoseChannel *, pchan, &object->pose->chanbase) {
|
BLI_LISTBASE_FOREACH (bPoseChannel *, pchan, &object->pose->chanbase) {
|
||||||
op_node = add_operation_node(&object->id, DEG_NODE_TYPE_BONE, pchan->name,
|
op_node = add_operation_node(&object->id, DEG_NODE_TYPE_BONE, pchan->name,
|
||||||
NULL, DEG_OPCODE_BONE_LOCAL);
|
NULL, DEG_OPCODE_BONE_LOCAL);
|
||||||
|
@@ -535,14 +535,6 @@ void DepsgraphRelationBuilder::build_object(Object *object)
|
|||||||
ComponentKey ob_pose_key(&object->id, DEG_NODE_TYPE_EVAL_POSE);
|
ComponentKey ob_pose_key(&object->id, DEG_NODE_TYPE_EVAL_POSE);
|
||||||
ComponentKey proxy_pose_key(&object->proxy->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");
|
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. */
|
/* Object dupligroup. */
|
||||||
if (object->dup_group != NULL) {
|
if (object->dup_group != NULL) {
|
||||||
|
@@ -444,6 +444,7 @@ void DepsgraphRelationBuilder::build_rig(Object *object)
|
|||||||
|
|
||||||
void DepsgraphRelationBuilder::build_proxy_rig(Object *object)
|
void DepsgraphRelationBuilder::build_proxy_rig(Object *object)
|
||||||
{
|
{
|
||||||
|
Object *proxy_from = object->proxy_from;
|
||||||
OperationKey pose_init_key(&object->id,
|
OperationKey pose_init_key(&object->id,
|
||||||
DEG_NODE_TYPE_EVAL_POSE,
|
DEG_NODE_TYPE_EVAL_POSE,
|
||||||
DEG_OPCODE_POSE_INIT);
|
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_local_key, bone_ready_key, "Local -> Ready");
|
||||||
add_relation(bone_ready_key, bone_done_key, "Ready -> Done");
|
add_relation(bone_ready_key, bone_done_key, "Ready -> Done");
|
||||||
add_relation(bone_done_key, pose_done_key, "Bone Done -> Pose 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");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user