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 
00027 #ifndef MLN_CORE_SITE_SET_P_COMPLEX_PITER_HH
00028 # define MLN_CORE_SITE_SET_P_COMPLEX_PITER_HH
00029 
00035 
00036 # include <mln/core/site_set/p_complex.hh>
00037 # include <mln/core/internal/p_complex_piter_base.hh>
00038 # include <mln/topo/face_iter.hh>
00039 
00040 namespace mln
00041 {
00042 
00043   
00044   template <unsigned D, typename G> class p_complex;
00045 
00046 
00047   
00048 
00049 
00050 
00052   template <unsigned D, typename G>
00053   class p_complex_fwd_piter_
00054     : public internal::p_complex_piter_base_< topo::face_fwd_iter<D>,
00055                                               p_complex<D, G>,
00056                                               mln_site(G),
00057                                               p_complex_fwd_piter_<D, G> >
00058   {
00059     typedef p_complex_fwd_piter_<D, G> self_;
00060     typedef internal::p_complex_piter_base_< topo::face_fwd_iter<D>,
00061                                              p_complex<D, G>,
00062                                              mln_site(G),
00063                                              self_ > super_;
00064 
00065   public:
00068     p_complex_fwd_piter_();
00069     p_complex_fwd_piter_(const p_complex<D, G>& pc);
00071   };
00072 
00073 
00074   
00075 
00076 
00077 
00079   template <unsigned D, typename G>
00080   class p_complex_bkd_piter_
00081     : public internal::p_complex_piter_base_< topo::face_bkd_iter<D>,
00082                                               p_complex<D, G>,
00083                                               mln_site(G),
00084                                               p_complex_bkd_piter_<D, G> >
00085   {
00086     typedef p_complex_bkd_piter_<D, G> self_;
00087     typedef internal::p_complex_piter_base_< topo::face_bkd_iter<D>,
00088                                              p_complex<D, G>,
00089                                              mln_site(G),
00090                                              self_ > super_;
00091 
00092   public:
00095     p_complex_bkd_piter_();
00096     p_complex_bkd_piter_(const p_complex<D, G>& pc);
00098   };
00099 
00100 
00101 
00102 # ifndef MLN_INCLUDE_ONLY
00103 
00104   
00105 
00106 
00107 
00108   template <unsigned D, typename G>
00109   inline
00110   p_complex_fwd_piter_<D, G>::p_complex_fwd_piter_()
00111   {
00112   }
00113 
00114   template <unsigned D, typename G>
00115   inline
00116   p_complex_fwd_piter_<D, G>::p_complex_fwd_piter_(const p_complex<D, G>& pc)
00117     : super_(pc)
00118   {
00119   }
00120 
00121 
00122   
00123 
00124 
00125 
00126   template <unsigned D, typename G>
00127   inline
00128   p_complex_bkd_piter_<D, G>::p_complex_bkd_piter_()
00129   {
00130   }
00131 
00132   template <unsigned D, typename G>
00133   inline
00134   p_complex_bkd_piter_<D, G>::p_complex_bkd_piter_(const p_complex<D, G>& pc)
00135     : super_(pc)
00136   {
00137   }
00138 
00139 # endif // ! MLN_INCLUDE_ONLY
00140 
00141 } 
00142 
00143 #endif // ! MLN_CORE_SITE_SET_P_COMPLEX_PITER_HH