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_CORE_PIXTER1D_HH
00027 # define MLN_CORE_PIXTER1D_HH
00028
00031
00032 # include <mln/core/internal/pixel_iterator_base.hh>
00033 # include <mln/core/alias/point1d.hh>
00034 # include <mln/geom/size1d.hh>
00035
00036 namespace mln
00037 {
00038
00039
00040
00041
00042
00044 template <typename I>
00045 class fwd_pixter1d :
00046 public internal::forward_pixel_iterator_base_< I, fwd_pixter1d<I> >
00047 {
00048 typedef internal::forward_pixel_iterator_base_< I, fwd_pixter1d<I> > super_;
00049
00050 public:
00052 typedef I image;
00053
00056 fwd_pixter1d(I& image);
00057
00059 void next_();
00060 };
00061
00062
00063
00064
00065
00066
00068 template <typename I>
00069 class bkd_pixter1d :
00070 public internal::backward_pixel_iterator_base_< I, bkd_pixter1d<I> >
00071 {
00072 typedef internal::backward_pixel_iterator_base_< I, bkd_pixter1d<I> > super_;
00073
00074 public:
00076 typedef I image;
00077
00080 bkd_pixter1d(I& image);
00081
00083 void next_();
00084 };
00085
00086
00087
00088 #ifndef MLN_INCLUDE_ONLY
00089
00090
00091
00092
00093
00094 template <typename I>
00095 inline
00096 fwd_pixter1d<I>::fwd_pixter1d(I& image)
00097 : super_(image)
00098 {
00099 mln_precondition(image.is_valid());
00100 }
00101
00102 template <typename I>
00103 inline
00104 void
00105 fwd_pixter1d<I>::next_()
00106 {
00107 ++this->value_ptr_;
00108 }
00109
00110
00111
00112
00113
00114
00115 template <typename I>
00116 inline
00117 bkd_pixter1d<I>::bkd_pixter1d(I& image)
00118 : super_(image)
00119 {
00120 mln_precondition(image.is_valid());
00121 }
00122
00123 template <typename I>
00124 inline
00125 void
00126 bkd_pixter1d<I>::next_()
00127 {
00128 --this->value_ptr_;
00129 }
00130
00131 #endif // ! MLN_INCLUDE_ONLY
00132
00133 }
00134
00135 #endif // ! MLN_CORE_PIXTER1D_HH