[Bf-blender-cvs] [da233f6] depsgraph_refactor: WIP: Now constraints also directly specify the operations they use when creating the relationships directly
Joshua Leung
noreply at git.blender.org
Wed Dec 17 04:41:22 CET 2014
Commit: da233f6e4a4c42b078f69e14e9eaf61747abfa86
Author: Joshua Leung
Date: Tue Dec 16 23:44:02 2014 +1300
Branches: depsgraph_refactor
https://developer.blender.org/rBda233f6e4a4c42b078f69e14e9eaf61747abfa86
WIP: Now constraints also directly specify the operations they use when creating the relationships directly
===================================================================
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 d15c466..5cf31fa 100644
--- a/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
@@ -408,7 +408,8 @@ void DepsgraphRelationBuilder::build_object_parent(Object *ob)
void DepsgraphRelationBuilder::build_constraints(Scene *scene, ID *id, eDepsNode_Type component_type, const string &component_subdata,
ListBase *constraints)
{
- OperationKey constraint_op_key(id, component_type, component_subdata, DEG_OPCODE_TRANSFORM_CONSTRAINTS);
+ OperationKey constraint_op_key(id, component_type, component_subdata,
+ (component_type == DEPSNODE_TYPE_BONE) ? DEG_OPCODE_BONE_CONSTRAINTS : DEG_OPCODE_TRANSFORM_CONSTRAINTS);
/* add dependencies for each constraint in turn */
for (bConstraint *con = (bConstraint *)constraints->first; con; con = con->next) {
@@ -467,8 +468,10 @@ void DepsgraphRelationBuilder::build_constraints(Scene *scene, ID *id, eDepsNode
}
else if ((ct->tar->type == OB_ARMATURE) && (ct->subtarget[0])) {
/* bone */
- ComponentKey target_key(&ct->tar->id, DEPSNODE_TYPE_BONE, ct->subtarget);
- add_relation(target_key, constraint_op_key, DEPSREL_TYPE_TRANSFORM, cti->name);
+ //ComponentKey target_key(&ct->tar->id, DEPSNODE_TYPE_BONE, ct->subtarget);
+ //add_relation(target_key, constraint_op_key, DEPSREL_TYPE_TRANSFORM, cti->name);
+ OperationKey target_key(&ct->tar->id, DEPSNODE_TYPE_BONE, ct->subtarget, DEG_OPCODE_BONE_DONE);
+ add_operation_relation(find_node(target_key), find_node(constraint_op_key), DEPSREL_TYPE_TRANSFORM, cti->name);
}
else if (ELEM(ct->tar->type, OB_MESH, OB_LATTICE) && (ct->subtarget[0])) {
/* vertex group */
@@ -491,8 +494,10 @@ void DepsgraphRelationBuilder::build_constraints(Scene *scene, ID *id, eDepsNode
// TODO: loc vs rot vs scale?
/* 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);
+ //ComponentKey target_key(&ct->tar->id, DEPSNODE_TYPE_TRANSFORM);
+ //add_relation(target_key, constraint_op_key, DEPSREL_TYPE_TRANSFORM, cti->name);
+ OperationKey target_key(&ct->tar->id, DEPSNODE_TYPE_TRANSFORM, DEG_OPCODE_TRANSFORM_FINAL);
+ add_operation_relation(find_node(target_key), find_node(constraint_op_key), DEPSREL_TYPE_TRANSFORM, cti->name);
}
}
}
More information about the Bf-blender-cvs
mailing list