[Bf-blender-cvs] [0969435] soc-2014-shapekey: Minor cleanup in key.c

Grigory Revzin noreply at git.blender.org
Fri May 16 02:02:36 CEST 2014


Commit: 09694357dc94acfeb7acfcc075b03b6f9d7582e1
Author: Grigory Revzin
Date:   Sat May 10 15:53:09 2014 +0400
https://developer.blender.org/rB09694357dc94acfeb7acfcc075b03b6f9d7582e1

Minor cleanup in key.c

===================================================================

M	source/blender/blenkernel/intern/key.c

===================================================================

diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c
index d86a669..3aaa7c4 100644
--- a/source/blender/blenkernel/intern/key.c
+++ b/source/blender/blenkernel/intern/key.c
@@ -73,10 +73,26 @@
 #define IPO_BEZTRIPLE   100
 #define IPO_BPOINT      101
 
+#define ELEMSIZE_MESH		(sizeof(float) * 3)
+#define ELEMSIZE_LATTICE	(sizeof(float) * 3)
+#define ELEMSIZE_CURVE		(sizeof(float) * 4)
+
+int get_elemsize(Object *ob)
+{
+	switch (ob->type) {
+	case OB_MESH:
+		return ELEMSIZE_MESH;
+	case OB_LATTICE:
+		return ELEMSIZE_LATTICE;
+	case OB_CURVE:
+		return ELEMSIZE_CURVE;
+	}
+	return 0;
+}
+
 /* extern, not threadsafe */
 int slurph_opt = 1;
 
-
 void BKE_key_free(Key *key)
 {
 	KeyBlock *kb;
@@ -122,8 +138,6 @@ Key *BKE_key_add(ID *id)    /* common function */
 			el[1] = IPO_FLOAT;
 			el[2] = 0;
 
-			key->elemsize = 3 * sizeof(float);
-
 			break;
 		case ID_LT:
 			el = key->elemstr;
@@ -132,8 +146,6 @@ Key *BKE_key_add(ID *id)    /* common function */
 			el[1] = IPO_FLOAT;
 			el[2] = 0;
 
-			key->elemsize = 3 * sizeof(float);
-
 			break;
 		case ID_CU:
 			el = key->elemstr;
@@ -142,11 +154,11 @@ Key *BKE_key_add(ID *id)    /* common function */
 			el[1] = IPO_BPOINT;
 			el[2] = 0;
 
-			key->elemsize = 4 * sizeof(float);
-
 			break;
 	}
-	
+
+	key->elemsize = get_elemsize(id->);
+
 	return key;
 }




More information about the Bf-blender-cvs mailing list