Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Swaney <sswaney@centurytel.net>2004-03-29 12:16:18 +0400
committerStephen Swaney <sswaney@centurytel.net>2004-03-29 12:16:18 +0400
commitf3feb77918142cbff73536b40568997482f0846b (patch)
treea257a2d77ff081202006235590fa6a78d8b248e2 /source/blender/python/api2_2x/BezTriple.c
parent0a6d0e62e16de88712cd5770b946bd6d7ff004b1 (diff)
General housekeeping and cleanup. Move static declarations and
data definitions from .h files into corresponding .c files. Blame zr for this since he's the one who pointed out that our bpy headers were a mish-mash of stuff that belonged in the .c files! In a nutshell, the headers should contain the declarations necessary to use a module or class. The implementation files ( .c in this case ) should contain statements that allocate storage ( definitions in the C sense ) and executable code. When used at file scope, the keyword 'static' means "don't tell anyone else about this". Since headers describe a public interface, static declarations and definitions belong in the implementation files. The net result of all this is that after stuff has moved out into the .c files, the .h files are empty or mostly empty. I didn't delete them since there seem to be some public declarations and because I did not want to cause too much disruption at one time. Time enough for that later!
Diffstat (limited to 'source/blender/python/api2_2x/BezTriple.c')
-rw-r--r--source/blender/python/api2_2x/BezTriple.c262
1 files changed, 197 insertions, 65 deletions
diff --git a/source/blender/python/api2_2x/BezTriple.c b/source/blender/python/api2_2x/BezTriple.c
index fb7de1b5d87..94911cac1e7 100644
--- a/source/blender/python/api2_2x/BezTriple.c
+++ b/source/blender/python/api2_2x/BezTriple.c
@@ -31,13 +31,103 @@
#include "BezTriple.h"
+#include <Python.h>
+
+#include <BKE_main.h>
+#include <BKE_global.h>
+#include <BKE_object.h>
+#include <BKE_library.h>
+#include <BLI_blenlib.h>
+#include <DNA_ipo_types.h>
+
+#include "constant.h"
+#include "gen_utils.h"
+#include "modules.h"
+
+/*****************************************************************************/
+/* Python API function prototypes for the BezTriple module. */
+/*****************************************************************************/
+static PyObject *M_BezTriple_New (PyObject * self, PyObject * args);
+static PyObject *M_BezTriple_Get (PyObject * self, PyObject * args);
+
+/*****************************************************************************/
+/* Python C_BezTriple instance methods declarations: */
+/*****************************************************************************/
+static PyObject *BezTriple_setPoints (C_BezTriple * self, PyObject * args);
+static PyObject *BezTriple_getPoints (C_BezTriple * self);
+static PyObject *BezTriple_getTriple (C_BezTriple * self);
+
+/*****************************************************************************/
+/* Python BezTriple_Type callback function prototypes: */
+/*****************************************************************************/
+static void BezTripleDeAlloc (C_BezTriple * self);
+static int BezTripleSetAttr (C_BezTriple * self, char *name, PyObject * v);
+static PyObject *BezTripleGetAttr (C_BezTriple * self, char *name);
+static PyObject *BezTripleRepr (C_BezTriple * self);
+
+/*****************************************************************************/
+/* Python method structure definition for Blender.BezTriple module: */
+/*****************************************************************************/
+
+struct PyMethodDef M_BezTriple_methods[] = {
+ {"New", (PyCFunction) M_BezTriple_New, METH_VARARGS | METH_KEYWORDS, 0},
+ {"Get", M_BezTriple_Get, METH_VARARGS, 0},
+ {"get", M_BezTriple_Get, METH_VARARGS, 0},
+ {NULL, NULL, 0, NULL}
+};
+
+/*****************************************************************************/
+/* Python C_BezTriple methods table: */
+/*****************************************************************************/
+static PyMethodDef C_BezTriple_methods[] = {
+ /* name, method, flags, doc */
+ {"setPoints", (PyCFunction) BezTriple_setPoints, METH_VARARGS,
+ "(str) - Change BezTriple point coordinates"},
+ {"getPoints", (PyCFunction) BezTriple_getPoints, METH_NOARGS,
+ "() - return BezTriple knot point x and y coordinates"},
+ {"getTriple", (PyCFunction) BezTriple_getTriple, METH_VARARGS,
+ "() - return list of floating point triplets. order is H1, knot, H2"},
+ {NULL, NULL, 0, NULL}
+};
+
+
+/*****************************************************************************/
+/* Python BezTriple_Type structure definition: */
+/*****************************************************************************/
+PyTypeObject BezTriple_Type = {
+ PyObject_HEAD_INIT (NULL) 0, /* ob_size */
+ "BezTriple", /* tp_name */
+ sizeof (C_BezTriple), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ /* methods */
+ (destructor) BezTripleDeAlloc, /* tp_dealloc */
+ 0, /* tp_print */
+ (getattrfunc) BezTripleGetAttr, /* tp_getattr */
+ (setattrfunc) BezTripleSetAttr, /* tp_setattr */
+ 0, /* tp_compare */
+ (reprfunc) BezTripleRepr, /* tp_repr */
+ 0, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ 0, /* tp_as_hash */
+ 0, 0, 0, 0, 0, 0,
+ 0, /* tp_doc */
+ 0, 0, 0, 0, 0, 0,
+ C_BezTriple_methods, /* tp_methods */
+ 0, /* tp_members */
+ 0, /* tm_getset */
+ 0
+};
+
+
/*****************************************************************************/
/* Function: M_BezTriple_New */
/* Python equivalent: Blender.BezTriple.New */
/*****************************************************************************/
-static PyObject *M_BezTriple_New(PyObject *self, PyObject *args)
+static PyObject *
+M_BezTriple_New (PyObject * self, PyObject * args)
{
- return 0;
+ return 0;
}
/*****************************************************************************/
@@ -48,60 +138,83 @@ static PyObject *M_BezTriple_New(PyObject *self, PyObject *args)
/* passed in, a list of all ipo data names in the */
/* current scene is returned. */
/*****************************************************************************/
-static PyObject *M_BezTriple_Get(PyObject *self, PyObject *args)
+static PyObject *
+M_BezTriple_Get (PyObject * self, PyObject * args)
{
- return 0;
+ return 0;
}
-
-
-
/*****************************************************************************/
/* Function: BezTripleDeAlloc */
/* Description: This is a callback function for the C_BezTriple type. It is */
/* the destructor function. */
/*****************************************************************************/
-static void BezTripleDeAlloc (C_BezTriple *self)
+static void
+BezTripleDeAlloc (C_BezTriple * self)
{
PyObject_DEL (self);
}
-static PyObject* BezTriple_getPoints (C_BezTriple *self)
-{
-struct BezTriple *bezt = self->beztriple;
- PyObject* l = PyList_New(0);
- int i;
- for(i = 0;i<2;i++)
- {
- PyList_Append( l, PyFloat_FromDouble(bezt->vec[1][i]));
- }
+static PyObject *
+BezTriple_getPoints (C_BezTriple * self)
+{
+ struct BezTriple *bezt = self->beztriple;
+ PyObject *l = PyList_New (0);
+ int i;
+ for (i = 0; i < 2; i++)
+ {
+ PyList_Append (l, PyFloat_FromDouble (bezt->vec[1][i]));
+ }
return l;
}
-static PyObject * BezTriple_setPoints (C_BezTriple *self,PyObject *args)
-{
+static PyObject *
+BezTriple_getTriple (C_BezTriple * self)
+{
+ int i;
+ struct BezTriple *bezt = self->beztriple;
+ PyObject *retlist = PyList_New (0);
+ PyObject *point;
- int i;
- struct BezTriple *bezt = self->beztriple;
- PyObject*popo = 0;
- if (!PyArg_ParseTuple(args, "O", &popo))
- return (EXPP_ReturnPyObjError (PyExc_TypeError,"expected tuple argument"));
- if ( PyTuple_Check(popo) == 0)
- {
- puts("error in BezTriple_setPoints");
- Py_INCREF(Py_None);
- return Py_None;
- }
- for(i = 0;i<2;i++)
- {
- bezt->vec[1][i] = PyFloat_AsDouble(PyTuple_GetItem(popo, i));
- bezt->vec[0][i] = bezt->vec[1][i] -1;
- bezt->vec[2][i] = bezt->vec[1][i] +1;
- }
+ for (i = 0; i < 3; i++)
+ {
+ point = Py_BuildValue ("[fff]",
+ bezt->vec[i][0],
+ bezt->vec[i][1], bezt->vec[i][2]);
+
+ PyList_Append (retlist, point);
+ }
+
+ return retlist;
+}
+
+
+static PyObject *
+BezTriple_setPoints (C_BezTriple * self, PyObject * args)
+{
+
+ int i;
+ struct BezTriple *bezt = self->beztriple;
+ PyObject *popo = 0;
+ if (!PyArg_ParseTuple (args, "O", &popo))
+ return (EXPP_ReturnPyObjError
+ (PyExc_TypeError, "expected tuple argument"));
+ if (PyTuple_Check (popo) == 0)
+ {
+ puts ("error in BezTriple_setPoints");
+ Py_INCREF (Py_None);
+ return Py_None;
+ }
+ for (i = 0; i < 2; i++)
+ {
+ bezt->vec[1][i] = PyFloat_AsDouble (PyTuple_GetItem (popo, i));
+ bezt->vec[0][i] = bezt->vec[1][i] - 1;
+ bezt->vec[2][i] = bezt->vec[1][i] + 1;
+ }
- Py_INCREF(Py_None);
+ Py_INCREF (Py_None);
return Py_None;
}
@@ -112,10 +225,12 @@ static PyObject * BezTriple_setPoints (C_BezTriple *self,PyObject *args)
/* the function that accesses C_BezTriple "member variables" and */
/* methods. */
/*****************************************************************************/
-static PyObject *BezTripleGetAttr (C_BezTriple *self, char *name)
+static PyObject *
+BezTripleGetAttr (C_BezTriple * self, char *name)
{
-if (strcmp (name, "pt") == 0)return BezTriple_getPoints(self);
- return Py_FindMethod(C_BezTriple_methods, (PyObject *)self, name);
+ if (strcmp (name, "pt") == 0)
+ return BezTriple_getPoints (self);
+ return Py_FindMethod (C_BezTriple_methods, (PyObject *) self, name);
}
/*****************************************************************************/
@@ -123,10 +238,12 @@ if (strcmp (name, "pt") == 0)return BezTriple_getPoints(self);
/* Description: This is a callback function for the C_BezTriple type. It is the */
/* function that sets BezTriple Data attributes (member variables).*/
/*****************************************************************************/
-static int BezTripleSetAttr (C_BezTriple *self, char *name, PyObject *value)
+static int
+BezTripleSetAttr (C_BezTriple * self, char *name, PyObject * value)
{
- if (strcmp (name, "pt") == 0) BezTriple_setPoints(self,value);
- return 0; /* normal exit */
+ if (strcmp (name, "pt") == 0)
+ BezTriple_setPoints (self, value);
+ return 0; /* normal exit */
}
/*****************************************************************************/
@@ -134,17 +251,29 @@ static int BezTripleSetAttr (C_BezTriple *self, char *name, PyObject *value)
/* Description: This is a callback function for the C_BezTriple type. It */
/* builds a meaninful string to represent BezTriple objects. */
/*****************************************************************************/
-static PyObject *BezTripleRepr (C_BezTriple *self)
+static PyObject *
+BezTripleRepr (C_BezTriple * self)
{
- /* float vec[3][3];
- float alfa;
- short s[3][2];
- short h1, h2;
- char f1, f2, f3, hide;
- */
- char str[1000];
- sprintf(str,"BezTriple %f %f %f %f %f %f %f %f %f %f\n %d %d %d %d %d %d %d %d %d %d %d %d\n",self->beztriple->vec[0][0],self->beztriple->vec[0][1],self->beztriple->vec[0][2],self->beztriple->vec[1][0],self->beztriple->vec[1][1],self->beztriple->vec[1][2],self->beztriple->vec[2][0],self->beztriple->vec[2][1],self->beztriple->vec[2][2],self->beztriple->alfa,self->beztriple->s[0][0],self->beztriple->s[0][1],self->beztriple->s[1][0],self->beztriple->s[1][1],self->beztriple->s[2][0],self->beztriple->s[1][1],self->beztriple->h1,self->beztriple->h2,self->beztriple->f1,self->beztriple->f2,self->beztriple->f3,self->beztriple->hide);
- return PyString_FromString(str);
+ /* float vec[3][3];
+ float alfa;
+ short s[3][2];
+ short h1, h2;
+ char f1, f2, f3, hide;
+ */
+ char str[1000];
+ sprintf (str,
+ "BezTriple %f %f %f %f %f %f %f %f %f %f\n %d %d %d %d %d %d %d %d %d %d %d %d\n",
+ self->beztriple->vec[0][0], self->beztriple->vec[0][1],
+ self->beztriple->vec[0][2], self->beztriple->vec[1][0],
+ self->beztriple->vec[1][1], self->beztriple->vec[1][2],
+ self->beztriple->vec[2][0], self->beztriple->vec[2][1],
+ self->beztriple->vec[2][2], self->beztriple->alfa,
+ self->beztriple->s[0][0], self->beztriple->s[0][1],
+ self->beztriple->s[1][0], self->beztriple->s[1][1],
+ self->beztriple->s[2][0], self->beztriple->s[1][1],
+ self->beztriple->h1, self->beztriple->h2, self->beztriple->f1,
+ self->beztriple->f2, self->beztriple->f3, self->beztriple->hide);
+ return PyString_FromString (str);
}
/* Three Python BezTriple_Type helper functions needed by the Object module: */
@@ -154,19 +283,20 @@ static PyObject *BezTripleRepr (C_BezTriple *self)
/* Description: This function will create a new C_BezTriple from an existing */
/* Blender ipo structure. */
/*****************************************************************************/
-PyObject *BezTriple_CreatePyObject (BezTriple *bzt)
+PyObject *
+BezTriple_CreatePyObject (BezTriple * bzt)
{
- C_BezTriple *pybeztriple;
+ C_BezTriple *pybeztriple;
- pybeztriple = (C_BezTriple *)PyObject_NEW (C_BezTriple, &BezTriple_Type);
+ pybeztriple = (C_BezTriple *) PyObject_NEW (C_BezTriple, &BezTriple_Type);
- if (!pybeztriple)
- return EXPP_ReturnPyObjError (PyExc_MemoryError,
- "couldn't create C_BezTriple object");
+ if (!pybeztriple)
+ return EXPP_ReturnPyObjError (PyExc_MemoryError,
+ "couldn't create C_BezTriple object");
- pybeztriple->beztriple = bzt;
+ pybeztriple->beztriple = bzt;
- return (PyObject *)pybeztriple;
+ return (PyObject *) pybeztriple;
}
/*****************************************************************************/
@@ -174,9 +304,10 @@ PyObject *BezTriple_CreatePyObject (BezTriple *bzt)
/* Description: This function returns true when the given PyObject is of the */
/* type BezTriple. Otherwise it will return false. */
/*****************************************************************************/
-int BezTriple_CheckPyObject (PyObject *pyobj)
+int
+BezTriple_CheckPyObject (PyObject * pyobj)
{
- return (pyobj->ob_type == &BezTriple_Type);
+ return (pyobj->ob_type == &BezTriple_Type);
}
/*****************************************************************************/
@@ -184,7 +315,8 @@ int BezTriple_CheckPyObject (PyObject *pyobj)
/* Description: This function returns the Blender beztriple from the given */
/* PyObject. */
/*****************************************************************************/
-BezTriple *BezTriple_FromPyObject (PyObject *pyobj)
+BezTriple *
+BezTriple_FromPyObject (PyObject * pyobj)
{
- return ((C_BezTriple *)pyobj)->beztriple;
+ return ((C_BezTriple *) pyobj)->beztriple;
}