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 | |
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).
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()) { |