diff options
author | Joshua Leung <aligorith@gmail.com> | 2007-12-05 14:19:36 +0300 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2007-12-05 14:19:36 +0300 |
commit | 5c13e8214062515779cde61fb57d4a8e29cd0c57 (patch) | |
tree | 0f3d795f269bc87146fcdb28d406b4a88985ea2a /source/blender/makesdna | |
parent | 8493fa986bfd01c4d7e98d8afbccbfec44f78d5b (diff) |
Two transform tweaks:
* [Peach Request] AutoIK now respects axis locking (rotation locks).
- Temporary DOF-Locks are turned on for those bones that are part of an AutoIK chain while transforming. These locks get cleared after transforming.
- This works for all bones except the root bone of the chain, which doesn't seem to be able to be locked.
* Limit Location constraint can now optionally affect Translations too (i.e. NKEY panel values won't change).
- LimitRot,LimitScale support (for their respective transforms) will be done at a later date
- This only works if the constraint is using World/Local space (the other spaces are not supported yet).
- I've added a temporary button in the LimitLoc panel to enable this option (it is disabled by default). This button will be properly assigned a place in that panel sometime.
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r-- | source/blender/makesdna/DNA_action_types.h | 10 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_constraint_types.h | 10 |
2 files changed, 12 insertions, 8 deletions
diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h index 3c5ef7c94e6..707460d0fb6 100644 --- a/source/blender/makesdna/DNA_action_types.h +++ b/source/blender/makesdna/DNA_action_types.h @@ -39,7 +39,6 @@ struct Object; /* PoseChannel stores the results of Actions (ipos) and transform information with respect to the restposition of Armature bones */ - typedef struct bPoseChannel { struct bPoseChannel *next, *prev; ListBase constraints;/* Constraints that act on this PoseChannel */ @@ -50,7 +49,7 @@ typedef struct bPoseChannel { short ikflag; /* settings for IK bones */ short selectflag; /* copy of bone flag, so you can work with library armatures */ short protectflag; /* protect channels from being transformed */ - short pad2; + short customCol; /* index of custom color set to use (0=default - used for all old files) */ int pathlen; /* for drawing paths, the amount of frames */ int pathsf; /* for drawing paths, the start frame number */ @@ -84,7 +83,6 @@ typedef struct bPoseChannel { float *path; /* totpath x 3 x float */ struct Object *custom; /* draws custom object instead of this channel */ - } bPoseChannel; /* Pose-Object. It is only found under ob->pose. It is not library data, even @@ -217,7 +215,11 @@ typedef enum PCHAN_IKFLAG { BONE_IK_XLIMIT = (1<<3), BONE_IK_YLIMIT = (1<<4), - BONE_IK_ZLIMIT = (1<<5) + BONE_IK_ZLIMIT = (1<<5), + + BONE_IK_NO_XDOF_TEMP = (1<<10), + BONE_IK_NO_YDOF_TEMP = (1<<11), + BONE_IK_NO_ZDOF_TEMP = (1<<12) } PCHAN_IKFLAG; diff --git a/source/blender/makesdna/DNA_constraint_types.h b/source/blender/makesdna/DNA_constraint_types.h index 72506b0eb57..1b289650e2c 100644 --- a/source/blender/makesdna/DNA_constraint_types.h +++ b/source/blender/makesdna/DNA_constraint_types.h @@ -294,7 +294,7 @@ typedef struct bRotLimitConstraint { float ymin, ymax; float zmin, zmax; short flag; - short pad1; + short flag2; } bRotLimitConstraint; /* Limit Scaling Constraint */ @@ -303,7 +303,7 @@ typedef struct bSizeLimitConstraint { float ymin, ymax; float zmin, zmax; short flag; - short pad1; + short flag2; } bSizeLimitConstraint; /* ------------------------------------------ */ @@ -471,9 +471,11 @@ typedef enum B_CONSTRAINTCHANNEL_FLAG { #define LIMIT_YROT 0x02 #define LIMIT_ZROT 0x04 -/* not used anymore - for older Limit Location constraints only */ + /* not used anymore - for older Limit Location constraints only */ #define LIMIT_NOPARENT 0x01 - + /* for all Limit constraints - allow to be used during transform? */ +#define LIMIT_TRANSFORM 0x02 + /* python constraint -> flag */ #define PYCON_USETARGETS 0x01 #define PYCON_SCRIPTERROR 0x02 |