Back to index

salome-med  6.5.0
MEDMEM_InterlacingTraits.hxx
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 // This library is free software; you can redistribute it and/or
00007 // modify it under the terms of the GNU Lesser General Public
00008 // License as published by the Free Software Foundation; either
00009 // version 2.1 of the License.
00010 //
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 //
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 
00023 #ifndef MEDMEM_INTERLACING_TRAITS_HXX
00024 #define MEDMEM_INTERLACING_TRAITS_HXX
00025 
00026 #include "MEDMEM_Tags.hxx"
00027 
00028 namespace MEDMEM {
00029 
00030 struct __ERROR_INTERLACING_GAUSS_TRAITS_POLICY_INSTANCIATED_WITH_INCORRECT_TYPE {};
00031 
00032 template <  class INTERLACE_TAG, class GAUSS_TAG>
00033 struct MEDMEM_InterlacingTraits
00034 {
00035   typedef  __ERROR_INTERLACING_GAUSS_TRAITS_POLICY_INSTANCIATED_WITH_INCORRECT_TYPE Type;
00036 };
00037 
00038 template <>
00039 struct MEDMEM_InterlacingTraits< FullInterlace, Gauss >
00040 {
00041   typedef FullInterlaceGaussPolicy Type;
00042 };
00043 
00044 template <>
00045 struct MEDMEM_InterlacingTraits< FullInterlace, NoGauss >
00046 {
00047   typedef FullInterlaceNoGaussPolicy Type;
00048 };
00049 
00050 template <>
00051 struct MEDMEM_InterlacingTraits< NoInterlace, Gauss >
00052 {
00053   typedef NoInterlaceGaussPolicy Type;
00054 };
00055 
00056 template <>
00057 struct MEDMEM_InterlacingTraits< NoInterlace, NoGauss >
00058 {
00059   typedef NoInterlaceNoGaussPolicy Type;
00060 };
00061 
00062 template <>
00063 struct MEDMEM_InterlacingTraits< NoInterlaceByType, Gauss >
00064 {
00065   typedef NoInterlaceByTypeGaussPolicy Type;
00066 };
00067 
00068 template <>
00069 struct MEDMEM_InterlacingTraits< NoInterlaceByType, NoGauss >
00070 {
00071   typedef NoInterlaceByTypeNoGaussPolicy Type;
00072 };
00073 
00074 } // END NAMESPACE
00075 
00076 #endif