Commit: de9546904c137cf47cf6487e94e0af3b84464bbd
Author: Sergey Sharybin
Date: Wed Nov 12 16:35:22 2014 +0100
Branches: depsgraph_refactor
https://developer.blender.org/rBde9546904c137cf47cf6487e94e0af3b84464bbd
Subgraph: Workaround for dependency from self in the constraint stack
Once the granularity in the bones is reached we can get rid of this.
===================================================================
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 f6d455e..363311a 100644
--- a/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
@@ -406,8 +406,11 @@ void DepsgraphRelationBuilder::build_constraints(Scene
*scene, ID *id, eDepsNode
add_relation(target_key,
constraint_op_key, DEPSREL_TYPE_TRANSFORM, cti->name);
#else
/* TODO(sergey): Bones evaluation
currently happens in the uber data update node.. */
- ComponentKey target_key(&ct->tar->id,
DEPSNODE_TYPE_GEOMETRY);
- add_relation(target_key,
constraint_op_key, DEPSREL_TYPE_TRANSFORM, cti->name);
+ /* TODO(sergey): Once granularity is
reached it sohuld be possible to get rid of this check. */
+ if (&ct->tar->id != id) {
+ ComponentKey
target_key(&ct->tar->id, DEPSNODE_TYPE_GEOMETRY);
+ add_relation(target_key,
constraint_op_key, DEPSREL_TYPE_TRANSFORM, cti->name);
+ }
#endif
}
else if (ELEM(ct->tar->type, OB_MESH,
OB_LATTICE) && (ct->subtarget[0])) {
@@ -429,8 +432,11 @@ void DepsgraphRelationBuilder::build_constraints(Scene
*scene, ID *id, eDepsNode
else {
/* standard object relation */
// TODO: loc vs rot vs scale?
- ComponentKey target_key(&ct->tar->id,
DEPSNODE_TYPE_TRANSFORM);
- add_relation(target_key,
constraint_op_key, DEPSREL_TYPE_TRANSFORM, cti->name);
+ /* TODO(sergey): What to do if target
is self? */
+ if (&ct->tar->id != id) {
+ ComponentKey
target_key(&ct->tar->id, DEPSNODE_TYPE_TRANSFORM);
+ add_relation(target_key,
constraint_op_key, DEPSREL_TYPE_TRANSFORM, cti->name);
+ }
}
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs