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>2018-12-21 22:35:19 +0300
committerAlexander Gavrilov <angavrilov@gmail.com>2018-12-21 23:10:16 +0300
commitafa3aec45d95c225c0388615ad5d0549769df1fe (patch)
tree4db411a07ffe2fb0610fe3ef2abf75685fa9fa4e /source/blender/depsgraph
parentc79b8490976554d448435ae9b61d0697ad40e79f (diff)
Fix T59734: cyclic dependency with drivers on PoseBone.bbone_*.
Allow more flexible use of drivers on B-Bone properties by connecting the dependencies to the actual operation node that uses the values, instead of the whole component.
Diffstat (limited to 'source/blender/depsgraph')
-rw-r--r--source/blender/depsgraph/intern/depsgraph.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/depsgraph/intern/depsgraph.cc b/source/blender/depsgraph/intern/depsgraph.cc
index f3f4d788da2..006e246e287 100644
--- a/source/blender/depsgraph/intern/depsgraph.cc
+++ b/source/blender/depsgraph/intern/depsgraph.cc
@@ -150,6 +150,11 @@ static bool pointer_to_component_node_criteria(
/* Bone - generally, we just want the bone component. */
*type = DEG_NODE_TYPE_BONE;
*subdata = pchan->name;
+ /* But B-Bone properties should connect to the actual operation. */
+ if (!ELEM(NULL, pchan->bone, prop) && pchan->bone->segments > 1 &&
+ STRPREFIX(RNA_property_identifier(prop), "bbone_")) {
+ *operation_code = DEG_OPCODE_BONE_SEGMENTS;
+ }
}
return true;
}