27 #ifndef MLN_CORE_IMAGE_GRAPH_WINDOW_IF_PITER_HH
28 # define MLN_CORE_IMAGE_GRAPH_WINDOW_IF_PITER_HH
34 # include <mln/core/concept/window.hh>
35 # include <mln/core/internal/is_masked_impl_selector.hh>
36 # include <mln/core/internal/site_relative_iterator_base.hh>
43 template <
typename S,
typename I>
class p_graph_piter;
50 template <
typename S,
typename W,
typename I>
53 graph_window_if_piter<S,W,I> >,
55 typename W::mask_t::domain_t,
56 graph_window_if_piter<S,W,I> >
64 typedef mln_result(S::fun_t)
P;
70 template <typename Pref>
77 template <typename Pref>
78 void init_(const
Window<W>& win, const Pref& p_ref);
93 template <typename Pref>
97 template <typename I2>
105 const mln_graph_element(S)&
element() const;
124 # ifndef MLN_INCLUDE_ONLY
126 template <
typename S,
typename W,
typename I>
132 template <
typename S,
typename W,
typename I>
133 template <
typename Pref>
141 template <
typename S,
typename W,
typename I>
142 template <
typename Pref>
151 mln_postcondition(!this->
is_valid());
154 template <
typename S,
typename W,
typename I>
159 return iter_.is_valid();
162 template <
typename S,
typename W,
typename I>
170 template <
typename S,
typename W,
typename I>
176 while (iter_.is_valid() && this->
is_masked(this->
c_->element(), iter_))
180 template <
typename S,
typename W,
typename I>
186 while (iter_.is_valid() && this->
is_masked(this->
c_->element(), iter_))
190 template <
typename S,
typename W,
typename I>
191 template <
typename Pref>
196 iter_.center_at(c.p_hook_());
199 template <
typename S,
typename W,
typename I>
200 template <
typename I2>
205 iter_.center_at(c.hook_elt_());
208 template <
typename S,
typename W,
typename I>
213 return mln_psite(S)(this->
center().site_set(), iter_.id());
216 template <
typename S,
typename W,
typename I>
218 const mln_graph_element(S)&
224 template <
typename S,
typename W,
typename I>
233 # endif // ! MLN_INCLUDE_ONLY
237 #endif // ! MLN_CORE_IMAGE_GRAPH_WINDOW_IF_PITER_HH