Salome HOME
Merge from V6_main (04/10/2012)
[modules/paravis.git] / src / Plugins / MedReader / IO / vtkMedDriver30.h
1 // Copyright (C) 2010-2012  CEA/DEN, EDF R&D
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19
20 #ifndef __vtkMedDriver30_h_
21 #define __vtkMedDriver30_h_
22
23 #include "vtkObject.h"
24 #include "vtkMed.h"
25 #include "vtkMedDriver.h"
26
27 class vtkMedFile;
28 class vtkMedMesh;
29 class vtkMedField;
30 class vtkMedFamily;
31 class vtkMedRegularGrid;
32 class vtkMedCurvilinearGrid;
33 class vtkMedUnstructuredGrid;
34 class vtkMedLocalization;
35 class vtkMedProfile;
36 class vtkMedFieldOverEntity;
37 class vtkMedEntityArray;
38 class vtkMedFieldStep;
39 class vtkMedLink;
40 class vtkMedStructElement;
41 class vtkMedConstantAttribute;
42 class vtkMedVariableAttribute;
43
44 class VTK_EXPORT vtkMedDriver30: public vtkMedDriver
45 {
46 public:
47   static vtkMedDriver30* New();
48   vtkTypeRevisionMacro(vtkMedDriver30, vtkMedDriver)
49   void PrintSelf(ostream& os, vtkIndent indent);
50
51   // Description:
52   // load all meta data associated with this file.
53   virtual void ReadFileInformation(vtkMedFile*);
54
55   // Description:
56   // load all meta data associated with this mesh.
57   virtual void ReadMeshInformation(vtkMedMesh*);
58
59   // Description:
60   // load all meta data associated with this field.
61   virtual void ReadFieldInformation(vtkMedField*);
62
63   // Description:
64   // load all meta data associated with this regular (Cartesian or polar) grid.
65   virtual void ReadRegularGridInformation(vtkMedRegularGrid*);
66
67   // Description:
68   // load all meta data associated with this standard grid.
69   virtual void ReadCurvilinearGridInformation(vtkMedCurvilinearGrid*);
70
71   // Description:
72   // load all meta data associated with this unstructured grid.
73   virtual void ReadUnstructuredGridInformation(vtkMedUnstructuredGrid*);
74
75   // Description:
76   // load all meta data associated with this family.
77   virtual void ReadFamilyInformation(vtkMedMesh*, vtkMedFamily*);
78
79   // Description:
80   // load all meta data associated with this family.
81   virtual void ReadProfileInformation(vtkMedProfile*);
82
83   // Description:
84   // load information on a field and a given cell type at a given step
85   virtual void ReadFieldOverEntityInformation(vtkMedFieldOverEntity*);
86
87   // Description:
88   // load information related to the given quadrature scheme definition
89   virtual void ReadLocalizationInformation(vtkMedLocalization*);
90
91   // Description:
92   // load all information associated witht this field step
93   virtual void ReadFieldStepInformation(vtkMedFieldStep*, bool readAllEntityInfo);
94
95   // Description:
96   // load all information related to this interpolation function
97   virtual void ReadInterpolationInformation(vtkMedInterpolation*);
98
99   // Description:
100   // load all information related to this field on this profile
101   virtual void ReadFieldOnProfileInformation(vtkMedFieldOnProfile*);
102
103   // Description:
104   // load all information related to this field on this profile
105   virtual void ReadLinkInformation(vtkMedLink*);
106
107   // Description:
108   // read all information related to the structural elements models
109   // in this file
110   virtual void ReadStructElementInformation(vtkMedStructElement*);
111
112   // Description:
113   // read all information related to the support mesh
114   // in this file
115   virtual void ReadSupportMeshInformation(vtkMedMesh*);
116
117   // Description:
118   // read all information related to the support mesh
119   // in this file
120   virtual void ReadConstantAttributeInformation(vtkMedConstantAttribute*);
121
122   // Description:
123   // read all information related to the support mesh
124   // in this file
125   virtual void ReadVariableAttributeInformation(vtkMedVariableAttribute*);
126
127   // Description:
128   // load the field on this profile
129   virtual void LoadField(vtkMedFieldOnProfile*, med_storage_mode mode);
130
131   // Description:
132   // Load the indices of the profile
133   virtual void LoadProfile(vtkMedProfile* profile);
134
135   // Description:
136   // Load the values of the given step
137 //  void Load(vtkMedFieldOnProfile*);
138
139   virtual void LoadFamilyIds(vtkMedEntityArray*);
140
141   virtual void LoadCoordinates(vtkMedGrid*);
142
143   virtual void LoadPointGlobalIds(vtkMedGrid*);
144
145   //virtual void LoadFamilyIds(vtkMedGrid*);
146
147   virtual void LoadConnectivity(vtkMedEntityArray*);
148
149   virtual void LoadCellGlobalIds(vtkMedEntityArray*);
150
151   virtual void LoadRegularGridCoordinates(vtkMedRegularGrid*);
152
153   virtual void  LoadVariableAttribute(vtkMedVariableAttribute*,
154                                       vtkMedEntityArray*);
155
156 protected:
157   vtkMedDriver30();
158   ~vtkMedDriver30();
159
160   void ReadNumberOfEntity(vtkMedUnstructuredGrid*,
161       med_entity_type, med_connectivity_mode);
162
163 private:
164   vtkMedDriver30(const vtkMedDriver30&); // Not implemented.
165   void operator=(const vtkMedDriver30&); // Not implemented.
166 };
167
168 #endif //__vtkMedDriver30_h_