1 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either
7 // version 2.1 of the License.
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // Lesser General Public License for more details.
14 // You should have received a copy of the GNU Lesser General Public
15 // License along with this library; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
22 // File : readEntete.cxx
27 #include "MEDMEM_Exception.hxx"
28 #include "MEDMEM_define.hxx"
29 #include "MEDMEM_Mesh.hxx"
30 #include "MEDMEM_DriversDef.hxx"
31 using namespace MEDMEM;
33 void usage(char * name)
35 cout << " " << name <<" <file name>"<< " <mesh name> " << " <interlace mode>" << endl;
36 cout << " " << "displays all Nodes Coordinates in mdump mode" << endl;
38 cout << " " << "mesh name is mandatory. Try mdump if necessary" << endl;
39 cout << " " << "values for interlace mode are : " << endl;
40 cout << " " << "MED_FULL_INTERLACE (default value) or MED_NO_INTERLACE" << endl;
44 int main (int argc, char ** argv) {
46 if (argc < 3) usage(argv[0]);
47 if (argc > 4) usage(argv[0]);
49 string fileName = argv[1];
50 string meshName = argv[2];
52 medModeSwitch Mode = MED_FULL_INTERLACE;
56 if ( comp == "MED_NO_INTERLACE" ) Mode = MED_NO_INTERLACE;
57 else if ( comp != "MED_FULL_INTERLACE") usage(argv[0]);
61 MESH * myMesh= new MESH() ;
62 myMesh->setName(meshName);
63 MED_MESH_RDONLY_DRIVER myMeshDriver(fileName,myMesh);
66 myMeshDriver.setMeshName(meshName);
69 catch (const exception & ex)
71 MESSAGE("Catch Exception : ");
80 catch (const exception & ex)
82 MESSAGE("Catch Exception : ");
87 int SpaceDimension = myMesh->getSpaceDimension();
88 int MeshDimension = myMesh->getMeshDimension();
89 int NumberOfNodes = myMesh->getNumberOfNodes();
91 cout << "(****************************)" << endl;
92 cout << "(* INFORMATIONS GENERALES : *)" << endl;
93 cout << "(****************************)" << endl;
95 string chainevide(MED_TAILLE_PNOM+2,' ');
96 cout << "- Nom du maillage : <<" << meshName << ">>" << endl;
97 cout << "- Dimension d'espace : "<< SpaceDimension << endl;
98 cout << "- Dimension du maillage : "<< MeshDimension << endl;
99 cout << "- Pas de nom universel " << endl ;
100 cout << "- Nombre de noeuds : " << NumberOfNodes << " " << endl;
102 int NumberOfTypes = myMesh->getNumberOfTypes(MED_CELL);
103 const medGeometryElement * Types = myMesh->getTypes(MED_CELL);
105 cout << "- Nombre de Type de mailles : " << NumberOfTypes << endl;
107 if (NumberOfTypes > 0)
110 for (int itype=0; itype<NumberOfTypes; itype++) cout << Types[itype] << " ";
114 const list<MED_FR::med_geometrie_element> currentEntity = MED_FR::meshEntities[(MED_FR::med_entite_maillage)MED_CELL];
115 list<MED_FR::med_geometrie_element>::const_iterator currentGeometry;
116 for (currentGeometry = currentEntity.begin();
117 currentGeometry != currentEntity.end();
120 cout << "- Nombre de mailles de type ";
121 cout << MED_FR::geoNames[(MED_FR::med_geometrie_element)(*currentGeometry)] << " : ";
122 cout << myMesh->getNumberOfElements(MED_CELL,(MED_EN::medGeometryElement)(*currentGeometry));
126 NumberOfTypes = myMesh->getNumberOfTypes(MED_FACE);
127 Types = myMesh->getTypes(MED_FACE);
129 cout << "- Nombre de Type de faces : " << NumberOfTypes << endl;
131 if (NumberOfTypes > 0)
134 for (int itype=0; itype<NumberOfTypes; itype++) cout << Types[itype] << " ";
138 const list<MED_FR::med_geometrie_element> currentEntity2 = MED_FR::meshEntities[(MED_FR::med_entite_maillage)MED_FACE];
139 for (currentGeometry = currentEntity2.begin();
140 currentGeometry != currentEntity2.end();
143 cout << "- Nombre de faces de type ";
144 cout << MED_FR::geoNames[(MED_FR::med_geometrie_element)(*currentGeometry)] << " : ";
145 cout << myMesh->getNumberOfElements(MED_FACE,(MED_EN::medGeometryElement)(*currentGeometry));
149 NumberOfTypes = myMesh->getNumberOfTypes(MED_EDGE);
150 Types = myMesh->getTypes(MED_EDGE);
152 cout << "- Nombre de Type de aretes : " << NumberOfTypes << endl;
154 if (NumberOfTypes > 0)
157 for (int itype=0; itype<NumberOfTypes; itype++) cout << Types[itype] << " ";
161 const list<MED_FR::med_geometrie_element> currentEntity3 = MED_FR::meshEntities[(MED_FR::med_entite_maillage)MED_EDGE];
162 for (currentGeometry = currentEntity3.begin();
163 currentGeometry != currentEntity3.end();
166 cout << "- Nombre d'aretes de type ";
167 cout << MED_FR::geoNames[(MED_FR::med_geometrie_element)(*currentGeometry)] << " : ";
168 cout << myMesh->getNumberOfElements(MED_EDGE,(MED_EN::medGeometryElement)(*currentGeometry));