27 #ifndef MLN_CORE_IMAGE_GRAPH_ELT_WINDOW_IF_HH
28 # define MLN_CORE_IMAGE_GRAPH_ELT_WINDOW_IF_HH
36 # include <mln/core/concept/window.hh>
37 # include <mln/core/internal/neighborhood_base.hh>
38 # include <mln/core/internal/graph_window_base.hh>
39 # include <mln/core/internal/is_masked_impl_selector.hh>
40 # include <mln/core/image/graph_window_if_piter.hh>
48 template <
typename G,
typename F>
class p_edges;
49 template <
typename G,
typename F>
class p_vertices;
55 template <
typename G,
typename S,
typename I,
typename E>
57 :
public neighborhood_extra_impl<graph_elt_window_if<G,S,I>,E>
64 template <
typename G,
typename S>
67 template <
typename G,
typename F>
70 typedef mln_edge_nbh_edge_fwd_iter(G) nbh_fwd_iter_;
71 typedef mln_edge_nbh_edge_bkd_iter(G) nbh_bkd_iter_;
74 template <typename G, typename F>
77 typedef mln_vertex_nbh_vertex_fwd_iter(G) nbh_fwd_iter_;
78 typedef mln_vertex_nbh_vertex_bkd_iter(G) nbh_bkd_iter_;
88 template <
typename G,
typename S,
typename I>
91 typedef trait::window::size::unknown size;
92 typedef trait::window::support::irregular support;
93 typedef trait::window::definition::varying definition;
105 template <
typename G,
typename S,
typename I>
108 graph_elt_window_if<G,S,I> >,
109 public internal::graph_window_if_iter_dispatch<G,S>,
110 private mlc_is(mln_value(I), bool)::check_t
113 typedef internal::graph_window_if_iter_dispatch<G,S> super_;
115 typedef typename super_::nbh_fwd_iter_ nbh_fwd_iter_;
116 typedef typename super_::nbh_bkd_iter_ nbh_bkd_iter_;
155 const I& mask() const;
158 void change_mask(const
Image<I>& mask);
161 bool is_valid() const;
170 # ifndef MLN_INCLUDE_ONLY
173 template <
typename G,
typename S,
typename I>
180 template <
typename G,
typename S,
typename I>
188 template <
typename G,
typename S,
typename I>
197 template <
typename G,
typename S,
typename I>
202 mln_precondition(exact(mask).is_valid());
206 template <
typename G,
typename S,
typename I>
211 return mask_.is_valid();
215 # endif // ! MLN_INCLUDE_ONLY
221 #endif // ! MLN_CORE_IMAGE_GRAPH_ELT_WINDOW_IF_HH