[Bf-blender-cvs] [3fe2bc9] depsgraph_refactor: Depsgraph: Fix for deadlock when IK targets depend on a bone in the chain

Joshua Leung noreply at git.blender.org
Sat Jan 31 00:54:07 CET 2015


Commit: 3fe2bc9a33de5529f559b7781e143b43fb953029
Author: Joshua Leung
Date:   Sat Jan 31 12:50:37 2015 +1300
Branches: depsgraph_refactor
https://developer.blender.org/rB3fe2bc9a33de5529f559b7781e143b43fb953029

Depsgraph: Fix for deadlock when IK targets depend on a bone in the chain

This hack tags the target as being part of the IK chain, so that when adding the
constraints, the "ready" state will be used instead of "done" to avoid the deadlock.
There don't seem to be any readily observed ill-effects of this patch, so I guess
it's fine.

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

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 3c30964..e6bbc3c 100644
--- a/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
@@ -999,6 +999,11 @@ void DepsgraphRelationBuilder::build_ik_pose(Object *ob,
 		}
 	}
 	root_map->add_bone(pchan->name, rootchan->name);
+	
+	if ((data->tar) && (data->tar == ob) && (data->subtarget[0])) {
+		/* Prevent target's constraints from linking to anything from same chain that it controls */
+		root_map->add_bone(data->subtarget, rootchan->name);
+	}
 
 	/* Pole Target */
 	// XXX: this should get handled as part of the constraint code




More information about the Bf-blender-cvs mailing list