[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45412] trunk/blender/source/blender: adding shape key blocks to absolute shape keys would not set the position (which is odd since its the only time they are used).

Campbell Barton ideasman42 at gmail.com
Thu Apr 5 07:51:26 CEST 2012


Revision: 45412
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45412
Author:   campbellbarton
Date:     2012-04-05 05:51:26 +0000 (Thu, 05 Apr 2012)
Log Message:
-----------
adding shape key blocks to absolute shape keys would not set the position (which is odd since its the only time they are used).

also re-sort the shape keys after adding them in for absolute keyblocks.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/key.c
    trunk/blender/source/blender/editors/object/object_shapekey.c

Modified: trunk/blender/source/blender/blenkernel/intern/key.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/key.c	2012-04-05 05:38:52 UTC (rev 45411)
+++ trunk/blender/source/blender/blenkernel/intern/key.c	2012-04-05 05:51:26 UTC (rev 45412)
@@ -1136,9 +1136,11 @@
 	else {
 		if (key->type==KEY_RELATIVE) {
 			KeyBlock *kb;
-			
-			for (kb= key->block.first; kb; kb= kb->next)
+			float f = 0.0;
+			for (kb= key->block.first; kb; kb= kb->next, f += 0.1f) {
 				kb->weights= get_weights_array(ob, kb->vgroup);
+				// kb->pos = f;
+			}
 
 			do_rel_key(0, tot, tot, (char *)out, key, actkb, KEY_MODE_DUMMY);
 			
@@ -1472,18 +1474,12 @@
 	kb->slidermax= 1.0f;
 	
 	// XXX kb->pos is the confusing old horizontal-line RVK crap in old IPO Editor...
-	if (key->type == KEY_RELATIVE) 
+	if (key->type == KEY_RELATIVE)  {
 		kb->pos= curpos + 0.1f;
+	}
 	else {
-#if 0 // XXX old animation system
-		curpos= BKE_curframe(scene);
-		if (calc_ipo_spec(key->ipo, KEY_SPEED, &curpos)==0) {
-			curpos /= 100.0;
-		}
-		kb->pos= curpos;
-		
+		kb->pos = key->ctime / 100.0f;
 		sort_keys(key);
-#endif // XXX old animation system
 	}
 	return kb;
 }

Modified: trunk/blender/source/blender/editors/object/object_shapekey.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_shapekey.c	2012-04-05 05:38:52 UTC (rev 45411)
+++ trunk/blender/source/blender/editors/object/object_shapekey.c	2012-04-05 05:51:26 UTC (rev 45412)
@@ -76,9 +76,11 @@
 
 static void ED_object_shape_key_add(bContext *C, Scene *scene, Object *ob, int from_mix)
 {
-	if (object_insert_shape_key(scene, ob, NULL, from_mix)) {
+	KeyBlock *kb;
+	if ((kb = object_insert_shape_key(scene, ob, NULL, from_mix))) {
 		Key *key= ob_get_key(ob);
-		ob->shapenr= BLI_countlist(&key->block);
+		/* for absolute shape keys, new keys may not be added last */
+		ob->shapenr = BLI_findindex(&key->block, kb) + 1;
 
 		WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
 	}




More information about the Bf-blender-cvs mailing list