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