#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