Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Leung <aligorith@gmail.com>2009-02-13 04:51:33 +0300
committerJoshua Leung <aligorith@gmail.com>2009-02-13 04:51:33 +0300
commitcec4a299771ec0302db6f733ca28e80cbbf3cff4 (patch)
tree2e5b6fef47ee466c6cf71f9d67aae73642398604 /source/blender/makesdna
parented7e211c2d5be8a9e7e87a41fc6fecc02bb346c5 (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')
-rw-r--r--source/blender/makesdna/DNA_anim_types.h29
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 */