27 #ifndef MLN_CORE_SITE_SET_P_CENTERED_HH
28 # define MLN_CORE_SITE_SET_P_CENTERED_HH
38 # include <mln/core/concept/window.hh>
39 # include <mln/core/internal/site_set_base.hh>
40 # include <mln/core/internal/site_set_iterator_base.hh>
47 template <
typename W>
class p_centered;
48 template <
typename W>
class p_centered_piter;
55 struct site_set_< p_centered<W> >
57 typedef trait::site_set::nsites::unknown
nsites;
58 typedef trait::site_set::bbox::unknown
bbox;
59 typedef trait::site_set::contents::fixed
contents;
60 typedef trait::site_set::arity::unique
arity;
79 private mlc_is_a(W, Window)::check_t
108 p_centered(const W& win, const mln_psite(W)& c);
112 template <typename P>
113 bool has(const P&
p) const;
122 const mln_psite(W)&
center() const;
134 template <typename W>
150 bool is_valid_()
const;
171 # ifndef MLN_INCLUDE_ONLY
175 template <
typename W>
183 template <
typename W>
189 template <
typename W>
198 template <
typename W>
199 template <
typename P>
204 mln_precondition(is_valid());
208 template <
typename W>
213 return sizeof(*this);
216 template <
typename W>
224 template <
typename W>
250 template <
typename W>
256 template <
typename W>
261 q_.center_at(s.center());
262 q_.change_target(s.window_());
265 template <
typename W>
270 return q_.is_valid();
273 template <
typename W>
281 template <
typename W>
291 template <
typename W>
301 # endif // ! MLN_INCLUDE_ONLY
306 #endif // ! MLN_CORE_SITE_SET_P_CENTERED_HH