[Bf-blender-cvs] [c9f3dbd] depsgraph_refactor: Depsgraph: Whole IK chain depends on the solver result

Sergey Sharybin noreply at git.blender.org
Mon Jan 26 16:03:19 CET 2015


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;




More information about the Bf-blender-cvs mailing list