27 #ifndef MLN_CORE_INTERNAL_PIXEL_ITERATOR_BASE_HH
28 # define MLN_CORE_INTERNAL_PIXEL_ITERATOR_BASE_HH
34 # include <mln/core/concept/pixel_iterator.hh>
35 # include <mln/core/internal/pixel_impl.hh>
36 # include <mln/core/trait/qlf_value.hh>
53 template <
typename I,
typename E>
84 template <
typename I,
typename E>
116 template <
typename I,
typename E>
140 #ifndef MLN_INCLUDE_ONLY
147 template <
typename I,
typename E>
152 mln_precondition(image.is_valid());
153 I&
ima = this->image_;
154 boi_ = &
ima( ima.domain().pmin() ) - 1;
155 eoi_ = &
ima( ima.domain().pmax() ) + 1;
156 exact(*this).invalidate();
159 template <
typename I,
typename E>
172 template <
typename I,
typename E>
179 template <
typename I,
typename E>
184 this->value_ptr_ = this->boi_ + 1;
185 exact(
this)->start_();
188 template <
typename I,
typename E>
193 this->value_ptr_ = this->eoi_;
196 template <
typename I,
typename E>
201 return this->value_ptr_ != this->eoi_;
209 template <
typename I,
typename E>
216 template <
typename I,
typename E>
221 this->value_ptr_ = this->eoi_ - 1;
222 exact(
this)->start_();
225 template <
typename I,
typename E>
230 this->value_ptr_ = this->boi_;
233 template <
typename I,
typename E>
238 return this->value_ptr_ != this->boi_;
241 #endif // ! MLN_INCLUDE_ONLY
248 #endif // ! MLN_CORE_INTERNAL_PIXEL_ITERATOR_BASE_HH