27 #ifndef MLN_CORE_ALIAS_NEIGHB3D_HH
28 # define MLN_CORE_ALIAS_NEIGHB3D_HH
37 # include <mln/core/neighb.hh>
38 # include <mln/core/alias/window3d.hh>
39 # include <mln/win/sym.hh>
40 # include <mln/convert/from_to.hh>
116 typedef neighb<window3d> neighb3d;
171 const neighb3d&
c4_3d();
197 const neighb3d&
c8_3d();
224 const neighb3d&
c6();
250 const neighb3d&
c18();
276 const neighb3d&
c26();
280 template <
unsigned S>
281 void from_to_(
const bool (&values)[S], neighb3d& nbh);
284 # ifndef MLN_INCLUDE_ONLY
292 window3d&
win = it.hook_win_();
302 const neighb3d&
c4_3d()
318 const neighb3d&
c8_3d()
355 const neighb3d&
c18()
376 const neighb3d&
c26()
389 .insert(
c18().win());
395 template <
unsigned S>
397 from_to_(
const bool (&values)[S], neighb3d& nbh)
400 const int h =
unsigned(std::pow(
float(S),
float(1. / 3.))) / 2;
401 mln_precondition((2 * h + 1) * (2 * h + 1) * (2 * h + 1) == S);
405 mln_precondition(win.is_neighbable_());
406 nbh.change_window(win);
409 # endif // ! MLN_INCLUDE_ONLY
414 #endif // ! MLN_CORE_ALIAS_NEIGHB3D_HH