Salome HOME
DCQ : Merge with Ecole_Ete_a6.
[modules/smesh.git] / src / DriverMED / DriverMED_R_SMESHDS_Mesh.h
index 88ae5037c38682b51d8baa0a99296ab99ab65b5d..c592c30344b14a225795a7da96db379242dee7e9 100644 (file)
 
 #include "SMESHDS_Mesh.hxx"
 #include "Mesh_Reader.h"
+#include "DriverMED_Family.h"
 
-#include <vector>
+#include <list>
 extern "C"
 {
 #include <med.h>
 }
 
+using namespace std;
+
+class SMESHDS_Group;
+class SMESHDS_SubMesh;
+
 class DriverMED_R_SMESHDS_Mesh:public Mesh_Reader
 {
+ public:
+
+  DriverMED_R_SMESHDS_Mesh();
+  ~DriverMED_R_SMESHDS_Mesh();
+
+  enum ReadStatus {
+    DRS_OK,
+    DRS_EMPTY,          // a MED file contains no mesh with the given name
+    DRS_WARN_RENUMBER,  // a MED file has overlapped ranges of element numbers,
+                        // so the numbers from the file are ignored
+    DRS_WARN_SKIP_ELEM, // some elements were skipped due to incorrect file data
+    DRS_FAIL            // general failure (exception etc.)
+  };
+
+  void Read();
+  ReadStatus ReadMySelf();
+  void Add();
 
-  public:DriverMED_R_SMESHDS_Mesh();
-       ~DriverMED_R_SMESHDS_Mesh();
+  list<string> GetGroupNames();
+  void GetGroup(SMESHDS_Group* theGroup);
+  void CreateAllSubMeshes();
+  void GetSubMesh(SMESHDS_SubMesh* theSubMesh, const int theId);
 
-       void Read();
-       void ReadMySelf();
-       void Add();
+  list<string> GetMeshNames();
 
-       void SetMesh(SMDS_Mesh * aMesh);
-       void SetFile(string);
-       void SetFileId(med_idt);
-       void SetMeshId(int);
+  void SetMesh(SMDS_Mesh * aMesh);
+  void SetFile(string);
+  void SetFileId(med_idt);
+  void SetMeshId(int);
+  void SetMeshName(string theMeshName);
 
-       void LinkMeshToShape(string, string, vector < int >);
+ private:
 
-  private:  SMDS_Mesh * myMesh;
-       string myFile;
-       med_idt myFileId;
-       int myMeshId;
+  SMDS_Mesh * myMesh;
+  string myFile;
+  med_idt myFileId;
+  int myMeshId;
+  string myMeshName;
+  map<int, DriverMED_FamilyPtr> myFamilies;
 
 };
 #endif