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_INTERNAL_COMPLEX_WINDOW_P_BASE_HH
00027 # define MLN_CORE_INTERNAL_COMPLEX_WINDOW_P_BASE_HH
00028
00033
00034 # include <mln/core/internal/complex_window_base.hh>
00035
00036 # include <mln/topo/centered_iter_adapter.hh>
00037
00038
00039
00040 namespace mln
00041 {
00042
00043 namespace internal
00044 {
00045 template <unsigned D, typename G, typename F, typename B, typename E>
00046 class complex_window_p_base;
00047 }
00048
00049
00050 namespace trait
00051 {
00052
00053 template <unsigned D, typename G, typename F, typename B, typename E>
00054 struct window_< mln::internal::complex_window_p_base<D, G, F, B, E> >
00055 : window_< mln::internal::complex_window_base
00056 < D, G,
00057 mln::topo::centered_fwd_iter_adapter<D, F>,
00058 mln::topo::centered_bkd_iter_adapter<D, B>,
00059 E > >
00060 {
00061 };
00062
00063 }
00064
00065
00066 namespace internal
00067 {
00077 template <unsigned D, typename G, typename F, typename B, typename E>
00078 class complex_window_p_base
00079 : public complex_window_base
00080 < D, G,
00081 mln::topo::centered_fwd_iter_adapter<D, F>,
00082 mln::topo::centered_bkd_iter_adapter<D, B>,
00083 E >
00084 {
00085 typedef complex_window_base< D, G,
00086 topo::centered_fwd_iter_adapter<D, F>,
00087 topo::centered_bkd_iter_adapter<D, B>,
00088 E > super;
00089
00090 public:
00091 complex_window_p_base();
00092 };
00093
00094
00095
00096 # ifndef MLN_INCLUDE_ONLY
00097
00098 template <unsigned D, typename G, typename F, typename B, typename E>
00099 complex_window_p_base<D, G, F, B, E>::complex_window_p_base()
00100 : super(true)
00101 {
00102 }
00103
00104 # endif // ! MLN_INCLUDE_ONLY
00105
00106 }
00107
00108 }
00109
00110 #endif // ! MLN_CORE_INTERNAL_COMPLEX_WINDOW_P_BASE_HH