Commit: 7195295be16d8a49e794ae304a5c37ed7d976453
Author: Joshua Leung
Date:   Fri Jan 2 21:05:54 2015 +1300
Branches: depsgraph_refactor
https://developer.blender.org/rB7195295be16d8a49e794ae304a5c37ed7d976453

Depsgraph: Pole targets for IK constraints now work

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

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 d0da529..20bc5a1 100644
--- a/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build_relations.cpp
@@ -898,7 +898,8 @@ void DepsgraphRelationBuilder::build_ik_pose(Object *ob,
        OperationKey solver_key(&ob->id, DEPSNODE_TYPE_EVAL_POSE, 
rootchan->name, DEG_OPCODE_POSE_IK_SOLVER);
        add_relation(transforms_key, solver_key, DEPSREL_TYPE_TRANSFORM, "IK 
Solver Owner");
 
-       // TODO: pole target?
+       /* IK target */
+       // XXX: this should get handled as part of the constraint code
        if (data->tar != NULL) {
                /* TODO(sergey): For until we'll store partial matricies in the 
depsgraph,
                 * we create dependency bewteen target object and pose eval 
component.
@@ -926,6 +927,20 @@ void DepsgraphRelationBuilder::build_ik_pose(Object *ob,
        }
        root_map_add_bone(pchan->name, rootchan->name, root_map);
 
+       /* Pole Target */
+       // XXX: this should get handled as part of the constraint code
+       if (data->poletar != NULL) {
+               if ((data->tar->type == OB_ARMATURE) && (data->subtarget[0])) {
+                       ComponentKey target_key(&data->poletar->id, 
DEPSNODE_TYPE_BONE, data->subtarget);
+                       add_relation(target_key, solver_key, 
DEPSREL_TYPE_TRANSFORM, con->name);
+               }
+               else {
+                       ComponentKey target_key(&data->poletar->id, 
DEPSNODE_TYPE_TRANSFORM);
+                       add_relation(target_key, solver_key, 
DEPSREL_TYPE_TRANSFORM, con->name);
+               }
+       }
+       
+       
        bPoseChannel *parchan = pchan;
        /* exclude tip from chain? */
        if (!(data->flag & CONSTRAINT_IK_TIP))

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to