diff options
Diffstat (limited to 'source/blender/freestyle/intern/python/Interface0D/ViewVertex/BPy_NonTVertex.cpp')
-rw-r--r-- | source/blender/freestyle/intern/python/Interface0D/ViewVertex/BPy_NonTVertex.cpp | 144 |
1 files changed, 87 insertions, 57 deletions
diff --git a/source/blender/freestyle/intern/python/Interface0D/ViewVertex/BPy_NonTVertex.cpp b/source/blender/freestyle/intern/python/Interface0D/ViewVertex/BPy_NonTVertex.cpp index 8aca6ef9ede..c842be49136 100644 --- a/source/blender/freestyle/intern/python/Interface0D/ViewVertex/BPy_NonTVertex.cpp +++ b/source/blender/freestyle/intern/python/Interface0D/ViewVertex/BPy_NonTVertex.cpp @@ -9,22 +9,101 @@ extern "C" { /////////////////////////////////////////////////////////////////////////////////////////// -/*--------------- Python API function prototypes for NonTVertex___init__ instance -----------*/ -static int NonTVertex___init__(BPy_NonTVertex *self, PyObject *args, PyObject *kwds); +//------------------------INSTANCE METHODS ---------------------------------- + +static char NonTVertex___doc__[] = +"View vertex for corners, cusps, etc. associated to a single SVertex.\n" +"Can be associated to 2 or more view edges.\n" +"\n" +".. method:: __init__()\n" +"\n" +" Default constructor.\n" +"\n" +".. method:: __init__(iBrother)\n" +"\n" +" Copy constructor.\n" +"\n" +" :arg iBrother: A NonTVertex object.\n" +" :type iBrother: :class:`NonTVertex`\n" +"\n" +".. method:: __init__(iSVertex)\n" +"\n" +" Builds a NonTVertex from a SVertex.\n" +"\n" +" :arg iSVertex: An SVertex object.\n" +" :type iSVertex: :class:`SVertex`\n"; + +static int NonTVertex___init__(BPy_NonTVertex *self, PyObject *args, PyObject *kwds) +{ + + PyObject *obj = 0; + + if (! PyArg_ParseTuple(args, "|O!", &SVertex_Type, &obj) ) + return -1; + + if( !obj ){ + self->ntv = new NonTVertex(); + + } else if( ((BPy_SVertex *) obj)->sv ) { + self->ntv = new NonTVertex( ((BPy_SVertex *) obj)->sv ); + + } else { + PyErr_SetString(PyExc_TypeError, "invalid argument"); + return -1; + } + + self->py_vv.vv = self->ntv; + self->py_vv.py_if0D.if0D = self->ntv; + self->py_vv.py_if0D.borrowed = 0; -static PyObject * NonTVertex_svertex( BPy_NonTVertex *self ); -static PyObject * NonTVertex_setSVertex( BPy_NonTVertex *self, PyObject *args); + return 0; +} + +static char NonTVertex_svertex___doc__[] = +".. method:: svertex()\n" +"\n" +" Returns the SVertex on top of which this NonTVertex is built.\n" +"\n" +" :return: The SVertex on top of which this NonTVertex is built.\n" +" :rtype: :class:`SVertex`\n"; + +static PyObject * NonTVertex_svertex( BPy_NonTVertex *self ) { + SVertex *v = self->ntv->svertex(); + if( v ){ + return BPy_SVertex_from_SVertex( *v ); + } + + Py_RETURN_NONE; +} + +static char NonTVertex_setSVertex___doc__[] = +".. method:: setSVertex(iSVertex)\n" +"\n" +" Sets the SVertex on top of which this NonTVertex is built.\n" +"\n" +" :arg iSVertex: The SVertex on top of which this NonTVertex is built.\n" +" :type iSVertex: :class:`SVertex`\n"; + +static PyObject * NonTVertex_setSVertex( BPy_NonTVertex *self, PyObject *args) { + PyObject *py_sv; + + if(!( PyArg_ParseTuple(args, "O!", &SVertex_Type, &py_sv) )) + return NULL; + + self->ntv->setSVertex( ((BPy_SVertex *) py_sv)->sv ); + + Py_RETURN_NONE; +} /*----------------------NonTVertex instance definitions ----------------------------*/ static PyMethodDef BPy_NonTVertex_methods[] = { // {"__copy__", ( PyCFunction ) NonTVertex___copy__, METH_NOARGS, "() Cloning method."}, - {"svertex", ( PyCFunction ) NonTVertex_svertex, METH_NOARGS, "() Returns the SVertex on top of which this NonTVertex is built. "}, - {"setSVertex", ( PyCFunction ) NonTVertex_setSVertex, METH_VARARGS, "(SVertex sv) Sets the SVertex on top of which this NonTVertex is built. "}, + {"svertex", ( PyCFunction ) NonTVertex_svertex, METH_NOARGS, NonTVertex_svertex___doc__}, + {"setSVertex", ( PyCFunction ) NonTVertex_setSVertex, METH_VARARGS, NonTVertex_setSVertex___doc__}, {NULL, NULL, 0, NULL} }; /*-----------------------BPy_NonTVertex type definition ------------------------------*/ - PyTypeObject NonTVertex_Type = { PyVarObject_HEAD_INIT(NULL, 0) "NonTVertex", /* tp_name */ @@ -46,7 +125,7 @@ PyTypeObject NonTVertex_Type = { 0, /* tp_setattro */ 0, /* tp_as_buffer */ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ - "NonTVertex objects", /* tp_doc */ + NonTVertex___doc__, /* tp_doc */ 0, /* tp_traverse */ 0, /* tp_clear */ 0, /* tp_richcompare */ @@ -66,55 +145,6 @@ PyTypeObject NonTVertex_Type = { 0, /* tp_new */ }; -//------------------------INSTANCE METHODS ---------------------------------- - -int NonTVertex___init__(BPy_NonTVertex *self, PyObject *args, PyObject *kwds) -{ - - PyObject *obj = 0; - - if (! PyArg_ParseTuple(args, "|O!", &SVertex_Type, &obj) ) - return -1; - - if( !obj ){ - self->ntv = new NonTVertex(); - - } else if( ((BPy_SVertex *) obj)->sv ) { - self->ntv = new NonTVertex( ((BPy_SVertex *) obj)->sv ); - - } else { - PyErr_SetString(PyExc_TypeError, "invalid argument"); - return -1; - } - - self->py_vv.vv = self->ntv; - self->py_vv.py_if0D.if0D = self->ntv; - self->py_vv.py_if0D.borrowed = 0; - - return 0; -} - -PyObject * NonTVertex_svertex( BPy_NonTVertex *self ) { - SVertex *v = self->ntv->svertex(); - if( v ){ - return BPy_SVertex_from_SVertex( *v ); - } - - Py_RETURN_NONE; -} - -PyObject * NonTVertex_setSVertex( BPy_NonTVertex *self, PyObject *args) { - PyObject *py_sv; - - if(!( PyArg_ParseTuple(args, "O!", &SVertex_Type, &py_sv) )) - return NULL; - - self->ntv->setSVertex( ((BPy_SVertex *) py_sv)->sv ); - - Py_RETURN_NONE; -} - - /////////////////////////////////////////////////////////////////////////////////////////// #ifdef __cplusplus |