27 #ifndef MLN_CORE_INTERNAL_WINDOW_BASE_HH
28 # define MLN_CORE_INTERNAL_WINDOW_BASE_HH
34 # include <mln/core/concept/window.hh>
48 template <
typename D,
typename E>
49 struct window_base :
public Window<E>
56 typedef mln_psite(D) psite;
59 typedef mln_site(D) site;
62 typedef psite center_t;
66 bool is_neighbable_() const;
69 bool is_valid() const;
76 # ifndef MLN_INCLUDE_ONLY
78 template <
typename D,
typename E>
80 window_base<D,E>::window_base()
84 template <
typename D,
typename E>
87 window_base<D,E>::is_valid()
const
92 template <
typename D,
typename E>
95 window_base<D,E>::is_neighbable_()
const
97 return exact(
this)->is_symmetric() && ! exact(
this)->is_centered();
100 # endif // ! MLN_INCLUDE_ONLY
107 #endif // ! MLN_CORE_INTERNAL_WINDOW_BASE_HH