Freestyle: Fix for iterations over 0D elements in the reversed order.
The revision is concerned with Interface0DIterator and StrokeVertexIterator. These iterators can be generated by Interface1D::vertices_end() and Stroke::stroke_vertices_end(), respectively. These methods return an iterator poinitng the next index of the last 0D element (i.e., iterator's is_end property is true). When the iterators created in this way are used with Python's iterator protocol (e.g., in a for-loop), iterations over 0D elements are automatically performed in the reversed order. This functionality was broken after recent revisions concerning Freestyle iterators. Also made minor code cleanup (white space).
This commit is contained in:
parent
41d778fa5d
commit
a16998911b
|
@ -113,7 +113,6 @@ static PyObject *AdjacencyIterator_iternext(BPy_AdjacencyIterator *self)
|
|||
PyErr_SetNone(PyExc_StopIteration);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (self->at_start)
|
||||
self->at_start = false;
|
||||
else {
|
||||
|
|
|
@ -108,15 +108,7 @@ static PyObject *Interface0DIterator_iternext(BPy_Interface0DIterator *self)
|
|||
PyErr_SetNone(PyExc_StopIteration);
|
||||
return NULL;
|
||||
}
|
||||
if (self->at_start)
|
||||
self->at_start = false;
|
||||
else {
|
||||
self->if0D_it->decrement();
|
||||
if (self->if0D_it->isBegin()) {
|
||||
PyErr_SetNone(PyExc_StopIteration);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
self->if0D_it->decrement();
|
||||
}
|
||||
else {
|
||||
if (self->if0D_it->isEnd()) {
|
||||
|
|
|
@ -96,15 +96,7 @@ static PyObject *StrokeVertexIterator_iternext(BPy_StrokeVertexIterator *self)
|
|||
PyErr_SetNone(PyExc_StopIteration);
|
||||
return NULL;
|
||||
}
|
||||
if (self->at_start)
|
||||
self->at_start = false;
|
||||
else {
|
||||
self->sv_it->increment();
|
||||
if (self->sv_it->isBegin()){
|
||||
PyErr_SetNone(PyExc_StopIteration);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
self->sv_it->decrement();
|
||||
}
|
||||
else {
|
||||
if (self->sv_it->isEnd()) {
|
||||
|
@ -119,7 +111,7 @@ static PyObject *StrokeVertexIterator_iternext(BPy_StrokeVertexIterator *self)
|
|||
* exit the loop if it is. not doing so will result in a crash */
|
||||
else {
|
||||
self->sv_it->increment();
|
||||
if (self->sv_it->isEnd()){
|
||||
if (self->sv_it->isEnd()) {
|
||||
PyErr_SetNone(PyExc_StopIteration);
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -88,15 +88,7 @@ static PyObject *orientedViewEdgeIterator_iternext(BPy_orientedViewEdgeIterator
|
|||
PyErr_SetNone(PyExc_StopIteration);
|
||||
return NULL;
|
||||
}
|
||||
if (self->at_start)
|
||||
self->at_start = false;
|
||||
else {
|
||||
self->ove_it->decrement();
|
||||
if (self->ove_it->isBegin()) {
|
||||
PyErr_SetNone(PyExc_StopIteration);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
self->ove_it->decrement();
|
||||
}
|
||||
else {
|
||||
if (self->ove_it->isEnd()) {
|
||||
|
|
Loading…
Reference in New Issue