[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--