Salome HOME
Merge from V6_main_20120808 08Aug12
[modules/med.git] / src / MEDMEM / MEDMEM_DriversDef.hxx
1 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22
23 # ifndef DRIVERS_DEF_HXX
24 # define DRIVERS_DEF_HXX
25
26 #include <MEDMEM.hxx>
27
28 // STL
29 # include <string>
30 # include <list>
31 # include <map>
32
33 using namespace std ;
34
35 #include "MEDMEM_define.hxx"
36 #include "MEDMEM_Utilities.hxx"
37
38 namespace MED_EN {
39 /*!  This Class inherits from  map. \n
40      It is a constant map association int (which is a med_geometrie_element) and string. \n
41      Operator [] returns the (string) name of the geometry of an element 
42      given by a med_geometrie_element value. \n 
43      Such a static map is instancied and can be used in any code to have
44      the name of the geometry of an element : MED_FR:GEO_NAME 
45      A simple test/use case can be found in test/testUGeoNameMeshEntities.cxx  */
46 //----------------------------------------
47 class MEDMEM_EXPORT GEO_NAME : public map<int,string>
48 //----------------------------------------
49 {
50   
51 public :
52   
53   GEO_NAME();
54   ~GEO_NAME();
55   string & operator[]( const MED_EN::medGeometryElement &c ) const;
56 } ;
57
58 static const GEO_NAME geoNames ;
59
60 //                              ____________________________    
61   
62 /*! This Class inherits from map. \n
63     It is a constant map association int (which is a med_entite_maillage) and string. \n
64     Operator[] returns the (string) name of the type of an entity given by 
65     a med_entite_maillage value. \n
66     Such a static map is instancied and can be used in any code to have
67     the name of the geometry of an element : MED_FR:ENT_NAME 
68     A simple test/use case can be found in test/testUGeoNameMeshEntities.cxx  */
69
70 //----------------------------------------
71 class MEDMEM_EXPORT ENT_NAME : public map<int,string>
72 //----------------------------------------
73 {
74   
75 public :
76
77   ENT_NAME ();
78   ~ENT_NAME();
79   string & operator[]( const MED_EN::medEntityMesh &c ) const;
80 } ;
81
82 static const ENT_NAME entNames ;
83
84 //                              ____________________________    
85
86 /*! This Class inherits from map. \n
87     It is a constant map association int (which is a med_entite_maillage) and  a list. \n
88     Operator[] returns the list of all exisiting med_geometrie_element for 
89     a med_entite_maillage value. \n
90     Such a static map is instancied and can be used in any code to have
91     the name of the geometry of an element : MED_FR:MESH_ENTITIES
92     A simple test/use case can be found in test/testUGeoNameMeshEntities.cxx  */
93
94
95 //--------------------------------------------------------------------------------
96 class MEDMEM_EXPORT MESH_ENTITIES : public map<int, const list<MED_EN::medGeometryElement> >
97 //--------------------------------------------------------------------------------
98 {
99
100 public :
101
102   MESH_ENTITIES ();
103   ~MESH_ENTITIES();
104   const list<MED_EN::medGeometryElement> & operator[]( const  MED_EN::medEntityMesh &c ) const;
105   
106 private:
107                                         /*! This operator is used to initialize class objects of 
108                                             type  const list<med_geometrie_element> */
109   list<MED_EN::medGeometryElement> & operator[]( const  MED_EN::medEntityMesh &c );
110   
111 } ;
112
113 static const MESH_ENTITIES meshEntities ;
114
115 } // End Of NameSpace MED_EN
116
117 #endif
118