Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Gavrilov <angavrilov@gmail.com>2019-04-15 19:53:52 +0300
committerAlexander Gavrilov <angavrilov@gmail.com>2019-04-15 19:54:03 +0300
commit2f2ba04c6053540ea3a4cd6617cd6b4e38d89c93 (patch)
treeafdf4b423115ba71ca98a45b3969eeaf7bd2aedd
parent10bf1d9ac1a40379bda2883d82beb320a8c99c82 (diff)
Fix T63574: missing implicit parent bone dependency in proxies.
Although technically evaluating the proxy copy nodes doesn't require the parent bone to be copied, other nodes that depend on the bones sometimes expect the parent to be ready. To meet this expectation it's necessary to add the dependency to the graph.
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc12
1 files changed, 12 insertions, 0 deletions
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 9fd4a8dc802..9d36e9495e3 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc
@@ -578,6 +578,18 @@ void DepsgraphRelationBuilder::build_proxy_rig(Object *object)
"Bone Done -> Bone Done");
}
+ /* Parent relation: even though the proxy bone itself doesn't need
+ * the parent bone, some users expect the parent to be ready if the
+ * bone itself is (e.g. for computing the local space matrix).
+ */
+ if (pchan->parent != NULL) {
+ OperationKey parent_key(&object->id,
+ NodeType::BONE,
+ pchan->parent->name,
+ OperationCode::BONE_DONE);
+ add_relation(parent_key, bone_done_key, "Parent Bone -> Child Bone");
+ }
+
if (pchan->prop != NULL) {
OperationKey bone_parameters(&object->id,
NodeType::PARAMETERS,