diff options
author | Joshua Leung <aligorith@gmail.com> | 2009-02-13 04:51:33 +0300 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2009-02-13 04:51:33 +0300 |
commit | cec4a299771ec0302db6f733ca28e80cbbf3cff4 (patch) | |
tree | 2e5b6fef47ee466c6cf71f9d67aae73642398604 /source/blender/makesdna/DNA_anim_types.h | |
parent | ed7e211c2d5be8a9e7e87a41fc6fecc02bb346c5 (diff) |
Keying Sets: Wrapped KeyingSets in RNA
* The settings of KeyingSets can now be viewed/modified through RNA.
* Shuffled RNA wrapping for AnimData over to its own file
* Moved insert-key flags to DNA_anim_types.h, as they're now used for KeyingSets.
Diffstat (limited to 'source/blender/makesdna/DNA_anim_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_anim_types.h | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index 68564b1ee73..d3551817a85 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -445,19 +445,25 @@ typedef struct KS_Path { char *rna_path; /* dynamically (or statically in the case of predefined sets) path */ int array_index; /* index that path affects */ - int flag; /* various settings, etc. */ + short flag; /* various settings, etc. */ + short groupmode; /* group naming (eKSP_Grouping) */ } KS_Path; /* KS_Path->flag */ enum { /* entire array (not just the specified index) gets keyframed */ KSP_FLAG_WHOLE_ARRAY = (1<<0), - +} eKSP_Settings; + +/* KS_Path->groupmode */ +enum { + /* path should be grouped using its own group-name */ + KSP_GROUP_NAMED = 0, /* path should not be grouped at all */ - KSP_FLAG_GROUP_NONE = (1<<10), + KSP_GROUP_NONE, /* path should be grouped under an ActionGroup KeyingSet's name */ - KSP_FLAG_GROUP_KSNAME = (1<<11), -} eKSP_Settings; + KSP_GROUP_KSNAME, +} eKSP_Grouping; /* ---------------- */ @@ -486,12 +492,19 @@ typedef struct KeyingSet { enum { /* keyingset cannot be removed (and doesn't need to be freed) */ KEYINGSET_BUILTIN = (1<<0), - /* keyingset is the one currently in use */ - KEYINGSET_ACTIVE = (1<<1), /* keyingset does not depend on context info (i.e. paths are absolute) */ - KEYINGSET_ABSOLUTE = (1<<2), + KEYINGSET_ABSOLUTE = (1<<1), } eKS_Settings; +/* Flags for use by keyframe creation/deletion calls */ +enum { + INSERTKEY_NEEDED = (1<<0), /* only insert keyframes where they're needed */ + INSERTKEY_MATRIX = (1<<1), /* insert 'visual' keyframes where possible/needed */ + INSERTKEY_FAST = (1<<2), /* don't recalculate handles,etc. after adding key */ + INSERTKEY_FASTR = (1<<3), /* don't realloc mem (or increase count, as array has already been set out) */ + INSERTKEY_REPLACE = (1<<4), /* only replace an existing keyframe (this overrides INSERTKEY_NEEDED) */ +} eInsertKeyFlags; + /* ************************************************ */ /* Animation Data */ |