[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31803] trunk/blender/source/blender/ editors: Bugfix #23707: Autokey Available is ignored on a Clear Transform
Joshua Leung
aligorith at gmail.com
Tue Sep 7 05:59:04 CEST 2010
Revision: 31803
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31803
Author: aligorith
Date: 2010-09-07 05:58:50 +0200 (Tue, 07 Sep 2010)
Log Message:
-----------
Bugfix #23707: Autokey Available is ignored on a Clear Transform
Checks are now done to see if only the active KeyingSet should be used instead of always using a hardcoded value only.
Modified Paths:
--------------
trunk/blender/source/blender/editors/armature/editarmature.c
trunk/blender/source/blender/editors/object/object_transform.c
Modified: trunk/blender/source/blender/editors/armature/editarmature.c
===================================================================
--- trunk/blender/source/blender/editors/armature/editarmature.c 2010-09-07 03:02:03 UTC (rev 31802)
+++ trunk/blender/source/blender/editors/armature/editarmature.c 2010-09-07 03:58:50 UTC (rev 31803)
@@ -4830,8 +4830,6 @@
{
Scene *scene= CTX_data_scene(C);
Object *ob= CTX_data_active_object(C);
-
- KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Scaling");
short autokey = 0;
/* only clear those channels that are not locked */
@@ -4862,6 +4860,17 @@
/* perform autokeying on the bones if needed */
if (autokey) {
+ 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
+ ks = ANIM_builtin_keyingset_get_named(NULL, "Scaling");
+
/* insert keyframes */
ANIM_apply_keyingset(C, NULL, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
@@ -4897,8 +4906,6 @@
{
Scene *scene= CTX_data_scene(C);
Object *ob= CTX_data_active_object(C);
-
- KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Location");
short autokey = 0;
/* only clear those channels that are not locked */
@@ -4930,6 +4937,17 @@
/* perform autokeying on the bones if needed */
if (autokey) {
+ 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
+ ks = ANIM_builtin_keyingset_get_named(NULL, "Location");
+
/* insert keyframes */
ANIM_apply_keyingset(C, NULL, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
@@ -4965,8 +4983,6 @@
{
Scene *scene= CTX_data_scene(C);
Object *ob= CTX_data_active_object(C);
-
- KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Rotation");
short autokey = 0;
/* only clear those channels that are not locked */
@@ -5082,6 +5098,17 @@
/* perform autokeying on the bones if needed */
if (autokey) {
+ 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
+ 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/object/object_transform.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_transform.c 2010-09-07 03:02:03 UTC (rev 31802)
+++ trunk/blender/source/blender/editors/object/object_transform.c 2010-09-07 03:58:50 UTC (rev 31803)
@@ -68,8 +68,17 @@
{
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
- KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Location");
+ 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
+ ks = ANIM_builtin_keyingset_get_named(NULL, "Location");
+
/* clear location of selected objects if not in weight-paint mode */
CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
if (!(ob->mode & OB_MODE_WEIGHT_PAINT)) {
@@ -127,8 +136,17 @@
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
- KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Rotation");
+ 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
+ ks = ANIM_builtin_keyingset_get_named(NULL, "Rotation");
+
/* clear rotation of selected objects if not in weight-paint mode */
CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
if(!(ob->mode & OB_MODE_WEIGHT_PAINT)) {
@@ -270,8 +288,17 @@
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
- KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Scaling");
+ 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
+ ks = ANIM_builtin_keyingset_get_named(NULL, "Scaling");
+
/* clear scales of selected objects if not in weight-paint mode */
CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
if(!(ob->mode & OB_MODE_WEIGHT_PAINT)) {
More information about the Bf-blender-cvs
mailing list