00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef MLN_TOPO_INTERNAL_COMPLEX_SET_ITERATOR_BASE_HH
00027 # define MLN_TOPO_INTERNAL_COMPLEX_SET_ITERATOR_BASE_HH
00028
00033
00034 # include <mln/topo/internal/complex_iterator_base.hh>
00035
00036
00037 namespace mln
00038 {
00039
00040 namespace topo
00041 {
00042
00043 namespace internal
00044 {
00045
00046
00047 template <typename F, typename E>
00048 class complex_iterator_base;
00049
00050
00055 template <typename F, typename E>
00056 class complex_set_iterator_base : public complex_iterator_base<F, E>
00057 {
00058 typedef complex_set_iterator_base<F, E> self_;
00059
00060 public:
00062 typedef F face_type;
00063
00064
00065 typedef typename F::complex_type complex_type;
00066
00069
00070
00071 complex_set_iterator_base();
00072 complex_set_iterator_base(complex_type& c);
00074
00078
00079 void set_cplx(complex_type& c);
00080
00082 bool is_valid() const;
00084 void invalidate();
00086 };
00087
00088
00089
00090 # ifndef MLN_INCLUDE_ONLY
00091
00092 template <typename F, typename E>
00093 inline
00094 complex_set_iterator_base<F, E>::complex_set_iterator_base()
00095 {
00096 invalidate();
00097 }
00098
00099 template <typename F, typename E>
00100 inline
00101 complex_set_iterator_base<F, E>::complex_set_iterator_base(complex_type& c)
00102 {
00103 this->f_.set_cplx(c);
00104
00105 invalidate();
00106 }
00107
00108 template <typename F, typename E>
00109 inline
00110 void
00111 complex_set_iterator_base<F, E>::set_cplx(complex_type& c)
00112 {
00113 this->f_.set_cplx(c);
00114
00115 invalidate();
00116 }
00117
00118 template <typename F, typename E>
00119 inline
00120 bool
00121 complex_set_iterator_base<F, E>::is_valid() const
00122 {
00123 return this->f_.is_valid();
00124 }
00125
00126 template <typename F, typename E>
00127 inline
00128 void
00129 complex_set_iterator_base<F, E>::invalidate()
00130 {
00131 this->f_.invalidate();
00132 }
00133
00134 # endif // ! MLN_INCLUDE_ONLY
00135
00136 }
00137
00138 }
00139
00140 }
00141
00142 #endif // ! MLN_TOPO_INTERNAL_COMPLEX_SET_ITERATOR_BASE_HH