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

p_complex_piter.hh

00001 // Copyright (C) 2008, 2009, 2010 EPITA Research and Development
00002 // Laboratory (LRDE)
00003 //
00004 // This file is part of Olena.
00005 //
00006 // Olena is free software: you can redistribute it and/or modify it under
00007 // the terms of the GNU General Public License as published by the Free
00008 // Software Foundation, version 2 of the License.
00009 //
00010 // Olena is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 // General Public License for more details.
00014 //
00015 // You should have received a copy of the GNU General Public License
00016 // along with Olena.  If not, see <http://www.gnu.org/licenses/>.
00017 //
00018 // As a special exception, you may use this file as part of a free
00019 // software project without restriction.  Specifically, if other files
00020 // instantiate templates or use macros or inline functions from this
00021 // file, or you compile this file and link it with other files to produce
00022 // an executable, this file does not by itself cause the resulting
00023 // executable to be covered by the GNU General Public License.  This
00024 // exception does not however invalidate any other reasons why the
00025 // executable file might be covered by the GNU General Public License.
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   // Forward declarations.
00044   template <unsigned D, typename G> class p_complex;
00045 
00046 
00047   /*-----------------------------.
00048   | p_complex_fwd_piter_<D, G>.  |
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   | p_complex_bkd_piter_<D, G>.  |
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   | p_complex_fwd_piter_<D, G>.  |
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   | p_complex_bkd_piter_<D, G>.  |
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 } // end of mln
00142 
00143 #endif // ! MLN_CORE_SITE_SET_P_COMPLEX_PITER_HH

Generated on Tue Oct 4 2011 15:24:09 for Milena (Olena) by  doxygen 1.7.1