Differential D222 Diff 820 source/blender/freestyle/intern/python/Iterator/BPy_Interface0DIterator.cpp
Changeset View
Changeset View
Standalone View
Standalone View
source/blender/freestyle/intern/python/Iterator/BPy_Interface0DIterator.cpp
| Context not available. | |||||
| if (PyArg_ParseTupleAndKeywords(args, kwds, "O&", (char **)kwlist_1, convert_nested_it, &nested_it)) { | if (PyArg_ParseTupleAndKeywords(args, kwds, "O&", (char **)kwlist_1, convert_nested_it, &nested_it)) { | ||||
| self->if0D_it = new Interface0DIterator(nested_it->copy()); | self->if0D_it = new Interface0DIterator(nested_it->copy()); | ||||
| self->at_start = true; | |||||
| self->reversed = false; | |||||
| } | } | ||||
| else if (PyErr_Clear(), | else if (PyErr_Clear(), | ||||
| PyArg_ParseTupleAndKeywords(args, kwds, "O!", (char **)kwlist_2, &Interface0DIterator_Type, &brother)) | PyArg_ParseTupleAndKeywords(args, kwds, "O!", (char **)kwlist_2, &Interface0DIterator_Type, &brother)) | ||||
| { | { | ||||
| self->if0D_it = new Interface0DIterator(*(((BPy_Interface0DIterator *)brother)->if0D_it)); | self->if0D_it = new Interface0DIterator(*(((BPy_Interface0DIterator *)brother)->if0D_it)); | ||||
| self->at_start = ((BPy_Interface0DIterator *)brother)->at_start; | |||||
| self->reversed = ((BPy_Interface0DIterator *)brother)->reversed; | |||||
| } | } | ||||
| else { | else { | ||||
| PyErr_SetString(PyExc_TypeError, "invalid argument(s)"); | PyErr_SetString(PyExc_TypeError, "invalid argument(s)"); | ||||
| return -1; | return -1; | ||||
| } | } | ||||
| self->py_it.it = self->if0D_it; | self->py_it.it = self->if0D_it; | ||||
| self->reversed = 0; | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| static PyObject *Interface0DIterator_iternext(BPy_Interface0DIterator *self) | static PyObject *Interface0DIterator_iter(BPy_Interface0DIterator *self) | ||||
| { | { | ||||
| Interface0D *if0D; | Py_INCREF(self); | ||||
| self->at_start = true; | |||||
| return (PyObject *) self; | |||||
| } | |||||
| static PyObject *Interface0DIterator_iternext(BPy_Interface0DIterator *self) | |||||
| { | |||||
| if (self->reversed) { | if (self->reversed) { | ||||
| if (self->if0D_it->isBegin()) { | if (self->if0D_it->isBegin()) { | ||||
| PyErr_SetNone(PyExc_StopIteration); | PyErr_SetNone(PyExc_StopIteration); | ||||
| return NULL; | return NULL; | ||||
| } | } | ||||
| self->if0D_it->decrement(); | if (self->at_start) | ||||
| if0D = self->if0D_it->operator->(); | self->at_start = false; | ||||
| else { | |||||
| self->if0D_it->decrement(); | |||||
| if (self->if0D_it->isBegin()) { | |||||
| PyErr_SetNone(PyExc_StopIteration); | |||||
| return NULL; | |||||
| } | |||||
| } | |||||
| } | } | ||||
| else { | else { | ||||
| if (self->if0D_it->isEnd()) { | if (self->if0D_it->isEnd()) { | ||||
| PyErr_SetNone(PyExc_StopIteration); | PyErr_SetNone(PyExc_StopIteration); | ||||
| return NULL; | return NULL; | ||||
| } | } | ||||
| if0D = self->if0D_it->operator->(); | if (self->at_start) | ||||
| self->if0D_it->increment(); | self->at_start = false; | ||||
| else { | |||||
| self->if0D_it->increment(); | |||||
| if (self->if0D_it->isEnd()) { | |||||
| PyErr_SetNone(PyExc_StopIteration); | |||||
| return NULL; | |||||
| } | |||||
| } | |||||
| } | } | ||||
| Interface0D *if0D = self->if0D_it->operator->(); | |||||
| return Any_BPy_Interface0D_from_Interface0D(*if0D); | return Any_BPy_Interface0D_from_Interface0D(*if0D); | ||||
| } | } | ||||
| /*----------------------Interface0DIterator get/setters ----------------------------*/ | /*----------------------Interface0DIterator get/setters ----------------------------*/ | ||||
| PyDoc_STRVAR(Interface0DIterator_object_doc, | PyDoc_STRVAR(Interface0DIterator_object_doc, | ||||
| "The Interface0D object currently pointed by this iterator.\n" | "The Interface0D object currently pointed to by this iterator.\n" | ||||
| "\n" | "\n" | ||||
| ":type: :class:`Interface0D`"); | ":type: :class:`Interface0D`"); | ||||
| Context not available. | |||||
| 0, /* tp_clear */ | 0, /* tp_clear */ | ||||
| 0, /* tp_richcompare */ | 0, /* tp_richcompare */ | ||||
| 0, /* tp_weaklistoffset */ | 0, /* tp_weaklistoffset */ | ||||
| PyObject_SelfIter, /* tp_iter */ | (getiterfunc)Interface0DIterator_iter, /* tp_iter */ | ||||
| (iternextfunc)Interface0DIterator_iternext, /* tp_iternext */ | (iternextfunc)Interface0DIterator_iternext, /* tp_iternext */ | ||||
| 0, /* tp_methods */ | 0, /* tp_methods */ | ||||
| 0, /* tp_members */ | 0, /* tp_members */ | ||||
| Context not available. | |||||