diff options
author | Joshua Leung <aligorith@gmail.com> | 2011-02-01 03:43:28 +0300 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2011-02-01 03:43:28 +0300 |
commit | dc8078e667e69d3027792a38efda7ed5cfc517d2 (patch) | |
tree | cdf4f74cd3fb9e5b579863e013a46ef59fa8286d /source/blender/editors/transform/transform_conversions.c | |
parent | 6fcc13a78694176ee76b0c811129c3b7fa4fd7f0 (diff) |
Bugfix [#25885] Auto IK ignores full rotation locks
... actually, this was just an off-by-one bug again.
Diffstat (limited to 'source/blender/editors/transform/transform_conversions.c')
-rw-r--r-- | source/blender/editors/transform/transform_conversions.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 03b03d211d9..4ffbb0181a4 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -862,15 +862,16 @@ static short pose_grab_with_ik_add(bPoseChannel *pchan) data->flag= CONSTRAINT_IK_TIP; data->flag |= CONSTRAINT_IK_TEMP|CONSTRAINT_IK_AUTO; VECCOPY(data->grabtarget, pchan->pose_tail); - data->rootbone= 1; + data->rootbone= 0; /* watch-it! has to be 0 here, since we're still on the same bone for the first time through the loop [#25885] */ /* we only include bones that are part of a continual connected chain */ while (pchan) { /* here, we set ik-settings for bone from pchan->protectflag */ + // XXX: careful with quats/axis-angle rotations where we're locking 4d components if (pchan->protectflag & OB_LOCK_ROTX) pchan->ikflag |= BONE_IK_NO_XDOF_TEMP; if (pchan->protectflag & OB_LOCK_ROTY) pchan->ikflag |= BONE_IK_NO_YDOF_TEMP; if (pchan->protectflag & OB_LOCK_ROTZ) pchan->ikflag |= BONE_IK_NO_ZDOF_TEMP; - + /* now we count this pchan as being included */ data->rootbone++; |