Salome HOME
Add documentation fallbacks
[modules/smesh.git] / src / DriverMED / DriverMED_W_SMESHDS_Mesh.cxx
index c33517ca0c009f8f13e9f290388df08dad7d73c3..63c69c992ee921e3a18351a076439b76abd0d968 100644 (file)
@@ -35,6 +35,8 @@
 #include "SMDS_SetIterator.hxx"
 #include "SMESHDS_Mesh.hxx"
 
+#include <med.h>
+
 #include <BRep_Tool.hxx>
 #include <TopExp_Explorer.hxx>
 #include <TopoDS.hxx>
@@ -50,7 +52,6 @@ using namespace MED;
 
 
 DriverMED_W_SMESHDS_Mesh::DriverMED_W_SMESHDS_Mesh():
-  myMedVersion(MED::eV2_2),
   myAllSubMeshes (false),
   myDoGroupOfNodes (false),
   myDoGroupOfEdges (false),
@@ -60,19 +61,13 @@ DriverMED_W_SMESHDS_Mesh::DriverMED_W_SMESHDS_Mesh():
   myDoGroupOfBalls(false),
   myAutoDimension(false),
   myAddODOnVertices(false),
-  myDoAllInGroups(false)
+  myDoAllInGroups(false),
+  myVersion(-1)
 {}
 
-void DriverMED_W_SMESHDS_Mesh::SetFile(const std::string& theFileName, 
-                                       MED::EVersion      theId)
-{
-  Driver_SMESHDS_Mesh::SetFile(theFileName);
-  myMedVersion = theId;
-  //MESSAGE("myMedVersion:"<<myMedVersion);
-}
-
-void DriverMED_W_SMESHDS_Mesh::SetFile(const std::string& theFileName)
+void DriverMED_W_SMESHDS_Mesh::SetFile(const std::string& theFileName, int theVersion)
 {
+  myVersion = theVersion;
   Driver_SMESHDS_Mesh::SetFile(theFileName);
 }
 
@@ -80,30 +75,21 @@ void DriverMED_W_SMESHDS_Mesh::SetFile(const std::string& theFileName)
  * MED version is either the latest available, or with an inferior minor,
  * to ensure backward compatibility on writing med files.
  */
-string DriverMED_W_SMESHDS_Mesh::GetVersionString(const MED::EVersion theVersion, int theNbDigits)
+string DriverMED_W_SMESHDS_Mesh::GetVersionString(int theMinor, int theNbDigits)
 {
   TInt majeur, mineur, release;
-  majeur =  mineur = release = 0;
-  MED::GetVersionRelease<eV2_2>(majeur, mineur, release);
+  majeur=MED_MAJOR_NUM;
+  mineur=MED_MINOR_NUM;
+  release=MED_RELEASE_NUM;
   TInt imposedMineur = mineur;
-  switch( theVersion ) {
-    case MED::eV2_1     :
-    case MED::eV2_2     :
-    case MED::eLATEST   : break;
-    case MED::eMINOR_0  : imposedMineur = 0; break;
-    case MED::eMINOR_1  : imposedMineur = 1; break;
-    case MED::eMINOR_2  : imposedMineur = 2; break;
-    case MED::eMINOR_3  : imposedMineur = 3; break;
-    case MED::eMINOR_4  : imposedMineur = 4; break;
-    case MED::eMINOR_5  : imposedMineur = 5; break;
-    case MED::eMINOR_6  : imposedMineur = 6; break;
-    case MED::eMINOR_7  : imposedMineur = 7; break;
-    case MED::eMINOR_8  : imposedMineur = 8; break;
-    case MED::eMINOR_9  : imposedMineur = 9; break;
-    case MED::eVUnknown : imposedMineur = mineur; break;
-  }
-  if (imposedMineur > mineur)
+
+  if (theMinor < 0)
+    imposedMineur = mineur;
+  else if (theMinor > MED_MINOR_NUM)
     imposedMineur = mineur;
+  else
+    imposedMineur = theMinor;
+
   ostringstream name;
   if ( theNbDigits > 0 )
     name << majeur;
@@ -471,8 +457,8 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
         break;
       }
     }
-    //MESSAGE("myMedVersion:"<<myMedVersion);
-    MED::PWrapper myMed = CrWrapper(myFile,myMedVersion);
+
+    MED::PWrapper myMed = CrWrapperW(myFile, myVersion);
     PMeshInfo aMeshInfo = myMed->CrMeshInfo(aMeshDimension,aSpaceDimension,aMeshName);
     //MESSAGE("Add - aMeshName : "<<aMeshName<<"; "<<aMeshInfo->GetName());
     myMed->SetMeshInfo(aMeshInfo);