diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2014-02-02 16:59:15 +0400 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2014-02-02 17:05:32 +0400 |
commit | a16998911b59956806000826c15a941c53bd33c1 (patch) | |
tree | bc61930d08a377a9e108913fa6242599fa8c1374 /source/blender/freestyle/intern/python | |
parent | 41d778fa5d160c32e0f917c5502b198878fa1c08 (diff) |
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).
Diffstat (limited to 'source/blender/freestyle/intern/python')
4 files changed, 4 insertions, 29 deletions
diff --git a/source/blender/freestyle/intern/python/Iterator/BPy_AdjacencyIterator.cpp b/source/blender/freestyle/intern/python/Iterator/BPy_AdjacencyIterator.cpp index 099968878c2..89a5c369cd4 100644 --- a/source/blender/freestyle/intern/python/Iterator/BPy_AdjacencyIterator.cpp +++ b/source/blender/freestyle/intern/python/Iterator/BPy_AdjacencyIterator.cpp @@ -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 { diff --git a/source/blender/freestyle/intern/python/Iterator/BPy_Interface0DIterator.cpp b/source/blender/freestyle/intern/python/Iterator/BPy_Interface0DIterator.cpp index c7c9e34eb1d..f85bcddf186 100644 --- a/source/blender/freestyle/intern/python/Iterator/BPy_Interface0DIterator.cpp +++ b/source/blender/freestyle/intern/python/Iterator/BPy_Interface0DIterator.cpp @@ -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()) { diff --git a/source/blender/freestyle/intern/python/Iterator/BPy_StrokeVertexIterator.cpp b/source/blender/freestyle/intern/python/Iterator/BPy_StrokeVertexIterator.cpp index f796c8e132c..3e5051049bd 100644 --- a/source/blender/freestyle/intern/python/Iterator/BPy_StrokeVertexIterator.cpp +++ b/source/blender/freestyle/intern/python/Iterator/BPy_StrokeVertexIterator.cpp @@ -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; } diff --git a/source/blender/freestyle/intern/python/Iterator/BPy_orientedViewEdgeIterator.cpp b/source/blender/freestyle/intern/python/Iterator/BPy_orientedViewEdgeIterator.cpp index ec3e534977f..e4476cf9bcf 100644 --- a/source/blender/freestyle/intern/python/Iterator/BPy_orientedViewEdgeIterator.cpp +++ b/source/blender/freestyle/intern/python/Iterator/BPy_orientedViewEdgeIterator.cpp @@ -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()) { |