27 #ifndef MLN_CORE_PIXTER3D_HH
28 # define MLN_CORE_PIXTER3D_HH
34 # include <mln/core/internal/pixel_iterator_base.hh>
35 # include <mln/core/alias/point3d.hh>
36 # include <mln/geom/size3d.hh>
37 # include <mln/opt/at.hh>
75 const unsigned border_x2_;
78 const unsigned row_offset_;
81 mln_qlf_value(I)* eor_;
84 const unsigned next_sli_offset_;
87 const unsigned next_srow_offset_;
90 const unsigned sli_offset_;
93 mln_qlf_value(I)* eos_;
106 template <
typename I>
131 const unsigned border_x2_;
134 const unsigned row_offset_;
137 mln_qlf_value(I)* bor_;
140 const unsigned next_sli_offset_;
143 const unsigned next_srow_offset_;
146 const unsigned sli_offset_;
149 mln_qlf_value(I)* bos_;
151 using super_::image_;
155 #ifndef MLN_INCLUDE_ONLY
161 template <
typename I>
165 border_x2_(2 * image.border()),
166 row_offset_(image.
bbox().
ncols() + border_x2_),
167 next_sli_offset_(row_offset_ * border_x2_ + border_x2_),
168 next_srow_offset_(next_sli_offset_ + image.
bbox().
ncols()),
169 sli_offset_((image.
bbox().
ncols() + border_x2_) *
172 mln_precondition(image.is_valid());
175 template <
typename I>
190 template <
typename I>
196 if (this->value_ptr_ == eos_ && this->value_ptr_ != this->eoi_)
198 this->value_ptr_ += next_sli_offset_;
200 eor_ += next_srow_offset_;
202 else if (this->value_ptr_ == eor_ && this->value_ptr_ != this->eoi_)
204 this->value_ptr_ += border_x2_;
214 template <
typename I>
218 border_x2_(2 * image.
border()),
219 row_offset_(image.
bbox().
ncols() + border_x2_),
220 next_sli_offset_(row_offset_ * border_x2_ + border_x2_),
221 next_srow_offset_(next_sli_offset_ + image.
bbox().
ncols()),
222 sli_offset_((image.
bbox().
ncols() + border_x2_) *
225 mln_precondition(image.is_valid());
228 template <
typename I>
243 template <
typename I>
249 if (this->value_ptr_ == bos_ && this->value_ptr_ != this->boi_)
251 this->value_ptr_ -= next_sli_offset_;
253 bor_ -= next_srow_offset_;
255 else if (this->value_ptr_ == bor_ && this->value_ptr_ != this->boi_)
257 this->value_ptr_ -= border_x2_;
262 #endif // ! MLN_INCLUDE_ONLY
267 #endif // ! MLN_CORE_PIXTER3D_HH