diff options
author | Tavian Barnes <tavianator@gmail.com> | 2011-05-16 08:07:27 -0600 |
---|---|---|
committer | Tavian Barnes <tavianator@gmail.com> | 2011-05-16 08:07:27 -0600 |
commit | 87bc3cb4fcaf0e3ead4c41e8c56a06cf481875c0 (patch) | |
tree | 21d197a48775d0aefa4be66c28986c24740506e4 /libdimension-python/dimension.c | |
parent | 811e883fd115dce835aa89999d6f8b85752e80da (diff) | |
download | dimension-87bc3cb4fcaf0e3ead4c41e8c56a06cf481875c0.tar.xz |
Start Python interface.
Diffstat (limited to 'libdimension-python/dimension.c')
-rw-r--r-- | libdimension-python/dimension.c | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/libdimension-python/dimension.c b/libdimension-python/dimension.c new file mode 100644 index 0000000..35b9f4c --- /dev/null +++ b/libdimension-python/dimension.c @@ -0,0 +1,81 @@ +/************************************************************************* + * Copyright (C) 2009-2011 Tavian Barnes <tavianator@tavianator.com> * + * * + * This file is part of The Dimension Python Extension. * + * * + * The Dimension Python Extension is free software; you can redistribute * + * it and/ or modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either version * + * 3 of the License, or (at your option) any later version. * + * * + * The Dimension Python Extension is distributed in the hope that it * + * will be useful, but WITHOUT ANY WARRANTY; without even the implied * + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See * + * the GNU Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public * + * License along with this program. If not, see * + * <http://www.gnu.org/licenses/>. * + *************************************************************************/ + +#include <Python.h> +#include "dimension.h" + +typedef struct { + PyObject_HEAD + dmnsn_scene *scene; +} dmnsn_SceneObject; + +static PyTypeObject dmnsn_SceneType = { + PyVarObject_HEAD_INIT(NULL, 0) + "dimension.Scene", /* tp_name */ + sizeof(dmnsn_SceneObject), /* tp_basicsize */ + 0, /* tp_itemsize */ + 0, /* tp_dealloc */ + 0, /* tp_print */ + 0, /* tp_getattr */ + 0, /* tp_setattr */ + 0, /* tp_reserved */ + 0, /* tp_repr */ + 0, /* tp_as_number */ + 0, /* tp_as_sequence */ + 0, /* tp_as_mapping */ + 0, /* tp_hash */ + 0, /* tp_call */ + 0, /* tp_str */ + 0, /* tp_getattro */ + 0, /* tp_setattro */ + 0, /* tp_as_buffer */ + Py_TPFLAGS_DEFAULT, /* tp_flags */ + "Dimension scene", /* tp_doc */ +}; + +static PyMethodDef DimensionMethods[] = { + { NULL, NULL, 0, NULL } /* Sentinel */ +}; + +static struct PyModuleDef dimensionmodule = { + PyModuleDef_HEAD_INIT, + "dimension", + NULL, + -1, + DimensionMethods +}; + +PyMODINIT_FUNC +PyInit_dimension(void) +{ + dmnsn_SceneType.tp_new = PyType_GenericNew; + if (PyType_Ready(&dmnsn_SceneType) < 0) { + return NULL; + } + + PyObject *m = PyModule_Create(&dimensionmodule); + if (!m) { + return NULL; + } + + Py_INCREF(&dmnsn_SceneType); + PyModule_AddObject(m, "Scene", (PyObject *)&dmnsn_SceneType); + return m; +} |