[Bf-committers] PythonApi: IpoCurve.getName()

Anders Nilsson bf-committers@blender.org
02 Apr 2004 19:07:15 +0200


--=-2u71XSEdBmWuOrIgaJx7
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

Same as before but changed from tabs to two spaces for intending.

Anders Nilsson (breakin)



--=-2u71XSEdBmWuOrIgaJx7
Content-Disposition: attachment; filename=patch.txt
Content-Type: text/x-patch; name=patch.txt; charset=UTF-8
Content-Transfer-Encoding: 7bit

Index: source/blender/python/api2_2x/Ipocurve.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/python/api2_2x/Ipocurve.c,v
retrieving revision 1.12
diff -u -r1.12 Ipocurve.c
--- source/blender/python/api2_2x/Ipocurve.c	29 Mar 2004 08:16:18 -0000	1.12
+++ source/blender/python/api2_2x/Ipocurve.c	2 Apr 2004 17:10:07 -0000
@@ -338,28 +338,51 @@
   return Py_None;
 }
 
-static PyObject *
-IpoCurve_getName (C_IpoCurve * self)
+static PyObject* IpoCurve_getName (C_IpoCurve *self)
 {
-  char *nametab[24] =
-    { "LocX", "LocY", "LocZ", "dLocX", "dLocY", "dLocZ", "RotX", "RotY",
-    "RotZ", "dRotX", "dRotY", "dRotZ", "SizeX", "SizeY", "SizeZ", "dSizeX",
-    "dSizeY",
-    "dSizeZ", "Layer", "Time", "ColR", "ColG", "ColB", "ColA"
-  };
+  const int objectType=self->ipocurve->blocktype;
+  const int trackType=self->ipocurve->adrcode;
+  
+  const char * ob_nametab[24] = {"LocX","LocY","LocZ","dLocX","dLocY","dLocZ",
+    "RotX","RotY","RotZ","dRotX","dRotY","dRotZ","SizeX","SizeY","SizeZ",
+    "dSizeX","dSizeY","dSizeZ","Layer","Time","ColR","ColG","ColB","ColA"};
+    
+  const char * ac_nametab[5] = {"QuatW", "QuatX", "QuatY", "QuatZ","TotIpo"};
+  
+  switch (objectType) {
+  case ID_OB: {
+    if (self->ipocurve->adrcode <=0 ) {
+      return PyString_FromString("Index too small");
+    } else if (self->ipocurve->adrcode >= 25 ) {
+      return PyString_FromString("Index too big");
+    } else {  
+      return PyString_FromString(ob_nametab[trackType-1]);
+    }
+  }
+  break;
+  
+  case ID_AC: {
+    switch (trackType) {
+    case 1: case 2: case 3: case 13: case 14: case 15:
+      return PyString_FromString(ob_nametab[trackType-1]);
+    break;
+    
+    case 25: case 26: case 27: case 28:
+      return PyString_FromString(ac_nametab[trackType-25]);
+      break;
+    case 10:
+      return PyString_FromString(ac_nametab[4]);
+      break;
+    default:
+      return PyString_FromString("Index out of range");
+    }
+  }
+  break;
 
-  if (self->ipocurve->blocktype != ID_OB)
+  default:
     return EXPP_ReturnPyObjError (PyExc_TypeError,
-				  "This function doesn't support this ipocurve type yet");
-
-  //      printf("IpoCurve_getName %d\n",self->ipocurve->vartype);
-  if (self->ipocurve->adrcode <= 0)
-    return PyString_FromString ("Index too small");
-  if (self->ipocurve->adrcode >= 25)
-    return PyString_FromString ("Index too big");
-
-  return PyString_FromString (nametab[self->ipocurve->adrcode - 1]);
-
+    "This function doesn't support this ipocurve type yet");
+  }
 }
 
 

--=-2u71XSEdBmWuOrIgaJx7--