[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32213] trunk/blender/source/blender/ editors: Cleanup of Auto-Keyframing code:
Joshua Leung
aligorith at gmail.com
Thu Sep 30 13:56:39 CEST 2010
Revision: 32213
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32213
Author: aligorith
Date: 2010-09-30 13:56:39 +0200 (Thu, 30 Sep 2010)
Log Message:
-----------
Cleanup of Auto-Keyframing code:
Moved duplicated code out to a special new function so that this doesn't need to be copied all over for each transform op that needs this.
Modified Paths:
--------------
trunk/blender/source/blender/editors/animation/anim_channels_edit.c
trunk/blender/source/blender/editors/animation/keyingsets.c
trunk/blender/source/blender/editors/armature/editarmature.c
trunk/blender/source/blender/editors/armature/poselib.c
trunk/blender/source/blender/editors/armature/poseobject.c
trunk/blender/source/blender/editors/include/ED_keyframing.h
trunk/blender/source/blender/editors/object/object_transform.c
Modified: trunk/blender/source/blender/editors/animation/anim_channels_edit.c
===================================================================
--- trunk/blender/source/blender/editors/animation/anim_channels_edit.c 2010-09-30 11:49:48 UTC (rev 32212)
+++ trunk/blender/source/blender/editors/animation/anim_channels_edit.c 2010-09-30 11:56:39 UTC (rev 32213)
@@ -155,6 +155,7 @@
case ANIMTYPE_DSMESH:
{
/* need to verify that this data is valid for now */
+ // XXX: ale may be null!
if (ale->adt)
ale->adt->flag |= ADT_UI_ACTIVE;
}
@@ -462,7 +463,7 @@
break;
/* store this level as the 'old' level now */
- prevLevel= level;
+ prevLevel= level; // XXX: prevLevel is unused
}
}
}
@@ -1899,7 +1900,6 @@
return OPERATOR_CANCELLED;
/* get useful pointers from animation context data */
- scene= ac.scene;
ar= ac.ar;
v2d= &ar->v2d;
Modified: trunk/blender/source/blender/editors/animation/keyingsets.c
===================================================================
--- trunk/blender/source/blender/editors/animation/keyingsets.c 2010-09-30 11:49:48 UTC (rev 32212)
+++ trunk/blender/source/blender/editors/animation/keyingsets.c 2010-09-30 11:56:39 UTC (rev 32213)
@@ -676,6 +676,21 @@
return 0;
}
+/* Get Keying Set to use for Auto-Keyframing some transforms */
+KeyingSet *ANIM_get_keyingset_for_autokeying(Scene *scene, const char *tranformKSName)
+{
+ /* get KeyingSet to use
+ * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
+ * or otherwise key transforms only
+ */
+ if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
+ return ANIM_scene_get_active_keyingset(scene);
+ else if (IS_AUTOKEY_FLAG(INSERTAVAIL))
+ return ANIM_builtin_keyingset_get_named(NULL, "Available");
+ else
+ return ANIM_builtin_keyingset_get_named(NULL, tranformKSName);
+}
+
/* Menu of All Keying Sets ----------------------------- */
/* Create (and show) a menu containing all the Keying Sets which can be used in the current context */
Modified: trunk/blender/source/blender/editors/armature/editarmature.c
===================================================================
--- trunk/blender/source/blender/editors/armature/editarmature.c 2010-09-30 11:49:48 UTC (rev 32212)
+++ trunk/blender/source/blender/editors/armature/editarmature.c 2010-09-30 11:56:39 UTC (rev 32213)
@@ -4948,19 +4948,9 @@
/* perform autokeying on the bones if needed */
if (autokey) {
- KeyingSet *ks;
+ /* get KeyingSet to use */
+ KeyingSet *ks = ANIM_get_keyingset_for_autokeying(scene, "Scaling");
- /* get KeyingSet to use
- * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
- * or otherwise key transforms only
- */
- if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
- ks = ANIM_scene_get_active_keyingset(scene);
- else if (IS_AUTOKEY_FLAG(INSERTAVAIL))
- ks = ANIM_builtin_keyingset_get_named(NULL, "Available");
- else
- ks = ANIM_builtin_keyingset_get_named(NULL, "Scaling");
-
/* insert keyframes */
ANIM_apply_keyingset(C, NULL, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
@@ -5027,19 +5017,9 @@
/* perform autokeying on the bones if needed */
if (autokey) {
- KeyingSet *ks;
+ /* get KeyingSet to use */
+ KeyingSet *ks = ANIM_get_keyingset_for_autokeying(scene, "Location");
- /* get KeyingSet to use
- * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
- * or otherwise key transforms only
- */
- if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
- ks = ANIM_scene_get_active_keyingset(scene);
- else if (IS_AUTOKEY_FLAG(INSERTAVAIL))
- ks = ANIM_builtin_keyingset_get_named(NULL, "Available");
- else
- ks = ANIM_builtin_keyingset_get_named(NULL, "Location");
-
/* insert keyframes */
ANIM_apply_keyingset(C, NULL, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
@@ -5190,19 +5170,9 @@
/* perform autokeying on the bones if needed */
if (autokey) {
- KeyingSet *ks;
+ /* get KeyingSet to use */
+ KeyingSet *ks = ANIM_get_keyingset_for_autokeying(scene, "Rotation");
- /* get KeyingSet to use
- * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
- * or otherwise key transforms only
- */
- if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
- ks = ANIM_scene_get_active_keyingset(scene);
- else if (IS_AUTOKEY_FLAG(INSERTAVAIL))
- ks = ANIM_builtin_keyingset_get_named(NULL, "Available");
- else
- ks = ANIM_builtin_keyingset_get_named(NULL, "Rotation");
-
/* insert keyframes */
ANIM_apply_keyingset(C, NULL, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
Modified: trunk/blender/source/blender/editors/armature/poselib.c
===================================================================
--- trunk/blender/source/blender/editors/armature/poselib.c 2010-09-30 11:49:48 UTC (rev 32212)
+++ trunk/blender/source/blender/editors/armature/poselib.c 2010-09-30 11:56:39 UTC (rev 32213)
@@ -773,21 +773,9 @@
if (pchan) {
if (autokeyframe_cfra_can_key(scene, &pld->ob->id)) {
ListBase dsources = {NULL, NULL};
- KeyingSet *ks = NULL;
- /* get KeyingSet to use
- * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
- * or otherwise key transforms only
- */
- if (poselib_ks_locrotscale == NULL)
- poselib_ks_locrotscale= ANIM_builtin_keyingset_get_named(NULL, "LocRotScale");
-
- if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
- ks = ANIM_scene_get_active_keyingset(scene);
- else if (IS_AUTOKEY_FLAG(INSERTAVAIL))
- ks = ANIM_builtin_keyingset_get_named(NULL, "Available");
- else
- ks = ANIM_builtin_keyingset_get_named(NULL, "LocRotScale");
+ /* get KeyingSet to use */
+ KeyingSet *ks = ANIM_get_keyingset_for_autokeying(scene, "LocRotScale");
/* now insert the keyframe(s) using the Keying Set
* 1) add datasource override for the PoseChannel
Modified: trunk/blender/source/blender/editors/armature/poseobject.c
===================================================================
--- trunk/blender/source/blender/editors/armature/poseobject.c 2010-09-30 11:49:48 UTC (rev 32212)
+++ trunk/blender/source/blender/editors/armature/poseobject.c 2010-09-30 11:56:39 UTC (rev 32213)
@@ -1012,18 +1012,9 @@
/* keyframing tagging */
if (autokeyframe_cfra_can_key(scene, &ob->id)) {
ListBase dsources = {NULL, NULL};
- KeyingSet *ks = NULL;
- /* get KeyingSet to use
- * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
- * or otherwise key transforms only
- */
- if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
- ks = ANIM_scene_get_active_keyingset(scene);
- else if (IS_AUTOKEY_FLAG(INSERTAVAIL))
- ks = ANIM_builtin_keyingset_get_named(NULL, "Available");
- else
- ks = ANIM_builtin_keyingset_get_named(NULL, "LocRotScale");
+ /* get KeyingSet to use */
+ KeyingSet *ks = ANIM_get_keyingset_for_autokeying(scene, "LocRotScale");
/* now insert the keyframe(s) using the Keying Set
* 1) add datasource override for the PoseChannel
Modified: trunk/blender/source/blender/editors/include/ED_keyframing.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_keyframing.h 2010-09-30 11:49:48 UTC (rev 32212)
+++ trunk/blender/source/blender/editors/include/ED_keyframing.h 2010-09-30 11:56:39 UTC (rev 32213)
@@ -193,6 +193,9 @@
/* Get the index of the Keying Set provided, for the given Scene */
int ANIM_scene_get_keyingset_index(struct Scene *scene, struct KeyingSet *ks);
+/* Get Keying Set to use for Auto-Keyframing some transforms */
+struct KeyingSet *ANIM_get_keyingset_for_autokeying(struct Scene *scene, const char *tranformKSName);
+
/* Create (and show) a menu containing all the Keying Sets which can be used in the current context */
void ANIM_keying_sets_menu_setup(struct bContext *C, char title[], char op_name[]);
Modified: trunk/blender/source/blender/editors/object/object_transform.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_transform.c 2010-09-30 11:49:48 UTC (rev 32212)
+++ trunk/blender/source/blender/editors/object/object_transform.c 2010-09-30 11:56:39 UTC (rev 32213)
@@ -68,18 +68,9 @@
{
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
- KeyingSet *ks;
- /* get KeyingSet to use
- * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
- * or otherwise key transforms only
- */
- if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
- ks = ANIM_scene_get_active_keyingset(scene);
- else if (IS_AUTOKEY_FLAG(INSERTAVAIL))
- ks = ANIM_builtin_keyingset_get_named(NULL, "Available");
- else
- ks = ANIM_builtin_keyingset_get_named(NULL, "Location");
+ /* get KeyingSet to use */
+ KeyingSet *ks = ANIM_get_keyingset_for_autokeying(scene, "Location");
/* clear location of selected objects if not in weight-paint mode */
CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
@@ -138,18 +129,9 @@
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
- KeyingSet *ks;
- /* get KeyingSet to use
- * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
- * or otherwise key transforms only
- */
- if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
- ks = ANIM_scene_get_active_keyingset(scene);
- else if (IS_AUTOKEY_FLAG(INSERTAVAIL))
- ks = ANIM_builtin_keyingset_get_named(NULL, "Available");
- else
- ks = ANIM_builtin_keyingset_get_named(NULL, "Rotation");
+ /* get KeyingSet to use */
+ KeyingSet *ks = ANIM_get_keyingset_for_autokeying(scene, "Rotation");
/* clear rotation of selected objects if not in weight-paint mode */
CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
@@ -292,18 +274,9 @@
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
- KeyingSet *ks;
- /* get KeyingSet to use
- * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
- * or otherwise key transforms only
- */
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list