diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2005-09-01 02:09:44 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2005-09-01 02:09:44 +0400 |
commit | 0535d26e6de0973a4be832601686108a4d31c648 (patch) | |
tree | 040d114385fd750cb94a1b49445f45eed451645a /source/blender/makesdna/DNA_action_types.h | |
parent | c005095ea8e1087948bd1ef6805822abd36e1ad5 (diff) |
- Changed xz limit drawing to use same formulas as the limiting in the IK
module -- the previous method could be off pretty far.
- Added drawing of transparent surface for it, instead of just the border.
- Added "stretch IK", allowing bones not only to rotate, but also scale.
The "Stretch" value below the DoF buttons is used to enabled this.
- Some code tweaking: slightly simplified computation of transform for IK,
renamed chain to tree, removed unused pchan->ik_mat, ..
Internal IK module work:
- Do damping per DoF also based on stiffness, hopefully makes it converge
faster with very stiff joints.
- Instead of having two joints types (translational and rotational), now
all 6 DoF's can be enabled for one joint.
- Added limits for translational joints.
Diffstat (limited to 'source/blender/makesdna/DNA_action_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_action_types.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h index 91dbb0758ba..9a33e7a15b9 100644 --- a/source/blender/makesdna/DNA_action_types.h +++ b/source/blender/makesdna/DNA_action_types.h @@ -53,7 +53,7 @@ typedef struct bPoseChannel { struct Bone *bone; /* set on read file or rebuild pose */ struct bPoseChannel *parent; /* set on read file or rebuild pose */ struct bPoseChannel *child; /* set on read file or rebuild pose, the 'ik' child, for b-bones */ - struct ListBase chain; /* only while evaluating pose */ + struct ListBase iktree; /* only while evaluating pose */ void *b_bone_mats; /* only while deform, stores precalculated b_bone deform mats */ float loc[3]; /* written in by actions or transform */ @@ -62,13 +62,13 @@ typedef struct bPoseChannel { float chan_mat[4][4]; /* matrix result of loc/quat/size , and where we put deform in, see next line */ float pose_mat[4][4]; /* constraints accumulate here. in the end, pose_mat = bone->arm_mat * chan_mat */ - float ik_mat[3][3]; /* for itterative IK */ float pose_head[3]; /* actually pose_mat[3] */ float pose_tail[3]; /* also used for drawing help lines... */ float limitmin[3], limitmax[3]; /* DOF constraint */ float stiffness[3]; /* DOF stiffness */ + float ikstretch; } bPoseChannel; |