[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11783] trunk/blender/source/blender: Minor Code Cleanup (ShapeKeys):

Joshua Leung aligorith at gmail.com
Wed Aug 22 12:07:43 CEST 2007


Revision: 11783
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11783
Author:   aligorith
Date:     2007-08-22 12:07:42 +0200 (Wed, 22 Aug 2007)

Log Message:
-----------
Minor Code Cleanup (ShapeKeys):

Added a new API method for ShapeKeys, which is useful for finding a certain KeyBlock from a Key. 

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_key.h
    trunk/blender/source/blender/blenkernel/intern/key.c
    trunk/blender/source/blender/src/drawaction.c
    trunk/blender/source/blender/src/editaction.c
    trunk/blender/source/blender/src/editipo_lib.c

Modified: trunk/blender/source/blender/blenkernel/BKE_key.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_key.h	2007-08-22 08:52:57 UTC (rev 11782)
+++ trunk/blender/source/blender/blenkernel/BKE_key.h	2007-08-22 10:07:42 UTC (rev 11783)
@@ -59,6 +59,7 @@
 
 struct Key *ob_get_key(struct Object *ob);
 struct KeyBlock *ob_get_keyblock(struct Object *ob);
+struct KeyBlock *key_get_keyblock(struct Key *key, int index);
 
 #endif
 

Modified: trunk/blender/source/blender/blenkernel/intern/key.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/key.c	2007-08-22 08:52:57 UTC (rev 11782)
+++ trunk/blender/source/blender/blenkernel/intern/key.c	2007-08-22 10:07:42 UTC (rev 11783)
@@ -1386,3 +1386,23 @@
 
 	return NULL;
 }
+
+/* get the appropriate KeyBlock given an index */
+KeyBlock *key_get_keyblock(Key *key, int index)
+{
+	KeyBlock *kb;
+	int i;
+	
+	if (key) {
+		kb= key->block.first;
+		
+		for (i= 1; i < key->totkey; i++) {
+			kb= kb->next;
+			
+			if (index==i)
+				return kb;
+		}
+	}
+	
+	return NULL;
+}

Modified: trunk/blender/source/blender/src/drawaction.c
===================================================================
--- trunk/blender/source/blender/src/drawaction.c	2007-08-22 08:52:57 UTC (rev 11782)
+++ trunk/blender/source/blender/src/drawaction.c	2007-08-22 10:07:42 UTC (rev 11783)
@@ -160,14 +160,14 @@
 
 		glRects(NAMEWIDTH,  0,  NAMEWIDTH+SLIDERWIDTH,  curarea->winy);
 		uiBlockSetEmboss(block, UI_EMBOSS);
-		for (i=1 ; i < key->totkey ; ++ i) {
+		for (i=1; i < key->totkey; i++) {
 			make_rvk_slider(block, ob, i, 
 							x, y, SLIDERWIDTH-2, CHANNELHEIGHT-1, "Slider to control Shape Keys");
 
 			y-=CHANNELHEIGHT+CHANNELSKIP;
 			
 			/* see sliderval array in editkey.c */
-			if(i>=255) break;
+			if(i >= 255) break;
 		}
 	}
 	uiDrawBlock(block);

Modified: trunk/blender/source/blender/src/editaction.c
===================================================================
--- trunk/blender/source/blender/src/editaction.c	2007-08-22 08:52:57 UTC (rev 11782)
+++ trunk/blender/source/blender/src/editaction.c	2007-08-22 10:07:42 UTC (rev 11783)
@@ -1652,20 +1652,20 @@
 	 * an invalid key number (and we don't deal
 	 * with the speed ipo).
 	 */
-
+	
     keynum = get_nearest_key_num(key, mval, &x);
     if ( (keynum < 1) || (keynum >= key->totkey) )
         return;
-
-	kb= key->block.first;
-	for (i=0; i<keynum; ++i) kb = kb->next; 
-
-	if (kb->name[0] == '\0') {
+		
+	kb= key_get_keyblock(key, keynum);
+	if (kb == NULL)
+		return;
+	
+	
+	if (kb->name[0] == '\0')
 		sprintf(str, "Key %d", keynum);
-	}
-	else {
+	else
 		strcpy(str, kb->name);
-	}
 
 	if ( (kb->slidermin >= kb->slidermax) ) {
 		kb->slidermin = 0.0;

Modified: trunk/blender/source/blender/src/editipo_lib.c
===================================================================
--- trunk/blender/source/blender/src/editipo_lib.c	2007-08-22 08:52:57 UTC (rev 11782)
+++ trunk/blender/source/blender/src/editipo_lib.c	2007-08-22 10:07:42 UTC (rev 11783)
@@ -148,24 +148,16 @@
 			{
 				static char name[32];
 				Key *key= ob_get_key(ob);
+				KeyBlock *kb= key_get_keyblock(key, icu->adrcode);
 				
-				if (key) {
-					KeyBlock *kb= key->block.first;
-					int i;
-					
-					for (i= 1; i < key->totkey; i++) {
-						kb= kb->next;
-						
-						if (icu->adrcode == i) {
-							/* only return name if it has been set, otherwise use 
-							 * default method using static string (Key #)
-							 */
-							if (kb->name[0] == '\0')
-								break; /* stop looping through keyblocks */
-							else
-								return kb->name; /* return keyblock's name  */
-						}
-					}
+				if (kb) {
+					/* only return name if it has been set, otherwise use 
+					 * default method using static string (Key #)
+					 */
+					if (kb->name[0] == '\0')
+						break; /* stop looping through keyblocks */
+					else
+						return kb->name; /* return keyblock's name  */
 				}
 				
 				/* in case keyblock is not named or no key/keyblock was found */





More information about the Bf-blender-cvs mailing list