[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31903] trunk/blender/source/blender/ editors/armature/poseobject.c: bugfix [#23528] ED_pose_channel_in_IK_chain( ) doesn't take length of IK chain into account
Campbell Barton
ideasman42 at gmail.com
Mon Sep 13 08:57:26 CEST 2010
Revision: 31903
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31903
Author: campbellbarton
Date: 2010-09-13 08:57:03 +0200 (Mon, 13 Sep 2010)
Log Message:
-----------
bugfix [#23528] ED_pose_channel_in_IK_chain() doesn't take length of IK chain into account
Modified Paths:
--------------
trunk/blender/source/blender/editors/armature/poseobject.c
Modified: trunk/blender/source/blender/editors/armature/poseobject.c
===================================================================
--- trunk/blender/source/blender/editors/armature/poseobject.c 2010-09-13 06:08:26 UTC (rev 31902)
+++ trunk/blender/source/blender/editors/armature/poseobject.c 2010-09-13 06:57:03 UTC (rev 31903)
@@ -157,7 +157,7 @@
}
/* only for real IK, not for auto-IK */
-int ED_pose_channel_in_IK_chain(Object *ob, bPoseChannel *pchan)
+static int pose_channel_in_IK_chain(Object *ob, bPoseChannel *pchan, int level)
{
bConstraint *con;
Bone *bone;
@@ -167,18 +167,25 @@
for(con= pchan->constraints.first; con; con= con->next) {
if(con->type==CONSTRAINT_TYPE_KINEMATIC) {
bKinematicConstraint *data= con->data;
- if((data->flag & CONSTRAINT_IK_AUTO)==0)
- return 1;
+ if(data->rootbone == 0 || data->rootbone > level) {
+ if((data->flag & CONSTRAINT_IK_AUTO)==0)
+ return 1;
+ }
}
}
for(bone= pchan->bone->childbase.first; bone; bone= bone->next) {
pchan= get_pose_channel(ob->pose, bone->name);
- if(pchan && ED_pose_channel_in_IK_chain(ob, pchan))
+ if(pchan && pose_channel_in_IK_chain(ob, pchan, level + 1))
return 1;
}
return 0;
}
+int ED_pose_channel_in_IK_chain(Object *ob, bPoseChannel *pchan)
+{
+ return pose_channel_in_IK_chain(ob, pchan, 0);
+}
+
/* ********************************************** */
/* Motion Paths */
More information about the Bf-blender-cvs
mailing list