[Bf-blender-cvs] [5ff8af8] depsgraph_refactor: Depsgraph: WIP - Experimental fixes for regressions introduced

Joshua Leung noreply at git.blender.org
Wed Jan 21 13:00:00 CET 2015


Commit: 5ff8af812332e51e2381d135d8d27302eb0cba1f
Author: Joshua Leung
Date:   Thu Jan 22 00:59:30 2015 +1300
Branches: depsgraph_refactor
https://developer.blender.org/rB5ff8af812332e51e2381d135d8d27302eb0cba1f

Depsgraph: WIP - Experimental fixes for regressions introduced

So, it seems that using BONE_READY for constraint targets was breaking
production rigs (notably the foot/leg setups), while using BONE_DONE
will break the constrained-to-bone-in-same-ikchain setup...

Just noting this here in case this comes in handy at some point. Perhaps
we need to try something fancier using the rootmaps here?

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

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 9461e72..08799fa 100644
--- a/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
@@ -535,7 +535,7 @@ void DepsgraphRelationBuilder::build_constraints(Scene *scene, ID *id, eDepsNode
 					if (&ct->tar->id == id) {
 						/* same armature - use the "ready" state only, to avoid collisions with IK */
 						/* NOTE: in some cases, this may break (i.e. if the target is in a separate chain which can get safely evaluated first) */
-						OperationKey target_key(&ct->tar->id, DEPSNODE_TYPE_BONE, ct->subtarget, DEG_OPCODE_BONE_READY);
+						OperationKey target_key(&ct->tar->id, DEPSNODE_TYPE_BONE, ct->subtarget, DEG_OPCODE_BONE_DONE);
 						add_relation(target_key, constraint_op_key, DEPSREL_TYPE_TRANSFORM, cti->name);
 					}
 					else {
@@ -1034,7 +1034,8 @@ void DepsgraphRelationBuilder::build_ik_pose(Object *ob,
 			}
 			else {
 				/* same armature - we'll use the ready state only, just in case this bone is in the chain we're solving */
-				OperationKey target_key(&data->tar->id, DEPSNODE_TYPE_BONE, data->subtarget, DEG_OPCODE_BONE_READY);
+				//OperationKey target_key(&data->tar->id, DEPSNODE_TYPE_BONE, data->subtarget, DEG_OPCODE_BONE_READY);
+				OperationKey target_key(&data->tar->id, DEPSNODE_TYPE_BONE, data->subtarget, DEG_OPCODE_BONE_DONE);
 				add_relation(target_key, solver_key, DEPSREL_TYPE_TRANSFORM, con->name);
 			}
 		}




More information about the Bf-blender-cvs mailing list