• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Classes
  • Files
  • File List

p_complex_piter.hh

00001 // Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
00002 //
00003 // This file is part of Olena.
00004 //
00005 // Olena is free software: you can redistribute it and/or modify it under
00006 // the terms of the GNU General Public License as published by the Free
00007 // Software Foundation, version 2 of the License.
00008 //
00009 // Olena is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012 // General Public License for more details.
00013 //
00014 // You should have received a copy of the GNU General Public License
00015 // along with Olena.  If not, see <http://www.gnu.org/licenses/>.
00016 //
00017 // As a special exception, you may use this file as part of a free
00018 // software project without restriction.  Specifically, if other files
00019 // instantiate templates or use macros or inline functions from this
00020 // file, or you compile this file and link it with other files to produce
00021 // an executable, this file does not by itself cause the resulting
00022 // executable to be covered by the GNU General Public License.  This
00023 // exception does not however invalidate any other reasons why the
00024 // executable file might be covered by the GNU General Public License.
00025 
00026 #ifndef MLN_CORE_SITE_SET_P_COMPLEX_PITER_HH
00027 # define MLN_CORE_SITE_SET_P_COMPLEX_PITER_HH
00028 
00034 
00035 # include <mln/core/site_set/p_complex.hh>
00036 # include <mln/core/internal/p_complex_piter_base.hh>
00037 # include <mln/topo/face_iter.hh>
00038 
00039 namespace mln
00040 {
00041 
00042   // Forward declarations.
00043   template <unsigned D, typename G> class p_complex;
00044 
00045   template <unsigned D> class complex_fwd_iter_;
00046   template <unsigned D> class complex_bkd_iter_;
00047 
00048 
00049   /*-----------------------------.
00050   | p_complex_fwd_piter_<D, G>.  |
00051   `-----------------------------*/
00052 
00054   template <unsigned D, typename G>
00055   class p_complex_fwd_piter_
00056     : public internal::p_complex_piter_base_< topo::face_fwd_iter<D>,
00057                                               p_complex<D, G>,
00058                                               mln_site(G),
00059                                               p_complex_fwd_piter_<D, G> >
00060   {
00061     typedef p_complex_fwd_piter_<D, G> self_;
00062     typedef internal::p_complex_piter_base_< topo::face_fwd_iter<D>,
00063                                              p_complex<D, G>,
00064                                              mln_site(G),
00065                                              self_ > super_;
00066 
00067   public:
00070     p_complex_fwd_piter_();
00071     p_complex_fwd_piter_(const p_complex<D, G>& pc);
00073   };
00074 
00075 
00076   /*-----------------------------.
00077   | p_complex_bkd_piter_<D, G>.  |
00078   `-----------------------------*/
00079 
00081   template <unsigned D, typename G>
00082   class p_complex_bkd_piter_
00083     : public internal::p_complex_piter_base_< topo::face_bkd_iter<D>,
00084                                               p_complex<D, G>,
00085                                               mln_site(G),
00086                                               p_complex_bkd_piter_<D, G> >
00087   {
00088     typedef p_complex_bkd_piter_<D, G> self_;
00089     typedef internal::p_complex_piter_base_< topo::face_bkd_iter<D>,
00090                                              p_complex<D, G>,
00091                                              mln_site(G),
00092                                              self_ > super_;
00093 
00094   public:
00097     p_complex_bkd_piter_();
00098     p_complex_bkd_piter_(const p_complex<D, G>& pc);
00100   };
00101 
00102 
00103 
00104 # ifndef MLN_INCLUDE_ONLY
00105 
00106   /*-----------------------------.
00107   | p_complex_fwd_piter_<D, G>.  |
00108   `-----------------------------*/
00109 
00110   template <unsigned D, typename G>
00111   inline
00112   p_complex_fwd_piter_<D, G>::p_complex_fwd_piter_()
00113   {
00114   }
00115 
00116   template <unsigned D, typename G>
00117   inline
00118   p_complex_fwd_piter_<D, G>::p_complex_fwd_piter_(const p_complex<D, G>& pc)
00119     : super_(pc)
00120   {
00121   }
00122 
00123 
00124   /*-----------------------------.
00125   | p_complex_bkd_piter_<D, G>.  |
00126   `-----------------------------*/
00127 
00128   template <unsigned D, typename G>
00129   inline
00130   p_complex_bkd_piter_<D, G>::p_complex_bkd_piter_()
00131   {
00132   }
00133 
00134   template <unsigned D, typename G>
00135   inline
00136   p_complex_bkd_piter_<D, G>::p_complex_bkd_piter_(const p_complex<D, G>& pc)
00137     : super_(pc)
00138   {
00139   }
00140 
00141 # endif // ! MLN_INCLUDE_ONLY
00142 
00143 } // end of mln
00144 
00145 #endif // ! MLN_CORE_SITE_SET_P_COMPLEX_PITER_HH

Generated on Thu Sep 8 2011 18:32:12 for Milena (Olena) by  doxygen 1.7.1