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_SITE_SET_ATTIC_P_FACES_PITER_HH
00027 # define MLN_CORE_SITE_SET_ATTIC_P_FACES_PITER_HH
00028
00034
00035 # include <mln/core/site_set/p_faces.hh>
00036 # include <mln/core/internal/p_complex_piter_base.hh>
00037 # include <mln/topo/attic/faces_iter.hh>
00038
00039
00040 namespace mln
00041 {
00042
00043
00044 template <unsigned N, unsigned D, typename P> class p_faces;
00045
00046 template <unsigned N, unsigned D> class faces_fwd_iter_;
00047 template <unsigned N, unsigned D> class faces_bkd_iter_;
00048
00049
00050
00051
00052
00053
00056 template <unsigned N, unsigned D, typename P>
00057 class p_faces_fwd_piter_
00058 : public internal::p_complex_piter_base_< topo::faces_fwd_iter_<N, D>,
00059 p_faces<N, D, P>,
00060 P,
00061 p_faces_fwd_piter_<N, D, P> >
00062 {
00063 typedef p_faces_fwd_piter_<N, D, P> self_;
00064 typedef internal::p_complex_piter_base_< topo::faces_fwd_iter_<N, D>,
00065 p_faces<N, D, P>,
00066 P,
00067 self_ > super_;
00068
00069 public:
00072 p_faces_fwd_piter_();
00073 p_faces_fwd_piter_(const p_faces<N, D, P>& pc);
00075 };
00076
00077
00078
00079
00080
00081
00084 template <unsigned N, unsigned D, typename P>
00085 class p_faces_bkd_piter_
00086
00087
00088 : public internal::p_complex_piter_base_< topo::faces_bkd_iter_<N, D>,
00089 p_faces<N, D, P>,
00090 P,
00091 p_faces_bkd_piter_<N, D, P> >
00092 {
00093 typedef p_faces_bkd_piter_<N, D, P> self_;
00094 typedef internal::p_complex_piter_base_< topo::faces_bkd_iter_<N, D>,
00095 p_faces<N, D, P>,
00096 P,
00097 self_ > super_;
00098
00099 public:
00102 p_faces_bkd_piter_();
00103 p_faces_bkd_piter_(const p_faces<N, D, P>& pc);
00105 };
00106
00107
00108
00109 # ifndef MLN_INCLUDE_ONLY
00110
00111
00112
00113
00114
00115 template <unsigned N, unsigned D, typename P>
00116 inline
00117 p_faces_fwd_piter_<N, D, P>::p_faces_fwd_piter_()
00118 {
00119 }
00120
00121 template <unsigned N, unsigned D, typename P>
00122 inline
00123 p_faces_fwd_piter_<N, D, P>::p_faces_fwd_piter_(const p_faces<N, D, P>& pc)
00124 : super_(pc)
00125 {
00126 }
00127
00128
00129
00130
00131
00132
00133 template <unsigned N, unsigned D, typename P>
00134 inline
00135 p_faces_bkd_piter_<N, D, P>::p_faces_bkd_piter_()
00136 {
00137 }
00138
00139 template <unsigned N, unsigned D, typename P>
00140 inline
00141 p_faces_bkd_piter_<N, D, P>::p_faces_bkd_piter_(const p_faces<N, D, P>& pc)
00142 : super_(pc)
00143 {
00144 }
00145
00146 # endif // ! MLN_INCLUDE_ONLY
00147
00148 }
00149
00150 #endif // ! MLN_CORE_SITE_SET_ATTIC_P_FACES_PITER_HH