[Bf-blender-cvs] [e79a4d5] depsgraph_refactor: Depsgraph: Correction to the previous commit

Sergey Sharybin noreply at git.blender.org
Thu Nov 20 17:22:31 CET 2014


Commit: e79a4d5e6c618bf2afdd2a38777fb72425cdd9be
Author: Sergey Sharybin
Date:   Thu Nov 20 17:21:35 2014 +0100
Branches: depsgraph_refactor
https://developer.blender.org/rBe79a4d5e6c618bf2afdd2a38777fb72425cdd9be

Depsgraph: Correction to the previous commit

For until granular updates uses proper intermediate storage need to handle
dependencies to bones from self a bit different.

===================================================================

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 8b9be6b..5b77b25 100644
--- a/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
@@ -771,8 +771,15 @@ void DepsgraphRelationBuilder::build_ik_pose(Object *ob, bPoseChannel *pchan, bC
 		 */
 		ComponentKey pose_key(&ob->id, DEPSNODE_TYPE_EVAL_POSE);
 		if ((data->tar->type == OB_ARMATURE) && (data->subtarget[0])) {
-			ComponentKey target_key(&data->tar->id, DEPSNODE_TYPE_BONE, data->subtarget);
-			add_relation(target_key, pose_key, DEPSREL_TYPE_TRANSFORM, con->name);
+			/* TODO(sergey): This is only for until granular update stores intermediate result. */
+			if (data->tar != ob) {
+				ComponentKey target_key(&data->tar->id, DEPSNODE_TYPE_BONE, data->subtarget);
+				add_relation(target_key, pose_key, DEPSREL_TYPE_TRANSFORM, con->name);
+			}
+			else {
+				ComponentKey target_key(&data->tar->id, DEPSNODE_TYPE_BONE, data->subtarget);
+				add_relation(target_key, solver_key, DEPSREL_TYPE_TRANSFORM, con->name);
+			}
 		}
 		else {
 			ComponentKey target_key(&data->tar->id, DEPSNODE_TYPE_TRANSFORM);




More information about the Bf-blender-cvs mailing list