27 #ifndef MLN_CORE_SITE_SET_BOX_PITER_HH
28 # define MLN_CORE_SITE_SET_BOX_PITER_HH
34 # include <mln/core/internal/site_set_iterator_base.hh>
35 # include <mln/core/concept/box.hh>
36 # include <mln/core/site_set/box.hh>
59 enum {
dim = P::dim };
141 # ifndef MLN_INCLUDE_ONLY
146 template <
typename P>
152 template <
typename P>
159 template <
typename P>
164 return p_[0] != s_->pmax()[0] + 1;
167 template <
typename P>
172 p_[0] =
static_cast<def::coord>(s_->pmax()[0] + 1);
175 template <
typename P>
183 template <
typename P>
188 for (
int i = dim - 1; i >= 0; --i)
189 if (p_[i] != s_->pmax()[i])
196 p_[i] = s_->pmin()[i];
218 template <
typename P>
224 template <
typename P>
231 template <
typename P>
236 return p_[0] != s_->pmin()[0] - 1;
239 template <
typename P>
244 p_[0] = mln_coord(P)(s_->pmin()[0] - 1);
247 template <
typename P>
255 template <
typename P>
260 for (
int i = dim - 1; i >= 0; --i)
261 if (p_[i] == s_->pmin()[i])
262 p_[i] = s_->pmax()[i];
268 if (p_ == s_->pmax())
272 # endif // ! MLN_INCLUDE_ONLY
277 #endif // ! MLN_CORE_SITE_SET_BOX_PITER_HH