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:
Diffstat (limited to 'source/blender/freestyle/intern/python/BPy_ViewShape.cpp')
-rw-r--r--source/blender/freestyle/intern/python/BPy_ViewShape.cpp347
1 files changed, 154 insertions, 193 deletions
diff --git a/source/blender/freestyle/intern/python/BPy_ViewShape.cpp b/source/blender/freestyle/intern/python/BPy_ViewShape.cpp
index eebfa88773c..95e17251194 100644
--- a/source/blender/freestyle/intern/python/BPy_ViewShape.cpp
+++ b/source/blender/freestyle/intern/python/BPy_ViewShape.cpp
@@ -12,22 +12,23 @@ extern "C" {
///////////////////////////////////////////////////////////////////////////////////////////
//-------------------MODULE INITIALIZATION--------------------------------
-int ViewShape_Init( PyObject *module )
+
+int ViewShape_Init(PyObject *module)
{
- if( module == NULL )
+ if (module == NULL)
return -1;
- if( PyType_Ready( &ViewShape_Type ) < 0 )
+ if (PyType_Ready(&ViewShape_Type) < 0)
return -1;
-
- Py_INCREF( &ViewShape_Type );
+ Py_INCREF(&ViewShape_Type);
PyModule_AddObject(module, "ViewShape", (PyObject *)&ViewShape_Type);
+
return 0;
}
-//------------------------INSTANCE METHODS ----------------------------------
+/*----------------------ViewShape methods ----------------------------*/
-static char ViewShape___doc__[] =
+PyDoc_STRVAR(ViewShape_doc,
"Class gathering the elements of the ViewMap (i.e., :class:`ViewVertex`\n"
"and :class:`ViewEdge`) that are issued from the same input shape.\n"
"\n"
@@ -47,23 +48,23 @@ static char ViewShape___doc__[] =
" Builds a ViewShape from an SShape.\n"
"\n"
" :arg iSShape: An SShape object.\n"
-" :type iSShape: :class:`SShape`\n";
+" :type iSShape: :class:`SShape`");
-static int ViewShape___init__(BPy_ViewShape *self, PyObject *args, PyObject *kwds)
+static int ViewShape_init(BPy_ViewShape *self, PyObject *args, PyObject *kwds)
{
PyObject *obj;
- if (! PyArg_ParseTuple(args, "|O", &obj) )
- return -1;
+ if (!PyArg_ParseTuple(args, "|O", &obj))
+ return -1;
- if( !obj ) {
+ if (!obj) {
self->vs = new ViewShape();
-
- } else if( BPy_SShape_Check(obj) ) {
- self->vs = new ViewShape( ((BPy_SShape *) obj)->ss );
-
- } else if( BPy_ViewShape_Check(obj) ) {
- self->vs = new ViewShape(*( ((BPy_ViewShape *) obj)->vs ));
+
+ } else if (BPy_SShape_Check(obj)) {
+ self->vs = new ViewShape(((BPy_SShape *)obj)->ss);
+
+ } else if (BPy_ViewShape_Check(obj)) {
+ self->vs = new ViewShape(*(((BPy_ViewShape *)obj)->vs));
} else {
PyErr_SetString(PyExc_TypeError, "invalid argument");
@@ -71,236 +72,196 @@ static int ViewShape___init__(BPy_ViewShape *self, PyObject *args, PyObject *kwd
}
self->borrowed = 0;
- return 0;
+ return 0;
}
-static void ViewShape___dealloc__(BPy_ViewShape *self)
+static void ViewShape_dealloc(BPy_ViewShape *self)
{
- if( self->vs && !self->borrowed )
+ if (self->vs && !self->borrowed)
delete self->vs;
- Py_TYPE(self)->tp_free((PyObject*)self);
+ Py_TYPE(self)->tp_free((PyObject*)self);
}
-static PyObject * ViewShape___repr__(BPy_ViewShape *self)
+static PyObject * ViewShape_repr(BPy_ViewShape *self)
{
- return PyUnicode_FromFormat("ViewShape - address: %p", self->vs );
+ return PyUnicode_FromFormat("ViewShape - address: %p", self->vs );
}
-static char ViewShape_sshape___doc__[] =
-".. method:: sshape()\n"
+PyDoc_STRVAR(ViewShape_add_edge_doc,
+".. method:: add_edge(iEdge)\n"
"\n"
-" Returns the SShape on top of which this ViewShape is built.\n"
+" Adds a ViewEdge to the list of ViewEdge objects.\n"
"\n"
-" :return: The SShape on top of which this ViewShape is built.\n"
-" :rtype: :class:`SShape`\n";
+" :arg iEdge: A ViewEdge object.\n"
+" :type iEdge: :class:`ViewEdge`\n");
-static PyObject * ViewShape_sshape( BPy_ViewShape *self ) {
- return BPy_SShape_from_SShape( *(self->vs->sshape()) );
+static PyObject * ViewShape_add_edge(BPy_ViewShape *self , PyObject *args)
+{
+ PyObject *py_ve = 0;
+
+ if (!PyArg_ParseTuple(args, "O!", &ViewEdge_Type, &py_ve))
+ return NULL;
+ self->vs->AddEdge(((BPy_ViewEdge *)py_ve)->ve);
+ Py_RETURN_NONE;
}
-static char ViewShape_vertices___doc__[] =
-".. method:: vertices()\n"
+PyDoc_STRVAR(ViewShape_add_vertex_doc,
+".. method:: add_vertex(iVertex)\n"
"\n"
-" Returns the list of ViewVertex objects contained in this ViewShape.\n"
+" Adds a ViewVertex to the list of the ViewVertex objects.\n"
"\n"
-" :return: The list of ViewVertex objects.\n"
-" :rtype: List of :class:`ViewVertex` objects\n";
+" :arg iVertex: A ViewVertex object.\n"
+" :type iVertex: :class:`ViewVertex`");
-static PyObject * ViewShape_vertices( BPy_ViewShape *self ) {
- PyObject *py_vertices = PyList_New(0);
+static PyObject * ViewShape_add_vertex(BPy_ViewShape *self , PyObject *args)
+{
+ PyObject *py_vv = 0;
- vector< ViewVertex * > vertices = self->vs->vertices();
- vector< ViewVertex * >::iterator it;
-
- for( it = vertices.begin(); it != vertices.end(); it++ ) {
- PyList_Append( py_vertices, Any_BPy_ViewVertex_from_ViewVertex(*( *it )) );
- }
-
- return py_vertices;
+ if (!PyArg_ParseTuple(args, "O!", &ViewVertex_Type, &py_vv))
+ return NULL;
+ self->vs->AddVertex(((BPy_ViewVertex *)py_vv)->vv);
+ Py_RETURN_NONE;
}
-static char ViewShape_edges___doc__[] =
-".. method:: edges()\n"
-"\n"
-" Returns the list of ViewEdge objects contained in this ViewShape.\n"
-"\n"
-" :return: The list of ViewEdge objects.\n"
-" :rtype: List of :class:`ViewEdge` objects\n";
+// virtual ViewShape *duplicate()
-static PyObject * ViewShape_edges( BPy_ViewShape *self ) {
- PyObject *py_edges = PyList_New(0);
+static PyMethodDef BPy_ViewShape_methods[] = {
+ {"add_edge", (PyCFunction)ViewShape_add_edge, METH_VARARGS, ViewShape_add_edge_doc},
+ {"add_vertex", (PyCFunction)ViewShape_add_vertex, METH_VARARGS, ViewShape_add_vertex_doc},
+ {NULL, NULL, 0, NULL}
+};
- vector< ViewEdge * > edges = self->vs->edges();
- vector< ViewEdge * >::iterator it;
-
- for( it = edges.begin(); it != edges.end(); it++ ) {
- PyList_Append( py_edges, BPy_ViewEdge_from_ViewEdge(*( *it )) );
- }
-
- return py_edges;
-}
+/*----------------------ViewShape get/setters ----------------------------*/
-static char ViewShape_getId___doc__[] =
-".. method:: getId()\n"
+PyDoc_STRVAR(ViewShape_sshape_doc,
+"The SShape on top of which this ViewShape is built.\n"
"\n"
-" Returns the ViewShape id.\n"
-"\n"
-" :return: An Id object.\n"
-" :rtype: :class:`Id`\n";
+":type: :class:`SShape`");
-static PyObject * ViewShape_getId( BPy_ViewShape *self ) {
- Id id( self->vs->getId() );
- return BPy_Id_from_Id( id );
+static PyObject *ViewShape_sshape_get(BPy_ViewShape *self, void *UNUSED(closure))
+{
+ return BPy_SShape_from_SShape(*(self->vs->sshape()));
}
-static char ViewShape_getName___doc__[] =
-".. method:: getName()\n"
-"\n"
-" Returns the name of the ViewShape.\n"
-"\n"
-" :return: The name string.\n"
-" :rtype: str\n";
-
-static PyObject * ViewShape_getName( BPy_ViewShape *self ) {
- return PyUnicode_FromString( self->vs->getName().c_str() );
+static int ViewShape_sshape_set(BPy_ViewShape *self, PyObject *value, void *UNUSED(closure))
+{
+ if (!BPy_SShape_Check(value)) {
+ PyErr_SetString(PyExc_TypeError, "value must be an SShape");
+ return -1;
+ }
+ self->vs->setSShape(((BPy_SShape *)value)->ss);
+ return 0;
}
-static char ViewShape_setSShape___doc__[] =
-".. method:: setSShape(iSShape)\n"
-"\n"
-" Sets the SShape on top of which the ViewShape is built.\n"
+PyDoc_STRVAR(ViewShape_vertices_doc,
+"The list of ViewVertex objects contained in this ViewShape.\n"
"\n"
-" :arg iSShape: An SShape object.\n"
-" :type iSShape: :class:`SShape`\n";
-
-static PyObject * ViewShape_setSShape( BPy_ViewShape *self , PyObject *args) {
- PyObject *py_ss = 0;
+":type: List of :class:`ViewVertex` objects");
- if(!( PyArg_ParseTuple(args, "O!", &SShape_Type, &py_ss) ))
- return NULL;
-
- self->vs->setSShape( ((BPy_SShape *) py_ss)->ss );
+static PyObject *ViewShape_vertices_get(BPy_ViewShape *self, void *UNUSED(closure))
+{
+ PyObject *py_vertices = PyList_New(0);
- Py_RETURN_NONE;
+ vector< ViewVertex * > vertices = self->vs->vertices();
+ vector< ViewVertex * >::iterator it;
+ for (it = vertices.begin(); it != vertices.end(); it++) {
+ PyList_Append( py_vertices, Any_BPy_ViewVertex_from_ViewVertex(*(*it)));
+ }
+ return py_vertices;
}
-static char ViewShape_setVertices___doc__[] =
-".. method:: setVertices(iVertices)\n"
-"\n"
-" Sets the list of ViewVertex objects contained in this ViewShape.\n"
-"\n"
-" :arg iVertices: The list of ViewVertex objects.\n"
-" :type iVertices: List of :class:`ViewVertex` objects\n";
-
-static PyObject * ViewShape_setVertices( BPy_ViewShape *self , PyObject *args) {
+static int ViewShape_vertices_set(BPy_ViewShape *self, PyObject *value, void *UNUSED(closure))
+{
PyObject *list = 0;
- PyObject *tmp;
-
- if(!( PyArg_ParseTuple(args, "O!", &PyList_Type, &list) ))
- return NULL;
-
+ PyObject *item;
vector< ViewVertex *> v;
- for( int i=0; i < PyList_Size(list); i++ ) {
- tmp = PyList_GetItem(list, i);
- if( BPy_ViewVertex_Check(tmp) )
- v.push_back( ((BPy_ViewVertex *) tmp)->vv );
- else {
- PyErr_SetString(PyExc_TypeError, "argument must be list of ViewVertex objects");
- return NULL;
+ if (!PyList_Check(value)) {
+ PyErr_SetString(PyExc_TypeError, "value must be a list of ViewVertex objects");
+ return -1;
+ }
+ for (int i = 0; i < PyList_Size(list); i++) {
+ item = PyList_GetItem(list, i);
+ if (BPy_ViewVertex_Check(item)) {
+ v.push_back(((BPy_ViewVertex *)item)->vv);
+ } else {
+ PyErr_SetString(PyExc_TypeError, "value must be a list of ViewVertex objects");
+ return -1;
}
}
-
- self->vs->setVertices( v );
-
- Py_RETURN_NONE;
+ self->vs->setVertices(v);
+ return 0;
}
-static char ViewShape_setEdges___doc__[] =
-".. method:: setEdges(iEdges)\n"
-"\n"
-" Sets the list of ViewEdge objects contained in this ViewShape.\n"
+PyDoc_STRVAR(ViewShape_edges_doc,
+"The list of ViewEdge objects contained in this ViewShape.\n"
"\n"
-" :arg iEdges: The list of ViewEdge objects.\n"
-" :type iEdges: List of :class:`ViewEdge` objects.\n";
+":type: List of :class:`ViewEdge` objects");
-static PyObject * ViewShape_setEdges( BPy_ViewShape *self , PyObject *args) {
- PyObject *list = 0;
- PyObject *tmp;
+static PyObject *ViewShape_edges_get(BPy_ViewShape *self, void *UNUSED(closure))
+{
+ PyObject *py_edges = PyList_New(0);
- if(!( PyArg_ParseTuple(args, "O!", &PyList_Type, &list) ))
- return NULL;
+ vector< ViewEdge * > edges = self->vs->edges();
+ vector< ViewEdge * >::iterator it;
+ for (it = edges.begin(); it != edges.end(); it++) {
+ PyList_Append(py_edges, BPy_ViewEdge_from_ViewEdge(*(*it)));
+ }
+ return py_edges;
+}
+
+static int ViewShape_edges_set(BPy_ViewShape *self, PyObject *value, void *UNUSED(closure))
+{
+ PyObject *list = 0;
+ PyObject *item;
vector<ViewEdge *> v;
- for( int i=0; i < PyList_Size(list); i++ ) {
- tmp = PyList_GetItem(list, i);
- if( BPy_ViewEdge_Check(tmp) )
- v.push_back( ((BPy_ViewEdge *) tmp)->ve );
- else {
+ if (!PyList_Check(value)) {
+ PyErr_SetString(PyExc_TypeError, "value must be a list of ViewEdge objects");
+ return -1;
+ }
+ for (int i = 0; i < PyList_Size(list); i++) {
+ item = PyList_GetItem(list, i);
+ if (BPy_ViewEdge_Check(item)) {
+ v.push_back(((BPy_ViewEdge *)item)->ve);
+ } else {
PyErr_SetString(PyExc_TypeError, "argument must be list of ViewEdge objects");
- return NULL;
+ return -1;
}
}
-
- self->vs->setEdges( v );
-
- Py_RETURN_NONE;
+ self->vs->setEdges(v);
+ return 0;
}
-static char ViewShape_AddEdge___doc__[] =
-".. method:: AddEdge(iEdge)\n"
-"\n"
-" Adds a ViewEdge to the list of ViewEdge objects.\n"
+PyDoc_STRVAR(ViewShape_name_doc,
+"The name of the ViewShape.\n"
"\n"
-" :arg iEdge: A ViewEdge object.\n"
-" :type iEdge: :class:`ViewEdge`\n";
-
-static PyObject * ViewShape_AddEdge( BPy_ViewShape *self , PyObject *args) {
- PyObject *py_ve = 0;
+":type: str");
- if(!( PyArg_ParseTuple(args, "O!", &ViewEdge_Type, &py_ve) ))
- return NULL;
-
- self->vs->AddEdge( ((BPy_ViewEdge *) py_ve)->ve );
-
- Py_RETURN_NONE;
+static PyObject *ViewShape_name_get(BPy_ViewShape *self, void *UNUSED(closure))
+{
+ return PyUnicode_FromString(self->vs->getName().c_str());
}
-static char ViewShape_AddVertex___doc__[] =
-".. method:: AddVertex(iVertex)\n"
-"\n"
-" Adds a ViewVertex to the list of the ViewVertex objects.\n"
+PyDoc_STRVAR(ViewShape_id_doc,
+"The Id of this ViewShape.\n"
"\n"
-" :arg iVertex: A ViewVertex object.\n"
-" :type iVertex: :class:`ViewVertex`\n";
-
-static PyObject * ViewShape_AddVertex( BPy_ViewShape *self , PyObject *args) {
- PyObject *py_vv = 0;
-
- if(!( PyArg_ParseTuple(args, "O!", &ViewVertex_Type, &py_vv) ))
- return NULL;
-
- self->vs->AddVertex( ((BPy_ViewVertex *) py_vv)->vv );
+":type: :class:`Id`");
- Py_RETURN_NONE;
+static PyObject *ViewShape_id_get(BPy_ViewShape *self, void *UNUSED(closure))
+{
+ Id id(self->vs->getId());
+ return BPy_Id_from_Id(id); // return a copy
}
-// virtual ViewShape * duplicate ()
-
-/*---------------------- BPy_ViewShape instance definitions ----------------------------*/
-static PyMethodDef BPy_ViewShape_methods[] = {
- {"sshape", ( PyCFunction ) ViewShape_sshape, METH_NOARGS, ViewShape_sshape___doc__},
- {"vertices", ( PyCFunction ) ViewShape_vertices, METH_NOARGS, ViewShape_vertices___doc__},
- {"edges", ( PyCFunction ) ViewShape_edges, METH_NOARGS, ViewShape_edges___doc__},
- {"getId", ( PyCFunction ) ViewShape_getId, METH_NOARGS, ViewShape_getId___doc__},
- {"getName", ( PyCFunction ) ViewShape_getName, METH_NOARGS, ViewShape_getName___doc__},
- {"setSShape", ( PyCFunction ) ViewShape_setSShape, METH_VARARGS, ViewShape_setSShape___doc__},
- {"setVertices", ( PyCFunction ) ViewShape_setVertices, METH_VARARGS, ViewShape_setVertices___doc__},
- {"setEdges", ( PyCFunction ) ViewShape_setEdges, METH_VARARGS, ViewShape_setEdges___doc__},
- {"AddEdge", ( PyCFunction ) ViewShape_AddEdge, METH_VARARGS, ViewShape_AddEdge___doc__},
- {"AddVertex", ( PyCFunction ) ViewShape_AddVertex, METH_VARARGS, ViewShape_AddVertex___doc__},
- {NULL, NULL, 0, NULL}
+static PyGetSetDef BPy_ViewShape_getseters[] = {
+ {(char *)"sshape", (getter)ViewShape_sshape_get, (setter)ViewShape_sshape_set, (char *)ViewShape_sshape_doc, NULL},
+ {(char *)"vertices", (getter)ViewShape_vertices_get, (setter)ViewShape_vertices_set, (char *)ViewShape_vertices_doc, NULL},
+ {(char *)"edges", (getter)ViewShape_edges_get, (setter)ViewShape_edges_set, (char *)ViewShape_edges_doc, NULL},
+ {(char *)"name", (getter)ViewShape_name_get, (setter)NULL, (char *)ViewShape_name_doc, NULL},
+ {(char *)"id", (getter)ViewShape_id_get, (setter)NULL, (char *)ViewShape_id_doc, NULL},
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
/*-----------------------BPy_ViewShape type definition ------------------------------*/
@@ -310,12 +271,12 @@ PyTypeObject ViewShape_Type = {
"ViewShape", /* tp_name */
sizeof(BPy_ViewShape), /* tp_basicsize */
0, /* tp_itemsize */
- (destructor)ViewShape___dealloc__, /* tp_dealloc */
+ (destructor)ViewShape_dealloc, /* tp_dealloc */
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_reserved */
- (reprfunc)ViewShape___repr__, /* tp_repr */
+ (reprfunc)ViewShape_repr, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
0, /* tp_as_mapping */
@@ -326,7 +287,7 @@ PyTypeObject ViewShape_Type = {
0, /* tp_setattro */
0, /* tp_as_buffer */
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
- ViewShape___doc__, /* tp_doc */
+ ViewShape_doc, /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
0, /* tp_richcompare */
@@ -335,13 +296,13 @@ PyTypeObject ViewShape_Type = {
0, /* tp_iternext */
BPy_ViewShape_methods, /* tp_methods */
0, /* tp_members */
- 0, /* tp_getset */
+ BPy_ViewShape_getseters, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
0, /* tp_descr_get */
0, /* tp_descr_set */
0, /* tp_dictoffset */
- (initproc)ViewShape___init__, /* tp_init */
+ (initproc)ViewShape_init, /* tp_init */
0, /* tp_alloc */
PyType_GenericNew, /* tp_new */
};