diff options
author | Jacques Guignot <guignot@wanadoo.fr> | 2003-06-22 00:44:44 +0400 |
---|---|---|
committer | Jacques Guignot <guignot@wanadoo.fr> | 2003-06-22 00:44:44 +0400 |
commit | 9392d5662af0c2723b9a139ce07fcfde6e19a522 (patch) | |
tree | 4e708f96bf7c8b53c8a1464ea8dcc9c774b0c982 /source/blender/python/api2_2x/Metaball.c | |
parent | e4bbc590a44098f18dd2f828f4a8f43b1c26240f (diff) |
several bug fixes
Diffstat (limited to 'source/blender/python/api2_2x/Metaball.c')
-rw-r--r-- | source/blender/python/api2_2x/Metaball.c | 486 |
1 files changed, 57 insertions, 429 deletions
diff --git a/source/blender/python/api2_2x/Metaball.c b/source/blender/python/api2_2x/Metaball.c index 9d4ff483e4f..c86a39d929e 100644 --- a/source/blender/python/api2_2x/Metaball.c +++ b/source/blender/python/api2_2x/Metaball.c @@ -31,10 +31,6 @@ #include "Metaball.h" -#ifndef FP_INFINITE -#define FP_INFINITE 1 -#endif - /*****************************************************************************/ /* Function: M_Metaball_New */ /* Python equivalent: Blender.Metaball.New */ @@ -114,26 +110,19 @@ static PyObject *M_Metaball_Get(PyObject *self, PyObject *args) } else { /* () - return a list of all mballs in the scene */ - int index = 0; - PyObject *mballlist, *pyobj; + PyObject *mballlist; - mballlist = PyList_New (BLI_countlist (&(G.main->mball))); + mballlist = PyList_New (0); if (mballlist == NULL) return (PythonReturnErrorObject (PyExc_MemoryError, "couldn't create PyList")); while (mball_iter) { - pyobj = Metaball_CreatePyObject (mball_iter); - - if (!pyobj) - return (PythonReturnErrorObject (PyExc_MemoryError, - "couldn't create PyString")); - - PyList_SET_ITEM (mballlist, index, pyobj); - + C_Metaball *found_mball=(C_Metaball*)PyObject_NEW(C_Metaball,&Metaball_Type); + found_mball->metaball = mball_iter; + PyList_Append (mballlist, (PyObject *)found_mball); mball_iter = mball_iter->id.next; - index++; } return (mballlist); @@ -148,8 +137,7 @@ PyObject *M_Metaball_Init (void) { PyObject *submodule; - Metaball_Type.ob_type = &PyType_Type; - + Metaball_Type.ob_type = &PyType_Type; printf ("In M_Metaball_Init()\n"); submodule = Py_InitModule3("Blender.Metaball", M_Metaball_methods, M_Metaball_doc); @@ -219,18 +207,6 @@ static PyObject *Metaball_getNMetaElems(C_Metaball *self) return (PyInt_FromLong(i) ); } -static PyObject *Metaball_getNMetaElems1(C_Metaball *self) -{ - int i = 0; - MetaElem*ptr = self->metaball->disp.first; - if(!ptr) return (PyInt_FromLong(0) ); - while(ptr) - { - i++; - ptr = ptr->next; - } - return (PyInt_FromLong(i) ); -} static PyObject *Metaball_getloc(C_Metaball *self) @@ -244,18 +220,18 @@ static PyObject *Metaball_getloc(C_Metaball *self) static PyObject *Metaball_setloc(C_Metaball *self,PyObject*args) { - - float val[3]; - if (!PyArg_ParseTuple(args, "fff", val,val+1,val+2)) - return (EXPP_ReturnPyObjError(PyExc_TypeError,"expected three float args")); - - self->metaball->loc[0] = val[0]; - self->metaball->loc[1] = val[1]; - self->metaball->loc[2] = val[2]; - + PyObject *listargs=0; + int i; + if (!PyArg_ParseTuple(args, "O", &listargs)) + return (EXPP_ReturnPyObjError(PyExc_TypeError,"expected a list")); + if (!PyList_Check(listargs)) + return (EXPP_ReturnPyObjError(PyExc_TypeError,"expected a list")); + for(i=0;i<3;i++){ + PyObject * xx = PyList_GetItem(listargs,i); + self->metaball->loc[i] = PyFloat_AsDouble(xx); + } Py_INCREF(Py_None); return Py_None; - } static PyObject *Metaball_getrot(C_Metaball *self) @@ -269,18 +245,18 @@ static PyObject *Metaball_getrot(C_Metaball *self) static PyObject *Metaball_setrot(C_Metaball *self,PyObject*args) { - - float val[3]; - if (!PyArg_ParseTuple(args, "fff", val,val+1,val+2)) - return (EXPP_ReturnPyObjError (PyExc_TypeError,"expected three float args")); - - self->metaball->rot[0] = val[0]; - self->metaball->rot[1] = val[1]; - self->metaball->rot[2] = val[2]; - + PyObject *listargs=0; + int i; + if (!PyArg_ParseTuple(args, "O", &listargs)) + return (EXPP_ReturnPyObjError(PyExc_TypeError,"expected a list")); + if (!PyList_Check(listargs)) + return (EXPP_ReturnPyObjError(PyExc_TypeError,"expected a list")); + for(i=0;i<3;i++){ + PyObject * xx = PyList_GetItem(listargs,i); + self->metaball->rot[i] = PyFloat_AsDouble(xx); + } Py_INCREF(Py_None); return Py_None; - } static PyObject *Metaball_getsize(C_Metaball *self) @@ -294,19 +270,20 @@ static PyObject *Metaball_getsize(C_Metaball *self) static PyObject *Metaball_setsize(C_Metaball *self,PyObject*args) { - - float val[3]; - if (!PyArg_ParseTuple(args, "fff", val,val+1,val+2)) - return (EXPP_ReturnPyObjError (PyExc_TypeError,"expected three float args")); - - self->metaball->size[0] = val[0]; - self->metaball->size[1] = val[1]; - self->metaball->size[2] = val[2]; - + PyObject *listargs=0; + int i; + if (!PyArg_ParseTuple(args, "O", &listargs)) + return (EXPP_ReturnPyObjError(PyExc_TypeError,"expected a list")); + if (!PyList_Check(listargs)) + return (EXPP_ReturnPyObjError(PyExc_TypeError,"expected a list")); + for(i=0;i<3;i++){ + PyObject * xx = PyList_GetItem(listargs,i); + self->metaball->size[i] = PyFloat_AsDouble(xx); + } Py_INCREF(Py_None); return Py_None; - } + static PyObject *Metaball_getWiresize(C_Metaball *self) { return PyFloat_FromDouble(self->metaball->wiresize); @@ -389,14 +366,6 @@ static PyObject *Metaball_getMetadata(C_Metaball *self,PyObject*args) } if(!strcmp(name,"type")) return (PyInt_FromLong(ptr->type)); - if(!strcmp(name,"lay")) - return (PyInt_FromLong(ptr->lay)); - if(!strcmp(name,"selcol")) - return (PyInt_FromLong(ptr->selcol)); - if(!strcmp(name,"flag")) - return (PyInt_FromLong(ptr->flag)); - if(!strcmp(name,"pad")) - return (PyInt_FromLong(ptr->pad)); if(!strcmp(name,"x")) return (PyFloat_FromDouble(ptr->x)); if(!strcmp(name,"y")) @@ -417,11 +386,6 @@ static PyObject *Metaball_getMetadata(C_Metaball *self,PyObject*args) return (PyFloat_FromDouble(ptr->s)); if(!strcmp(name,"len")) return (PyFloat_FromDouble(ptr->len)); - if(!strcmp(name,"maxrad2")) - return (PyFloat_FromDouble(ptr->maxrad2)); - - - return (EXPP_ReturnPyObjError (PyExc_TypeError, "unknown name ")); } @@ -435,19 +399,12 @@ static PyObject *Metaball_setMetadata(C_Metaball *self,PyObject*args) char*name = NULL; int intval=-1; float floatval=FP_INFINITE; - int ok = 0; MetaElem *ptr; - /* XXX: This won't work. PyArg_ParseTuple will unpack 'args' in its first - * call, so it can't be called again. Better get the value as a float then - * compare it with its int part and, if equal, consider it an int. Note - * that 'ok' isn't used in this function at all, whatever it was meant for */ - if (PyArg_ParseTuple(args, "sii", &name,&num,&intval))ok=1; - if (PyArg_ParseTuple(args, "sif", &name,&num,&floatval)) ok = 2; - if (!ok) + if (!PyArg_ParseTuple(args, "sif", &name,&num,&floatval)) return (EXPP_ReturnPyObjError (PyExc_TypeError, \ - "expected string,int,int or float arguments")); - if (floatval == FP_INFINITE) floatval = (float)intval; + "expected string,int,int float arguments")); + intval = (int)floatval; /*jump to the num-th MetaElem*/ ptr = self->metaball->elems.first; if(!ptr) @@ -460,15 +417,7 @@ return (EXPP_ReturnPyObjError (PyExc_TypeError, \ } if(!strcmp(name,"type")) {ptr->type=intval;return (PyInt_FromLong(intval));} - if(!strcmp(name,"lay")) - {ptr->lay=intval;return (PyInt_FromLong(intval));} - if(!strcmp(name,"selcol")) - {ptr->selcol=intval;return (PyInt_FromLong(intval));} - if(!strcmp(name,"flag")) - {ptr->flag=intval;return (PyInt_FromLong(intval));} - if(!strcmp(name,"pad")) {ptr->pad=intval;return (PyInt_FromLong(intval));} - if(!strcmp(name,"x")) {ptr->x=floatval;return (PyFloat_FromDouble(floatval));} if(!strcmp(name,"y")) @@ -489,12 +438,8 @@ return (EXPP_ReturnPyObjError (PyExc_TypeError, \ {ptr->s=floatval;return (PyFloat_FromDouble(floatval));} if(!strcmp(name,"len")) {ptr->len=floatval;return (PyFloat_FromDouble(floatval));} - if(!strcmp(name,"maxrad2")) - {ptr->maxrad2=floatval;return (PyFloat_FromDouble(floatval));} - - - return (EXPP_ReturnPyObjError (PyExc_TypeError, "unknown name ")); + return (EXPP_ReturnPyObjError (PyExc_TypeError, "unknown field ")); } static PyObject *Metaball_getMetatype(C_Metaball *self,PyObject*args) @@ -527,121 +472,6 @@ static PyObject *Metaball_setMetatype(C_Metaball *self,PyObject*args) } -static PyObject *Metaball_getMetalay(C_Metaball *self,PyObject*args) -{ - int num; - int i = 0; - MetaElem*ptr = self->metaball->elems.first; - if (!PyArg_ParseTuple(args, "i", &num)) - return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected int argument")); - if(!ptr) return (PyInt_FromLong(0)); - for(i = 0;i<num;i++){ptr = ptr->next;} - return (PyInt_FromLong(ptr->lay)); -} - - - -static PyObject *Metaball_setMetalay(C_Metaball *self,PyObject*args) -{ - int num,val, i = 0; - MetaElem*ptr = self->metaball->elems.first; - if (!PyArg_ParseTuple(args, "ii", &num,&val)) - return (EXPP_ReturnPyObjError(PyExc_TypeError,"expected int int arguments")); - if(!ptr) return (EXPP_ReturnPyObjError (PyExc_TypeError, "No MetaElem")); - for(i = 0;i<num;i++){ptr = ptr->next;} - ptr->lay = val; - - Py_INCREF(Py_None); - return Py_None; - -} - -static PyObject *Metaball_getMetaflag(C_Metaball *self,PyObject*args) -{ - int num; - int i = 0; - MetaElem*ptr = self->metaball->elems.first; - if (!PyArg_ParseTuple(args, "i", &num)) - return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected int argument")); - if(!ptr) return (PyInt_FromLong(0)); - for(i = 0;i<num;i++){ptr = ptr->next;} - return (PyInt_FromLong(ptr->flag)); -} - - - -static PyObject *Metaball_setMetaflag(C_Metaball *self,PyObject*args) -{ - MetaElem*ptr = self->metaball->elems.first; - int num,val, i = 0; - if (!PyArg_ParseTuple(args, "ii", &num,&val)) - return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected int int argnts")); - if(!ptr) return (EXPP_ReturnPyObjError (PyExc_TypeError, "No MetaElem")); - for(i = 0;i<num;i++){ptr = ptr->next;} - ptr->flag = val; - - Py_INCREF(Py_None); - return Py_None; - -} - -static PyObject *Metaball_getMetaselcol(C_Metaball *self,PyObject*args) -{ - MetaElem*ptr = self->metaball->elems.first; - int num; - int i = 0; - if (!PyArg_ParseTuple(args, "i", &num)) - return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected int argument")); - if(!ptr) return (PyInt_FromLong(0)); - for(i = 0;i<num;i++){ptr = ptr->next;} - return (PyInt_FromLong(ptr->selcol)); -} - - - -static PyObject *Metaball_setMetaselcol(C_Metaball *self,PyObject*args) -{ - MetaElem*ptr = self->metaball->elems.first; - int num,val, i = 0; - if (!PyArg_ParseTuple(args, "ii", &num,&val)) - return (EXPP_ReturnPyObjError(PyExc_TypeError,"expected int int arguments")); - if(!ptr) return (EXPP_ReturnPyObjError (PyExc_TypeError, "No MetaElem")); - for(i = 0;i<num;i++){ptr = ptr->next;} - ptr->selcol = val; - - Py_INCREF(Py_None); - return Py_None; - -} - -static PyObject *Metaball_getMetapad(C_Metaball *self,PyObject*args) -{ - MetaElem*ptr = self->metaball->elems.first; - int num; - int i = 0; - if (!PyArg_ParseTuple(args, "i", &num)) - return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected int argument")); - if(!ptr) return (PyInt_FromLong(0)); - for(i = 0;i<num;i++){ptr = ptr->next;} - return (PyInt_FromLong(ptr->pad)); -} - - - -static PyObject *Metaball_setMetapad(C_Metaball *self,PyObject*args) -{ - MetaElem*ptr = self->metaball->elems.first; - int num,val, i = 0; - if (!PyArg_ParseTuple(args, "ii", &num,&val)) - return (EXPP_ReturnPyObjError(PyExc_TypeError,"expected int int arguments")); - if(!ptr) return (EXPP_ReturnPyObjError (PyExc_TypeError, "No MetaElem")); - for(i = 0;i<num;i++){ptr = ptr->next;} - ptr->pad = val; - - Py_INCREF(Py_None); - return Py_None; - -} static PyObject *Metaball_getMetax(C_Metaball *self,PyObject*args) { @@ -731,148 +561,6 @@ static PyObject *Metaball_setMetaz(C_Metaball *self,PyObject*args) } -static PyObject *Metaball_getMetaexpx(C_Metaball *self,PyObject*args) -{ - MetaElem*ptr = self->metaball->elems.first; - int num; - int i = 0; - if (!PyArg_ParseTuple(args, "i", &num)) - return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected int argument")); - if(!ptr) return (PyFloat_FromDouble(0)); - for(i = 0;i<num;i++){ptr = ptr->next;} - return (PyFloat_FromDouble(ptr->expx)); -} - -static PyObject *Metaball_setMetaexpx(C_Metaball *self,PyObject*args) -{ - MetaElem*ptr = self->metaball->elems.first; - int num, i = 0; - float val; - if (!PyArg_ParseTuple(args, "if", &num,&val)) - return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected int float args")); - if(!ptr) return (EXPP_ReturnPyObjError (PyExc_TypeError, "No MetaElem")); - for(i = 0;i<num;i++){ptr = ptr->next;} - ptr->expx = val; - - Py_INCREF(Py_None); - return Py_None; - -} - -static PyObject *Metaball_getMetaexpy(C_Metaball *self,PyObject*args) -{ - MetaElem*ptr = self->metaball->elems.first; - int num; - int i = 0; - if (!PyArg_ParseTuple(args, "i", &num)) - return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected int argument")); - if(!ptr) return (PyFloat_FromDouble(0)); - for(i = 0;i<num;i++){ptr = ptr->next;} - return (PyFloat_FromDouble(ptr->expy)); -} - -static PyObject *Metaball_setMetaexpy(C_Metaball *self,PyObject*args) -{ - MetaElem*ptr = self->metaball->elems.first; - int num, i = 0; - float val; - if (!PyArg_ParseTuple(args, "if", &num,&val)) - return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected int float argts")); - if(!ptr) return (EXPP_ReturnPyObjError (PyExc_TypeError, "No MetaElem")); - for(i = 0;i<num;i++){ptr = ptr->next;} - ptr->expy = val; - - Py_INCREF(Py_None); - return Py_None; - -} - -static PyObject *Metaball_getMetaexpz(C_Metaball *self,PyObject*args) -{ - MetaElem*ptr = self->metaball->elems.first; - int num; - int i = 0; - if (!PyArg_ParseTuple(args, "i", &num)) - return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected int argument")); - if(!ptr) return (PyFloat_FromDouble(0)); - for(i = 0;i<num;i++){ptr = ptr->next;} - return (PyFloat_FromDouble(ptr->expz)); -} - -static PyObject *Metaball_setMetaexpz(C_Metaball *self,PyObject*args) -{ - MetaElem*ptr = self->metaball->elems.first; - int num, i = 0; - float val; - if (!PyArg_ParseTuple(args, "if", &num,&val)) - return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected int float argts")); - if(!ptr) return (EXPP_ReturnPyObjError (PyExc_TypeError, "No MetaElem")); - for(i = 0;i<num;i++){ptr = ptr->next;} - ptr->expz = val; - - Py_INCREF(Py_None); - return Py_None; - -} - - -static PyObject *Metaball_getMetarad(C_Metaball *self,PyObject*args) -{ - MetaElem*ptr = self->metaball->elems.first; - int num; - int i = 0; - if (!PyArg_ParseTuple(args, "i", &num)) - return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected int argument")); - if(!ptr) return (PyFloat_FromDouble(0)); - for(i = 0;i<num;i++){ptr = ptr->next;} - return (PyFloat_FromDouble(ptr->rad)); -} - -static PyObject *Metaball_setMetarad(C_Metaball *self,PyObject*args) -{ - MetaElem*ptr = self->metaball->elems.first; - int num, i = 0; - float val; - if (!PyArg_ParseTuple(args, "if", &num,&val)) - return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected int float args")); - if(!ptr) return (EXPP_ReturnPyObjError (PyExc_TypeError, "No MetaElem")); - for(i = 0;i<num;i++){ptr = ptr->next;} - ptr->rad = val; - - Py_INCREF(Py_None); - return Py_None; - -} - - - -static PyObject *Metaball_getMetarad2(C_Metaball *self,PyObject*args) -{ - MetaElem*ptr = self->metaball->elems.first; - int num; - int i = 0; - if (!PyArg_ParseTuple(args, "i", &num)) - return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected int argument")); - if(!ptr) return (PyFloat_FromDouble(0)); - for(i = 0;i<num;i++){ptr = ptr->next;} - return (PyFloat_FromDouble(ptr->rad2)); -} - -static PyObject *Metaball_setMetarad2(C_Metaball *self,PyObject*args) -{ - MetaElem*ptr = self->metaball->elems.first; - int num, i = 0; - float val; - if (!PyArg_ParseTuple(args, "if", &num,&val)) - return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected int float args")); - if(!ptr) return (EXPP_ReturnPyObjError (PyExc_TypeError, "No MetaElem")); - for(i = 0;i<num;i++){ptr = ptr->next;} - ptr->rad2 = val; - - Py_INCREF(Py_None); - return Py_None; - -} static PyObject *Metaball_getMetas(C_Metaball *self,PyObject*args) { @@ -889,12 +577,10 @@ static PyObject *Metaball_getMetas(C_Metaball *self,PyObject*args) static PyObject *Metaball_setMetas(C_Metaball *self,PyObject*args) { int num, i = 0; + MetaElem*ptr = self->metaball->elems.first; float val; - MetaElem *ptr; - if (!PyArg_ParseTuple(args, "if", &num,&val)) return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected int float args")); - ptr = self->metaball->elems.first; if(!ptr) return (EXPP_ReturnPyObjError (PyExc_TypeError, "No MetaElem")); for(i = 0;i<num;i++){ptr = ptr->next;} ptr->s = val; @@ -906,6 +592,9 @@ static PyObject *Metaball_setMetas(C_Metaball *self,PyObject*args) + + + static PyObject *Metaball_getMetalen(C_Metaball *self,PyObject*args) { int num; @@ -940,38 +629,6 @@ static PyObject *Metaball_setMetalen(C_Metaball *self,PyObject*args) -static PyObject *Metaball_getMetamaxrad2(C_Metaball *self,PyObject*args) -{ - int num; - int i = 0; - MetaElem *ptr; - - if (!PyArg_ParseTuple(args, "i", &num)) - return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected int argument")); - ptr = self->metaball->elems.first; - if(!ptr) return (PyFloat_FromDouble(0)); - for(i = 0;i<num;i++){ptr = ptr->next;} - return (PyFloat_FromDouble(ptr->maxrad2)); -} - -static PyObject *Metaball_setMetamaxrad2(C_Metaball *self,PyObject*args) -{ - int num, i = 0; - float val; - MetaElem *ptr; - - if (!PyArg_ParseTuple(args, "if", &num,&val)) - return (EXPP_ReturnPyObjError (PyExc_TypeError, "expected int float args")); - ptr = self->metaball->elems.first; - if(!ptr) return (EXPP_ReturnPyObjError (PyExc_TypeError, "No MetaElem")); - for(i = 0;i<num;i++){ptr = ptr->next;} - ptr->maxrad2 = val; - - Py_INCREF(Py_None); - return Py_None; - -} - @@ -1004,6 +661,8 @@ static PyObject *MetaballGetAttr (C_Metaball *self, char *name) if (strcmp (name, "name") == 0)return Metaball_getName (self); if (strcmp (name, "rot") == 0)return Metaball_getrot (self); +if (strcmp (name, "loc") == 0)return Metaball_getloc (self); +if (strcmp (name, "size") == 0)return Metaball_getsize (self); return Py_FindMethod(C_Metaball_methods, (PyObject *)self, name); } @@ -1031,7 +690,17 @@ static int MetaballSetAttr (C_Metaball *self, char *name, PyObject *value) Metaball_setrot (self, valtuple); return 0; } + if (strcmp (name, "loc") == 0) + { + Metaball_setloc (self, valtuple); + return 0; + } + if (strcmp (name, "size") == 0) + { + Metaball_setsize (self, valtuple); + return 0; + } return (EXPP_ReturnIntError (PyExc_KeyError,"attribute not found")); } @@ -1045,44 +714,3 @@ static PyObject *MetaballRepr (C_Metaball *self) return PyString_FromString(self->metaball->id.name+2); } -/* Three Python Metaball_Type helper functions needed by the Object module: */ - -/*****************************************************************************/ -/* Function: Metaball_CreatePyObject */ -/* Description: This function will create a new C_Metaball from an existing */ -/* Blender metaball structure. */ -/*****************************************************************************/ -PyObject *Metaball_CreatePyObject (MetaBall *metaball) -{ - C_Metaball *pymetaball; - - pymetaball = (C_Metaball *)PyObject_NEW (C_Metaball, &Metaball_Type); - - if (!pymetaball) - return EXPP_ReturnPyObjError (PyExc_MemoryError, - "couldn't create C_Metaball object"); - - pymetaball->metaball = metaball; - - return (PyObject *)pymetaball; -} - -/*****************************************************************************/ -/* Function: Metaball_CheckPyObject */ -/* Description: This function returns true when the given PyObject is of the */ -/* type Metaball. Otherwise it will return false. */ -/*****************************************************************************/ -int Metaball_CheckPyObject (PyObject *pyobj) -{ - return (pyobj->ob_type == &Metaball_Type); -} - -/*****************************************************************************/ -/* Function: Metaball_FromPyObject */ -/* Description: This function returns the Blender metaball from the given */ -/* PyObject. */ -/*****************************************************************************/ -MetaBall *Metaball_FromPyObject (PyObject *pyobj) -{ - return ((C_Metaball *)pyobj)->metaball; -} |