00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef MLN_CORE_IMAGE_COMPLEX_NEIGHBORHOODS_HH
00027 # define MLN_CORE_IMAGE_COMPLEX_NEIGHBORHOODS_HH
00028
00031
00032 # include <mln/core/internal/complex_neighborhood_base.hh>
00033 # include <mln/core/image/complex_windows.hh>
00034
00035 # include <mln/topo/complex_iterators.hh>
00036
00047 # define mln_gen_complex_neighborhood(Nbh, Win) \
00048 template <unsigned D, typename G> \
00049 struct Nbh \
00050 : internal::complex_neighborhood_base< Win <D, G>, Nbh <D, G> > \
00051 { \
00052 }
00053
00054
00055 namespace mln
00056 {
00057
00060 mln_gen_complex_neighborhood(complex_lower_neighborhood,
00061 complex_lower_window);
00062
00065 mln_gen_complex_neighborhood(complex_higher_neighborhood,
00066 complex_higher_window);
00067
00070 mln_gen_complex_neighborhood(complex_lower_higher_neighborhood,
00071 complex_lower_higher_window);
00072
00075 mln_gen_complex_neighborhood(complex_lower_dim_connected_n_face_neighborhood,
00076 complex_lower_dim_connected_n_face_window);
00077
00080 mln_gen_complex_neighborhood(complex_higher_dim_connected_n_face_neighborhood,
00081 complex_higher_dim_connected_n_face_window);
00082
00085 mln_gen_complex_neighborhood(complex_m_face_neighborhood,
00086 complex_m_face_window);
00087
00088 }
00089
00090 # undef mln_gen_complex_neighborhood
00091
00092 #endif // ! MLN_CORE_IMAGE_COMPLEX_NEIGHBORHOODS_HH