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/stroke/StrokeAdvancedIterators.h')
-rw-r--r--source/blender/freestyle/intern/stroke/StrokeAdvancedIterators.h283
1 files changed, 142 insertions, 141 deletions
diff --git a/source/blender/freestyle/intern/stroke/StrokeAdvancedIterators.h b/source/blender/freestyle/intern/stroke/StrokeAdvancedIterators.h
index 8362c293558..e9d4659f320 100644
--- a/source/blender/freestyle/intern/stroke/StrokeAdvancedIterators.h
+++ b/source/blender/freestyle/intern/stroke/StrokeAdvancedIterators.h
@@ -28,154 +28,155 @@ namespace Freestyle {
namespace StrokeInternal {
-class vertex_const_traits : public Const_traits<StrokeVertex*>
-{
-public:
- typedef std::deque<StrokeVertex*> vertex_container;
- typedef vertex_container::const_iterator vertex_container_iterator;
+class vertex_const_traits : public Const_traits<StrokeVertex *> {
+ public:
+ typedef std::deque<StrokeVertex *> vertex_container;
+ typedef vertex_container::const_iterator vertex_container_iterator;
};
-class vertex_nonconst_traits : public Nonconst_traits<StrokeVertex*>
-{
-public:
- typedef std::deque<StrokeVertex*> vertex_container; //! the vertices container
- typedef vertex_container::iterator vertex_container_iterator;
+class vertex_nonconst_traits : public Nonconst_traits<StrokeVertex *> {
+ public:
+ typedef std::deque<StrokeVertex *> vertex_container; //! the vertices container
+ typedef vertex_container::iterator vertex_container_iterator;
};
-
template<class Traits>
-class vertex_iterator_base : public IteratorBase<Traits, BidirectionalIteratorTag_Traits>
-{
-public:
- typedef vertex_iterator_base<Traits> Self;
-
-protected:
- typedef IteratorBase<Traits, BidirectionalIteratorTag_Traits> parent_class;
- typedef typename Traits::vertex_container_iterator vertex_container_iterator;
- typedef vertex_iterator_base<vertex_nonconst_traits> iterator;
- typedef vertex_iterator_base<vertex_const_traits> const_iterator;
-
-//protected:
-public:
- vertex_container_iterator _it;
- vertex_container_iterator _begin;
- vertex_container_iterator _end;
-
-public:
- friend class Stroke;
- //friend class vertex_iterator;
-
- inline vertex_iterator_base() : parent_class() {}
-
- inline vertex_iterator_base(const iterator& iBrother) : parent_class()
- {
- _it = iBrother._it;
- _begin = iBrother._begin;
- _end = iBrother._end;
- }
-
- inline vertex_iterator_base(const const_iterator& iBrother) : parent_class()
- {
- _it = iBrother._it;
- _begin = iBrother._begin;
- _end = iBrother._end;
- }
-
-//protected: //FIXME
-public:
- inline vertex_iterator_base(vertex_container_iterator it, vertex_container_iterator begin,
- vertex_container_iterator end)
- : parent_class()
- {
- _it = it;
- _begin = begin;
- _end = end;
- }
-
-public:
- virtual ~vertex_iterator_base() {}
-
- virtual bool begin() const
- {
- return (_it == _begin) ? true : false;
- }
-
- virtual bool end() const
- {
- return (_it == _end) ? true : false;
- }
-
- // operators
- inline Self& operator++() // operator corresponding to ++i
- {
- ++_it;
- return *(this);
- }
-
- /* Operator corresponding to i++, i.e. which returns the value *and then* increments.
- * That's why we store the value in a temp.
- */
- inline Self operator++(int)
- {
- Self tmp = *this;
- ++_it;
- return tmp;
- }
-
- inline Self& operator--() // operator corresponding to --i
- {
- --_it;
- return *(this);
- }
-
- inline Self operator--(int)
- {
- Self tmp = *this;
- --_it;
- return tmp;
- }
-
- // comparibility
- virtual bool operator!=(const Self& b) const
- {
- return (_it != b._it);
- }
-
- virtual bool operator==(const Self& b) const
- {
- return !(*this != b);
- }
-
- // dereferencing
- virtual typename Traits::reference operator*() const
- {
- return *(_it);
- }
-
- virtual typename Traits::pointer operator->() const
- {
- return &(operator*());
- }
-
- /*! accessors */
- inline vertex_container_iterator it() const
- {
- return _it;
- }
-
- inline vertex_container_iterator getBegin() const
- {
- return _begin;
- }
-
- inline vertex_container_iterator getEnd() const
- {
- return _end;
- }
+class vertex_iterator_base : public IteratorBase<Traits, BidirectionalIteratorTag_Traits> {
+ public:
+ typedef vertex_iterator_base<Traits> Self;
+
+ protected:
+ typedef IteratorBase<Traits, BidirectionalIteratorTag_Traits> parent_class;
+ typedef typename Traits::vertex_container_iterator vertex_container_iterator;
+ typedef vertex_iterator_base<vertex_nonconst_traits> iterator;
+ typedef vertex_iterator_base<vertex_const_traits> const_iterator;
+
+ //protected:
+ public:
+ vertex_container_iterator _it;
+ vertex_container_iterator _begin;
+ vertex_container_iterator _end;
+
+ public:
+ friend class Stroke;
+ //friend class vertex_iterator;
+
+ inline vertex_iterator_base() : parent_class()
+ {
+ }
+
+ inline vertex_iterator_base(const iterator &iBrother) : parent_class()
+ {
+ _it = iBrother._it;
+ _begin = iBrother._begin;
+ _end = iBrother._end;
+ }
+
+ inline vertex_iterator_base(const const_iterator &iBrother) : parent_class()
+ {
+ _it = iBrother._it;
+ _begin = iBrother._begin;
+ _end = iBrother._end;
+ }
+
+ //protected: //FIXME
+ public:
+ inline vertex_iterator_base(vertex_container_iterator it,
+ vertex_container_iterator begin,
+ vertex_container_iterator end)
+ : parent_class()
+ {
+ _it = it;
+ _begin = begin;
+ _end = end;
+ }
+
+ public:
+ virtual ~vertex_iterator_base()
+ {
+ }
+
+ virtual bool begin() const
+ {
+ return (_it == _begin) ? true : false;
+ }
+
+ virtual bool end() const
+ {
+ return (_it == _end) ? true : false;
+ }
+
+ // operators
+ inline Self &operator++() // operator corresponding to ++i
+ {
+ ++_it;
+ return *(this);
+ }
+
+ /* Operator corresponding to i++, i.e. which returns the value *and then* increments.
+ * That's why we store the value in a temp.
+ */
+ inline Self operator++(int)
+ {
+ Self tmp = *this;
+ ++_it;
+ return tmp;
+ }
+
+ inline Self &operator--() // operator corresponding to --i
+ {
+ --_it;
+ return *(this);
+ }
+
+ inline Self operator--(int)
+ {
+ Self tmp = *this;
+ --_it;
+ return tmp;
+ }
+
+ // comparibility
+ virtual bool operator!=(const Self &b) const
+ {
+ return (_it != b._it);
+ }
+
+ virtual bool operator==(const Self &b) const
+ {
+ return !(*this != b);
+ }
+
+ // dereferencing
+ virtual typename Traits::reference operator*() const
+ {
+ return *(_it);
+ }
+
+ virtual typename Traits::pointer operator->() const
+ {
+ return &(operator*());
+ }
+
+ /*! accessors */
+ inline vertex_container_iterator it() const
+ {
+ return _it;
+ }
+
+ inline vertex_container_iterator getBegin() const
+ {
+ return _begin;
+ }
+
+ inline vertex_container_iterator getEnd() const
+ {
+ return _end;
+ }
};
-} // end of namespace StrokeInternal
+} // end of namespace StrokeInternal
} /* namespace Freestyle */
-#endif // __FREESTYLE_STROKE_ADVANCED_ITERATORS_H__
+#endif // __FREESTYLE_STROKE_ADVANCED_ITERATORS_H__