27 #ifndef MLN_CORE_INTERNAL_CLASSICAL_WINDOW_BASE_HH
28 # define MLN_CORE_INTERNAL_CLASSICAL_WINDOW_BASE_HH
40 # include <mln/core/window.hh>
41 # include <mln/core/dpsites_piter.hh>
54 template <
typename D,
typename E>
75 unsigned size()
const;
93 unsigned delta()
const;
97 bool has(
const D&
dp)
const;
100 const D&
dp(
unsigned i)
const;
103 const std::vector<D>&
vect()
const;
109 void print(std::ostream& ostr)
const;
117 void print_(std::ostream& ostr)
const;
124 # ifndef MLN_INCLUDE_ONLY
126 template <
typename D,
typename E>
132 template <
typename D,
typename E>
140 template <
typename D,
typename E>
145 return win_.is_empty();
148 template <
typename D,
typename E>
153 mln_invariant(win_.is_centered());
157 template <
typename D,
typename E>
162 mln_invariant(win_.is_symmetric());
166 template <
typename D,
typename E>
171 mln_invariant(win_.is_symmetric());
175 template <
typename D,
typename E>
182 return exact(
this)->delta_();
185 template <
typename D,
typename E>
193 template <
typename D,
typename E>
198 mln_precondition(i < size());
202 template <
typename D,
typename E>
204 const std::vector<D>&
207 return win_.std_vector();
210 template <
typename D,
typename E>
212 const std::vector<D>&
218 template <
typename D,
typename E>
226 template <
typename D,
typename E>
234 template <
typename D,
typename E>
239 exact(
this)->print_(ostr);
242 template <
typename D,
typename E>
250 # endif // ! MLN_INCLUDE_ONLY
257 #endif // ! MLN_CORE_INTERNAL_CLASSICAL_WINDOW_BASE_HH