diff options
author | Jacques Guignot <guignot@wanadoo.fr> | 2003-10-26 19:51:53 +0300 |
---|---|---|
committer | Jacques Guignot <guignot@wanadoo.fr> | 2003-10-26 19:51:53 +0300 |
commit | 6b1b9c1890633fb45c7e1f826d2fb2cb491f68aa (patch) | |
tree | 6517462093e2a27570c8b661af49461cf7b380ad | |
parent | e63a938c456f9edcd3d79857649cdd1a93364746 (diff) |
iaccess to the IPOs of a Camera, a World, or of a Material
-rw-r--r-- | source/blender/python/api2_2x/Camera.c | 37 | ||||
-rw-r--r-- | source/blender/python/api2_2x/Camera.h | 6 | ||||
-rw-r--r-- | source/blender/python/api2_2x/Material.c | 11 | ||||
-rw-r--r-- | source/blender/python/api2_2x/World.c | 15 | ||||
-rw-r--r-- | source/blender/python/api2_2x/World.h | 3 |
5 files changed, 65 insertions, 7 deletions
diff --git a/source/blender/python/api2_2x/Camera.c b/source/blender/python/api2_2x/Camera.c index 645e1f08b00..01bb3f91075 100644 --- a/source/blender/python/api2_2x/Camera.c +++ b/source/blender/python/api2_2x/Camera.c @@ -246,8 +246,23 @@ Camera * GetCameraByName (char * name) /*****************************************************************************/ /* Python BPy_Camera methods: */ /*****************************************************************************/ + + +#include <DNA_ipo_types.h> + + +static PyObject *Camera_getIpo(BPy_Camera *self) +{ +PyObject *Ipo_CreatePyObject (Ipo *ipo); + struct Ipo*ipo = self->camera->ipo; + if (!ipo) return EXPP_ReturnPyObjError(PyExc_RuntimeError,"Camera has no Ipo"); + return Ipo_CreatePyObject (ipo); +} + + static PyObject *Camera_getName(BPy_Camera *self) { + PyObject *attr = PyString_FromString(self->camera->id.name+2); if (attr) return attr; @@ -316,6 +331,23 @@ static PyObject *Camera_getDrawSize(BPy_Camera *self) "couldn't get Camera.drawSize attribute"); } + +static PyObject *Camera_setIpo(BPy_Camera *self, PyObject *args) +{ +int camera_assignIpo(Camera*,Ipo*); + PyObject *ipo = 0; + Ipo*ptr; + Ipo *Ipo_FromPyObject (PyObject *pyobj); + + if (!PyArg_ParseTuple(args, "O", &ipo)) + return EXPP_ReturnPyObjError (PyExc_TypeError, + "expected ipo argument"); +ptr = Ipo_FromPyObject(ipo); +//camera_assignIpo(self->camera, ptr); + + Py_INCREF(Py_None); + return Py_None; +} static PyObject *Camera_setName(BPy_Camera *self, PyObject *args) { char *name; @@ -502,6 +534,11 @@ static PyObject *Camera_getAttr (BPy_Camera *self, char *name) { PyObject *attr = Py_None; + if (strcmp(name, "ipo") == 0) + { + struct Ipo*ipo = self->camera->ipo; + if (ipo) attr = Ipo_CreatePyObject (ipo); + } if (strcmp(name, "name") == 0) attr = PyString_FromString(self->camera->id.name+2); else if (strcmp(name, "type") == 0) diff --git a/source/blender/python/api2_2x/Camera.h b/source/blender/python/api2_2x/Camera.h index da9f6d9fd14..eee0593a98d 100644 --- a/source/blender/python/api2_2x/Camera.h +++ b/source/blender/python/api2_2x/Camera.h @@ -116,6 +116,7 @@ struct PyMethodDef M_Camera_methods[] = { /*****************************************************************************/ /* Python BPy_Camera methods declarations: */ /*****************************************************************************/ +static PyObject *Camera_getIpo(BPy_Camera *self); static PyObject *Camera_getName(BPy_Camera *self); static PyObject *Camera_getType(BPy_Camera *self); static PyObject *Camera_getMode(BPy_Camera *self); @@ -123,6 +124,7 @@ static PyObject *Camera_getLens(BPy_Camera *self); static PyObject *Camera_getClipStart(BPy_Camera *self); static PyObject *Camera_getClipEnd(BPy_Camera *self); static PyObject *Camera_getDrawSize(BPy_Camera *self); +static PyObject *Camera_setIpo(BPy_Camera *self, PyObject *args); static PyObject *Camera_setName(BPy_Camera *self, PyObject *args); static PyObject *Camera_setType(BPy_Camera *self, PyObject *args); static PyObject *Camera_setIntType(BPy_Camera *self, PyObject *args); @@ -138,6 +140,8 @@ static PyObject *Camera_setDrawSize(BPy_Camera *self, PyObject *args); /*****************************************************************************/ static PyMethodDef BPy_Camera_methods[] = { /* name, method, flags, doc */ + {"getIpo", (PyCFunction)Camera_getIpo, METH_NOARGS, + "() - Return Camera Data Ipo's"}, {"getName", (PyCFunction)Camera_getName, METH_NOARGS, "() - Return Camera Data name"}, {"getType", (PyCFunction)Camera_getType, METH_NOARGS, @@ -153,6 +157,8 @@ static PyMethodDef BPy_Camera_methods[] = { "() - Return Camera clip end value"}, {"getDrawSize", (PyCFunction)Camera_getDrawSize, METH_NOARGS, "() - Return Camera draw size value"}, + {"setIpo", (PyCFunction)Camera_setIpo, METH_VARARGS, + "(O) - Set Camera Ipo"}, {"setName", (PyCFunction)Camera_setName, METH_VARARGS, "(s) - Set Camera Data name"}, {"setType", (PyCFunction)Camera_setType, METH_VARARGS, diff --git a/source/blender/python/api2_2x/Material.c b/source/blender/python/api2_2x/Material.c index 16195bd73b6..17111f38e7a 100644 --- a/source/blender/python/api2_2x/Material.c +++ b/source/blender/python/api2_2x/Material.c @@ -317,6 +317,7 @@ PyObject *Material_Init (void) /*****************************************************************************/ /* Python BPy_Material methods declarations: */ /*****************************************************************************/ +static PyObject *Material_getIpo(BPy_Material *self); static PyObject *Material_getName(BPy_Material *self); static PyObject *Material_getMode(BPy_Material *self); static PyObject *Material_getRGBCol(BPy_Material *self); @@ -624,6 +625,16 @@ Material * GetMaterialByName (char * name) /*****************************************************************************/ /* Python BPy_Material methods: */ /*****************************************************************************/ + +static PyObject *Material_getIpo(BPy_Material *self) +{ + typedef struct Ipo Ipo; +PyObject *Ipo_CreatePyObject (Ipo *ipo); + struct Ipo*ipo = self->material->ipo; + if (!ipo) return EXPP_ReturnPyObjError(PyExc_RuntimeError,"Material has no Ipo"); + return Ipo_CreatePyObject (ipo); +} + static PyObject *Material_getName(BPy_Material *self) { PyObject *attr = PyString_FromString(self->material->id.name+2); diff --git a/source/blender/python/api2_2x/World.c b/source/blender/python/api2_2x/World.c index aaa1c12df9d..75ff9dcb53d 100644 --- a/source/blender/python/api2_2x/World.c +++ b/source/blender/python/api2_2x/World.c @@ -226,14 +226,15 @@ PyObject *World_Init (void) /* Python BPy_World methods: */ /*****************************************************************************/ -/** - * \defgroup World_Methods World Method Functions - * - * These are the World PyObject method functions. They are used to get and - * set values for the World Data member variables. - */ -/*@{*/ + +static PyObject *World_getIpo(BPy_World *self) +{ +PyObject *Ipo_CreatePyObject (Ipo *ipo); + struct Ipo*ipo = self->world->ipo; + if (!ipo) return EXPP_ReturnPyObjError(PyExc_RuntimeError,"World has no Ipo"); + return Ipo_CreatePyObject (ipo); +} /** * \brief World PyMethod getName diff --git a/source/blender/python/api2_2x/World.h b/source/blender/python/api2_2x/World.h index f6c74fc5626..4fec474aa5d 100644 --- a/source/blender/python/api2_2x/World.h +++ b/source/blender/python/api2_2x/World.h @@ -79,6 +79,7 @@ struct PyMethodDef M_World_methods[] = { /*****************************************************************************/ /* Python BPy_World methods declarations: */ /*****************************************************************************/ +static PyObject *World_getIpo(BPy_World *self); static PyObject *World_getName(BPy_World *self); static PyObject *World_setName(BPy_World *self, PyObject *args); static PyObject *World_getSkytype(BPy_World *self); @@ -100,6 +101,8 @@ static PyObject *World_setMist(BPy_World *self, PyObject *args ); /* Python BPy_World methods table: */ /*****************************************************************************/ static PyMethodDef BPy_World_methods[] = { + {"getIpo", (PyCFunction)World_getIpo, METH_NOARGS, + "() - Return World Ipo"}, {"getName", (PyCFunction)World_getName, METH_NOARGS, "() - Return World Data name"}, {"setName", (PyCFunction)World_setName, METH_VARARGS, |