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
00034 # include <mln/topo/adj_lower_face_iter.hh>
00035 # include <mln/topo/adj_higher_face_iter.hh>
00036 # include <mln/topo/adj_lower_higher_face_iter.hh>
00037 # include <mln/topo/adj_lower_dim_connected_n_face_iter.hh>
00038 # include <mln/topo/adj_higher_dim_connected_n_face_iter.hh>
00039
00054 # define mln_gen_complex_neighborhood(Nbh, Fwd_Complex_Iter, Bkd_Complex_Iter) \
00055 template <unsigned D, typename G> \
00056 struct Nbh \
00057 : internal::complex_neighborhood_base< D, G, \
00058 Fwd_Complex_Iter <D>, \
00059 Bkd_Complex_Iter <D>, \
00060 Nbh <D, G> > \
00061 { \
00062 }
00063
00064
00065 namespace mln
00066 {
00067
00070 mln_gen_complex_neighborhood(complex_lower_neighborhood,
00071 topo::adj_lower_face_fwd_iter,
00072 topo::adj_lower_face_bkd_iter);
00073
00076 mln_gen_complex_neighborhood(complex_higher_neighborhood,
00077 topo::adj_higher_face_fwd_iter,
00078 topo::adj_higher_face_bkd_iter);
00079
00082 mln_gen_complex_neighborhood(complex_lower_higher_neighborhood,
00083 topo::adj_lower_higher_face_fwd_iter,
00084 topo::adj_lower_higher_face_bkd_iter);
00085
00088 mln_gen_complex_neighborhood(complex_lower_dim_connected_n_face_neighborhood,
00089 topo::adj_lower_dim_connected_n_face_fwd_iter,
00090 topo::adj_lower_dim_connected_n_face_bkd_iter);
00091
00094 mln_gen_complex_neighborhood(complex_higher_dim_connected_n_face_neighborhood,
00095 topo::adj_higher_dim_connected_n_face_fwd_iter,
00096 topo::adj_higher_dim_connected_n_face_bkd_iter);
00097
00100 mln_gen_complex_neighborhood(complex_m_face_neighborhood,
00101 topo::adj_m_face_fwd_iter,
00102 topo::adj_m_face_bkd_iter);
00103
00104 }
00105
00106 # undef mln_gen_complex_neighborhood
00107
00108 #endif // ! MLN_CORE_IMAGE_COMPLEX_NEIGHBORHOODS_HH