Commit: c9f3dbd5f8874438871dab69d53bc42d5753f50d
Author: Sergey Sharybin
Date: Mon Jan 26 20:02:09 2015 +0500
Branches: depsgraph_refactor
https://developer.blender.org/rBc9f3dbd5f8874438871dab69d53bc42d5753f50d
Depsgraph: Whole IK chain depends on the solver result
This is the only way we can make sure all needed calculations are done
to the time BKE_pose_bone_done() is called.
===================================================================
M source/blender/depsgraph/intern/depsgraph_build_relations.cpp
===================================================================
diff --git a/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
b/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
index 8b4e97a..c1f9023 100644
--- a/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
@@ -1132,6 +1132,9 @@ void DepsgraphRelationBuilder::build_ik_pose(Object *ob,
if (parchan != pchan) {
OperationKey parent_key(&ob->id, DEPSNODE_TYPE_BONE,
parchan->name, DEG_OPCODE_BONE_READY);
add_relation(parent_key, solver_key,
DEPSREL_TYPE_TRANSFORM, "IK Chain Parent");
+
+ OperationKey done_key(&ob->id, DEPSNODE_TYPE_BONE,
parchan->name, DEG_OPCODE_BONE_DONE);
+ add_relation(solver_key, done_key,
DEPSREL_TYPE_TRANSFORM, "IK Chain Result");
}
parchan->flag |= POSE_DONE;
@@ -1200,6 +1203,9 @@ void DepsgraphRelationBuilder::build_splineik_pose(Object
*ob,
if (parchan != pchan) {
OperationKey parent_key(&ob->id, DEPSNODE_TYPE_BONE,
parchan->name, DEG_OPCODE_BONE_READY);
add_relation(parent_key, solver_key,
DEPSREL_TYPE_TRANSFORM, "Spline IK Solver Update");
+
+ OperationKey done_key(&ob->id, DEPSNODE_TYPE_BONE,
parchan->name, DEG_OPCODE_BONE_DONE);
+ add_relation(solver_key, done_key,
DEPSREL_TYPE_TRANSFORM, "IK Chain Result");
}
parchan->flag |= POSE_DONE;
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs