27 #ifndef MLN_CANVAS_BROWSING_HYPER_DIRECTIONAL_HH
28 # define MLN_CANVAS_BROWSING_HYPER_DIRECTIONAL_HH
34 # include <mln/core/concept/browsing.hh>
35 # include <mln/core/concept/image.hh>
82 void operator()(F& f)
const;
87 # ifndef MLN_INCLUDE_ONLY
89 # ifndef MLN_WO_GLOBAL_VARS
93 # endif // ! MLN_WO_GLOBAL_VARS
97 hyper_directional_t::hyper_directional_t()
101 template <
typename F>
104 hyper_directional_t::operator()(F& f)
const
106 trace::entering(
"canvas::browsing::hyper_directional");
107 mln_precondition(f.dir < f.dim);
108 typedef typename F::I I;
111 pmin = f.input.domain().pmin(),
112 pmax = f.input.domain().pmax();
122 for (
int c = F::dim - 1; c >= 0; --c)
126 if (f.p[c] != pmax[c])
133 }
while (f.p != pmin);
136 trace::exiting(
"canvas::browsing::hyper_directional");
139 # endif // ! MLN_INCLUDE_ONLY
147 #endif // ! MLN_CANVAS_BROWSING_HYPER_DIRECTIONAL_HH