[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