1 //=============================================================================
2 // File : MEDMEM_convert.cxx
3 // Created : mer fév 20 15:47:57 CET 2002
6 // Copyright : EDF 2002
7 // $Header: /export/home/PAL/MED_SRC/src/MEDMEM_I/MEDMEM_convert.cxx
8 //=============================================================================
10 #include "utilities.h"
11 #include "Utils_CorbaException.hxx"
13 #include "MEDMEM_convert.hxx"
16 SALOME_MED::medGeometryElement convertMedEltToIdlElt(medGeometryElement element)
17 throw (SALOME::SALOME_Exception)
21 case MED_NONE : return SALOME_MED::MED_NONE;
22 case MED_POINT1 : return SALOME_MED::MED_POINT1;
23 case MED_SEG2 : return SALOME_MED::MED_SEG2;
24 case MED_SEG3 : return SALOME_MED::MED_SEG3;
25 case MED_TRIA3 : return SALOME_MED::MED_TRIA3;
26 case MED_QUAD4 : return SALOME_MED::MED_QUAD4;
27 case MED_TRIA6 : return SALOME_MED::MED_TRIA6;
28 case MED_QUAD8 : return SALOME_MED::MED_QUAD8;
29 case MED_TETRA4 : return SALOME_MED::MED_TETRA4;
30 case MED_PYRA5 : return SALOME_MED::MED_PYRA5;
31 case MED_PENTA6 : return SALOME_MED::MED_PENTA6;
32 case MED_HEXA8 : return SALOME_MED::MED_HEXA8;
33 case MED_TETRA10 : return SALOME_MED::MED_TETRA10;
34 case MED_PYRA13 : return SALOME_MED::MED_PYRA13;
35 case MED_PENTA15 : return SALOME_MED::MED_PENTA15;
36 case MED_HEXA20 : return SALOME_MED::MED_HEXA20;
37 case MED_POLYGON : return SALOME_MED::MED_POLYGON;
38 case MED_POLYHEDRA : return SALOME_MED::MED_POLYHEDRA;
39 case MED_ALL_ELEMENTS : return SALOME_MED::MED_ALL_ELEMENTS;
41 { MESSAGE("Unknown Geometry Element");
42 THROW_SALOME_CORBA_EXCEPTION("Unknown Geometry Element",
43 SALOME::INTERNAL_ERROR);
48 medGeometryElement convertIdlEltToMedElt(SALOME_MED::medGeometryElement element)
49 throw (SALOME::SALOME_Exception)
56 case SALOME_MED::MED_NONE : return MED_NONE;
57 case SALOME_MED::MED_POINT1 : return MED_POINT1;
58 case SALOME_MED::MED_SEG2 : return MED_SEG2;
59 case SALOME_MED::MED_SEG3 : return MED_SEG3;
60 case SALOME_MED::MED_TRIA3 : return MED_TRIA3;
61 case SALOME_MED::MED_QUAD4 : return MED_QUAD4;
62 case SALOME_MED::MED_TRIA6 : return MED_TRIA6;
63 case SALOME_MED::MED_QUAD8 : return MED_QUAD8;
64 case SALOME_MED::MED_TETRA4 : return MED_TETRA4;
65 case SALOME_MED::MED_PYRA5 : return MED_PYRA5;
66 case SALOME_MED::MED_PENTA6 : return MED_PENTA6;
67 case SALOME_MED::MED_HEXA8 : return MED_HEXA8;
68 case SALOME_MED::MED_TETRA10 : return MED_TETRA10;
69 case SALOME_MED::MED_PYRA13 : return MED_PYRA13;
70 case SALOME_MED::MED_PENTA15 : return MED_PENTA15;
71 case SALOME_MED::MED_HEXA20 : return MED_HEXA20;
72 case SALOME_MED::MED_POLYGON : return MED_POLYGON;
73 case SALOME_MED::MED_POLYHEDRA : return MED_POLYHEDRA;
74 case SALOME_MED::MED_ALL_ELEMENTS : return MED_ALL_ELEMENTS;
76 { MESSAGE("unknown Geometry Element");
77 THROW_SALOME_CORBA_EXCEPTION("Unknown Geometry Element",
78 SALOME::INTERNAL_ERROR);
83 SALOME_MED::medEntityMesh convertMedEntToIdlEnt(medEntityMesh entity)
84 throw (SALOME::SALOME_Exception)
88 case MED_CELL : return SALOME_MED::MED_CELL;
89 case MED_FACE : return SALOME_MED::MED_FACE;
90 case MED_EDGE : return SALOME_MED::MED_EDGE;
91 case MED_NODE : return SALOME_MED::MED_NODE;
92 case MED_ALL_ENTITIES : return SALOME_MED::MED_ALL_ENTITIES;
94 { MESSAGE("Unknown entity element");
95 THROW_SALOME_CORBA_EXCEPTION("Unknown Entity Element",
96 SALOME::INTERNAL_ERROR);
101 medEntityMesh convertIdlEntToMedEnt(SALOME_MED::medEntityMesh entity)
102 throw (SALOME::SALOME_Exception)
106 case SALOME_MED::MED_CELL : return MED_CELL;
107 case SALOME_MED::MED_FACE : return MED_FACE;
108 case SALOME_MED::MED_EDGE : return MED_EDGE;
109 case SALOME_MED::MED_NODE : return MED_NODE;
110 case SALOME_MED::MED_ALL_ENTITIES : return MED_ALL_ENTITIES;
112 { MESSAGE("Unknown Entity Element");
113 THROW_SALOME_CORBA_EXCEPTION("Unknown Entity Element",
114 SALOME::INTERNAL_ERROR);
119 medModeSwitch convertIdlModeToMedMode(SALOME_MED::medModeSwitch mode)
120 throw (SALOME::SALOME_Exception)
124 case SALOME_MED::MED_FULL_INTERLACE : return MED_FULL_INTERLACE;
125 case SALOME_MED::MED_NO_INTERLACE : return MED_NO_INTERLACE;
127 { MESSAGE("Unknown interlace mode");
128 THROW_SALOME_CORBA_EXCEPTION("Unknown interlace mode",
129 SALOME::INTERNAL_ERROR);
134 SALOME_MED::medModeSwitch convertMedModeToIdlMode(medModeSwitch mode)
135 throw (SALOME::SALOME_Exception)
139 case MED_FULL_INTERLACE : return SALOME_MED::MED_FULL_INTERLACE;
140 case MED_NO_INTERLACE : return SALOME_MED::MED_NO_INTERLACE;
142 { MESSAGE("Unknown interlace mode");
143 THROW_SALOME_CORBA_EXCEPTION("Unknown interlace mode",
144 SALOME::INTERNAL_ERROR);
148 SALOME_MED::medConnectivity convertMedConnToIdlConn(medConnectivity connectivite)
149 throw (SALOME::SALOME_Exception)
151 switch (connectivite)
153 case MED_NODAL : return SALOME_MED::MED_NODAL;
154 case MED_DESCENDING : return SALOME_MED::MED_DESCENDING;
156 { MESSAGE("Unknown connectivity type");
157 THROW_SALOME_CORBA_EXCEPTION("Unknown connectivity type",
158 SALOME::INTERNAL_ERROR);
162 medConnectivity convertIdlConnToMedConn(SALOME_MED::medConnectivity connectivite)
163 throw (SALOME::SALOME_Exception)
165 switch (connectivite)
167 case SALOME_MED::MED_NODAL : return MED_NODAL;
168 case SALOME_MED::MED_DESCENDING : return MED_DESCENDING;
170 { MESSAGE("Unknown connectivity type");
171 THROW_SALOME_CORBA_EXCEPTION("Unknown connectivity type",
172 SALOME::INTERNAL_ERROR);
176 SALOME_MED::medDriverTypes convertMedDriverToIdlDriver(MEDMEM::driverTypes driverType)
177 throw (SALOME::SALOME_Exception)
181 case MEDMEM::MED_DRIVER : return SALOME_MED::MED_DRIVER;
182 case MEDMEM::VTK_DRIVER : return SALOME_MED::VTK_DRIVER;
183 case MEDMEM::NO_DRIVER : return SALOME_MED::NO_DRIVER;
185 { MESSAGE("Unknown driver type");
186 THROW_SALOME_CORBA_EXCEPTION("Unknown driver type",
187 SALOME::INTERNAL_ERROR);
192 MEDMEM::driverTypes convertIdlDriverToMedDriver(SALOME_MED::medDriverTypes driverType)
193 throw (SALOME::SALOME_Exception)
197 case SALOME_MED::MED_DRIVER : return MEDMEM::MED_DRIVER;
198 case SALOME_MED::VTK_DRIVER : return MEDMEM::VTK_DRIVER;
199 case SALOME_MED::NO_DRIVER : return MEDMEM::NO_DRIVER;
201 { MESSAGE("Unknown driver type");
202 THROW_SALOME_CORBA_EXCEPTION("Unknown driver type",
203 SALOME::INTERNAL_ERROR);
207 bool verifieParam (SALOME_MED::medEntityMesh entity,SALOME_MED::medGeometryElement geomElement)
208 throw (SALOME::SALOME_Exception)
215 case SALOME_MED::MED_FACE :
219 case SALOME_MED::MED_TRIA3 : coherent=true;
220 case SALOME_MED::MED_QUAD4 : coherent=true;
221 case SALOME_MED::MED_TRIA6 : coherent=true;
222 case SALOME_MED::MED_QUAD8 : coherent=true;
223 case SALOME_MED::MED_POLYGON : coherent=true;
227 case SALOME_MED::MED_CELL :
231 case SALOME_MED::MED_POINT1 : coherent=true;
232 case SALOME_MED::MED_SEG2 : coherent=true;
233 case SALOME_MED::MED_SEG3 : coherent=true;
234 case SALOME_MED::MED_TRIA3 : coherent=true;
235 case SALOME_MED::MED_TRIA6 : coherent=true;
236 case SALOME_MED::MED_QUAD4 : coherent=true;
237 case SALOME_MED::MED_QUAD8 : coherent=true;
238 case SALOME_MED::MED_TETRA4 : coherent=true;
239 case SALOME_MED::MED_TETRA10 : coherent=true;
240 case SALOME_MED::MED_HEXA8 : coherent=true;
241 case SALOME_MED::MED_HEXA20 : coherent=true;
242 case SALOME_MED::MED_PENTA6 : coherent=true;
243 case SALOME_MED::MED_PENTA15 : coherent=true;
244 case SALOME_MED::MED_PYRA5 : coherent=true;
245 case SALOME_MED::MED_PYRA13 : coherent=true;
246 case SALOME_MED::MED_POLYGON : coherent=true;
247 case SALOME_MED::MED_POLYHEDRA: coherent=true;
251 case SALOME_MED::MED_EDGE :
255 case SALOME_MED::MED_SEG2 : coherent=true;
256 case SALOME_MED::MED_SEG3 : coherent=true;
260 case SALOME_MED::MED_NODE :
264 case SALOME_MED::MED_POINT1 : coherent=true;
268 case SALOME_MED::MED_ALL_ENTITIES :
272 case SALOME_MED::MED_NONE : coherent=true;
277 { MESSAGE("Unknown geometric entity");
278 THROW_SALOME_CORBA_EXCEPTION("Unknown geometric entity",
279 SALOME::INTERNAL_ERROR);
286 case SALOME_MED::MED_ALL_ELEMENTS : coherent=true;