From f432a8d3c12549c0ad8f1f7b69976ddf9a76e693 Mon Sep 17 00:00:00 2001 From: apo Date: Tue, 28 Dec 2004 13:48:15 +0000 Subject: [PATCH] [Bug PAL7252] DEVELOPMENT: Porting to MED2.2 --- adm_local/unix/make_commence.in | 10 +- configure.in.base | 10 +- src/DriverMED/DriverMED_Family.cxx | 19 +- src/DriverMED/DriverMED_Family.h | 5 +- src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx | 144 ++++--- src/DriverMED/DriverMED_W_SMESHDS_Mesh.cxx | 437 +++++++++++---------- src/DriverMED/DriverMED_W_SMESHDS_Mesh.h | 5 + src/DriverMED/Makefile.in | 2 +- src/SMESH/Makefile.in | 4 +- src/SMESHGUI/Makefile.in | 2 +- src/SMESH_I/Makefile.in | 4 +- src/StdMeshersGUI/Makefile.in | 2 +- 12 files changed, 326 insertions(+), 318 deletions(-) diff --git a/adm_local/unix/make_commence.in b/adm_local/unix/make_commence.in index 43b015ee6..1a315f806 100644 --- a/adm_local/unix/make_commence.in +++ b/adm_local/unix/make_commence.in @@ -97,12 +97,6 @@ HDF5_INCLUDES=@HDF5_INCLUDES@ HDF5_LIBS=@HDF5_LIBS@ HDF5_MT_LIBS=@HDF5_MT_LIBS@ -# MED2 - -MED2_INCLUDES=@MED2_INCLUDES@ -MED2_LIBS=@MED2_LIBS@ -MED2_MT_LIBS=@MED2_MT_LIBS@ - # OpenCasCade OCC_INCLUDES=@CAS_CPPFLAGS@ @@ -251,8 +245,8 @@ ac_cxx_mutable.m4 check_mico.m4 libtool.m4 \ ac_cxx_namespaces.m4 check_omniorb.m4 pyembed.m4 \ ac_cxx_partial_specialization.m4 check_opengl.m4 python.m4 \ ac_cxx_typename.m4 check_pthreads.m4 check_cas.m4 \ -ac_cc_warnings.m4 check_qt.m4 check_med2.m4 \ -check_swig.m4 check_boost.m4 +ac_cc_warnings.m4 check_qt.m4 check_boost.m4 \ +check_swig.m4 $(top_srcdir)/aclocal.m4: $(ACLOCAL_SRC:%=@KERNEL_ROOT_DIR@/salome_adm/unix/config_files/%) cd $(top_srcdir) ; aclocal --acdir=adm_local/unix/config_files -I @KERNEL_ROOT_DIR@/salome_adm/unix/config_files diff --git a/configure.in.base b/configure.in.base index 16b6b77fa..38caec219 100644 --- a/configure.in.base +++ b/configure.in.base @@ -233,14 +233,6 @@ echo CHECK_HDF5 -echo -echo --------------------------------------------- -echo testing MED2 -echo --------------------------------------------- -echo - -CHECK_MED2 - echo echo --------------------------------------------- echo Testing OpenCascade @@ -288,7 +280,7 @@ echo --------------------------------------------- echo echo Configure -variables="cc_ok boost_ok lex_yacc_ok python_ok swig_ok threads_ok OpenGL_ok qt_ok vtk_ok hdf5_ok med2_ok omniORB_ok occ_ok doxygen_ok graphviz_ok Kernel_ok Geom_ok Med_ok" +variables="cc_ok boost_ok lex_yacc_ok python_ok swig_ok threads_ok OpenGL_ok qt_ok vtk_ok hdf5_ok omniORB_ok occ_ok doxygen_ok graphviz_ok Kernel_ok Geom_ok Med_ok" for var in $variables do diff --git a/src/DriverMED/DriverMED_Family.cxx b/src/DriverMED/DriverMED_Family.cxx index f40810c94..778c282a5 100644 --- a/src/DriverMED/DriverMED_Family.cxx +++ b/src/DriverMED/DriverMED_Family.cxx @@ -26,6 +26,8 @@ // $Header$ #include "DriverMED_Family.h" +#include "MED_Factory.hxx" + #include using namespace std; @@ -204,8 +206,9 @@ list DriverMED_Family::MakeFamilies * Create TFamilyInfo for this family */ //============================================================================= -MEDA::PFamilyInfo DriverMED_Family::GetFamilyInfo - (const MEDA::PMeshInfo& theMeshInfo) const +MED::PFamilyInfo +DriverMED_Family::GetFamilyInfo(const MED::PWrapper& theWrapper, + const MED::PMeshInfo& theMeshInfo) const { string aValue; ostringstream aStr; @@ -215,11 +218,13 @@ MEDA::PFamilyInfo DriverMED_Family::GetFamilyInfo MED::TIntVector anAttrIds (1, myId); // Id=0, MED::TIntVector anAttrVals (1, myId); // Value=0 - MEDA::PFamilyInfo anInfo = MEDA::TWrapper::CrFamilyInfo(theMeshInfo, - aValue, - myId, - myGroupNames, - anAttrDescs,anAttrIds,anAttrVals); + MED::PFamilyInfo anInfo = theWrapper->CrFamilyInfo(theMeshInfo, + aValue, + myId, + myGroupNames, + anAttrDescs, + anAttrIds, + anAttrVals); // cout << endl; // cout << "Groups: "; diff --git a/src/DriverMED/DriverMED_Family.h b/src/DriverMED/DriverMED_Family.h index b5fc51f2e..944b9bc82 100644 --- a/src/DriverMED/DriverMED_Family.h +++ b/src/DriverMED/DriverMED_Family.h @@ -31,7 +31,7 @@ #include "SMDS_Mesh.hxx" #include "SMESHDS_GroupBase.hxx" #include "SMESHDS_SubMesh.hxx" -#include "MEDA_Wrapper.hxx" +#include "MED_Common.hxx" #include #include @@ -63,7 +63,8 @@ class DriverMED_Family // from and other sub-meshes from . // Resulting families have no common elements. - MEDA::PFamilyInfo GetFamilyInfo (const MEDA::PMeshInfo& theMeshInfo) const; + MED::PFamilyInfo GetFamilyInfo (const MED::PWrapper& theWrapper, + const MED::PMeshInfo& theMeshInfo) const; // Create TFamilyInfo for this family const std::set& GetElements () const { return myElements; } diff --git a/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx b/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx index 513454316..25e517cf4 100644 --- a/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx +++ b/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx @@ -33,20 +33,22 @@ #include "SMESHDS_Group.hxx" -#include "MEDA_Wrapper.hxx" +#include "MED_Factory.hxx" #include "MED_Utilities.hxx" #include #define _EDF_NODE_IDS_ +using namespace MED; + void DriverMED_R_SMESHDS_Mesh::SetMeshName(string theMeshName) { myMeshName = theMeshName; } static const SMDS_MeshNode* -FindNode(const SMDS_Mesh* theMesh, med_int theId){ +FindNode(const SMDS_Mesh* theMesh, TInt theId){ const SMDS_MeshNode* aNode = theMesh->FindNode(theId); if(aNode) return aNode; EXCEPTION(runtime_error,"SMDS_Mesh::FindNode - cannot find a SMDS_MeshNode for ID = "< -med_float GetCoord(MEDA::PNodeInfo& thePNodeInfo, med_int theElemId){ +TFloat GetCoord(MED::PNodeInfo& thePNodeInfo, TInt theElemId){ return thePNodeInfo->GetNodeCoord(theElemId,TheCoordId); } template<> -med_float GetCoord(MEDA::PNodeInfo& thePNodeInfo, med_int theElemId){ +TFloat GetCoord(MED::PNodeInfo& thePNodeInfo, TInt theElemId){ return 0.0; } @@ -113,16 +115,16 @@ static TGetCoord aZGetCoord[3] = { class TCoordHelper{ - MEDA::PNodeInfo myPNodeInfo; + MED::PNodeInfo myPNodeInfo; TGetCoord* myGetCoord; public: - TCoordHelper(const MEDA::PNodeInfo& thePNodeInfo, + TCoordHelper(const MED::PNodeInfo& thePNodeInfo, TGetCoord* theGetCoord): myPNodeInfo(thePNodeInfo), myGetCoord(theGetCoord) {} virtual ~TCoordHelper(){} - med_float GetCoord(med_int theElemId, med_int theCoodId){ + TFloat GetCoord(TInt theElemId, TInt theCoodId){ return (*myGetCoord[theCoodId])(myPNodeInfo,theElemId); } }; @@ -133,18 +135,16 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform() { Status aResult = DRS_FAIL; try{ - using namespace MEDA; - myFamilies.clear(); MESSAGE("Perform - myFile : "<GetNbMeshes()){ for(int iMesh = 0; iMesh < aNbMeshes; iMesh++){ // Reading the MED mesh //--------------------- - PMeshInfo aMeshInfo = aMed.GetMeshInfo(iMesh); + PMeshInfo aMeshInfo = aMed->GetPMeshInfo(iMesh+1); string aMeshName; if (myMeshId != -1) { ostringstream aMeshNameStr; @@ -156,22 +156,22 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform() MESSAGE("Perform - aMeshName : "<GetName()); if(aMeshName != aMeshInfo->GetName()) continue; aResult = DRS_OK; - med_int aMeshDim = aMeshInfo->GetDim(); + //TInt aMeshDim = aMeshInfo->GetDim(); // Reading MED families to the temporary structure //------------------------------------------------ - med_int aNbFams = aMed.GetNbFamilies(aMeshInfo); + TInt aNbFams = aMed->GetNbFamilies(aMeshInfo); MESSAGE("Read " << aNbFams << " families"); - for (med_int iFam = 0; iFam < aNbFams; iFam++) { - PFamilyInfo aFamilyInfo = aMed.GetFamilyInfo(aMeshInfo, iFam); - med_int aFamId = aFamilyInfo->GetId(); + for (TInt iFam = 0; iFam < aNbFams; iFam++) { + PFamilyInfo aFamilyInfo = aMed->GetPFamilyInfo(aMeshInfo, iFam+1); + TInt aFamId = aFamilyInfo->GetId(); MESSAGE("Family " << aFamId << " :"); DriverMED_FamilyPtr aFamily (new DriverMED_Family); - med_int aNbGrp = aFamilyInfo->GetNbGroup(); + TInt aNbGrp = aFamilyInfo->GetNbGroup(); MESSAGE("belong to " << aNbGrp << " groups"); - for (med_int iGr = 0; iGr < aNbGrp; iGr++) { + for (TInt iGr = 0; iGr < aNbGrp; iGr++) { string aGroupName = aFamilyInfo->GetGroupName(iGr); MESSAGE(aGroupName); aFamily->AddGroupName(aGroupName); @@ -181,13 +181,13 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform() // Reading MED nodes to the corresponding SMDS structure //------------------------------------------------------ - PNodeInfo aNodeInfo = aMed.GetNodeInfo(aMeshInfo); + PNodeInfo aNodeInfo = aMed->GetPNodeInfo(aMeshInfo); TCoordHelperPtr aCoordHelperPtr; { - med_int aMeshDimension = aMeshInfo->GetDim(); + TInt aMeshDimension = aMeshInfo->GetDim(); bool anIsDimPresent[3] = {false, false, false}; - for(med_int iDim = 0; iDim < aMeshDimension; iDim++){ + for(TInt iDim = 0; iDim < aMeshDimension; iDim++){ string aDimName = aNodeInfo->GetCoordName(iDim); if(aDimName == "x" || aDimName == "X") anIsDimPresent[eX] = true; @@ -219,12 +219,12 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform() } } - med_booleen anIsNodeNum = aNodeInfo->IsElemNum(); - med_int aNbElems = aNodeInfo->GetNbElem(); + EBooleen anIsNodeNum = aNodeInfo->IsElemNum(); + TInt aNbElems = aNodeInfo->GetNbElem(); MESSAGE("Perform - aNodeInfo->GetNbElem() = "<X()<<", "<Y()<<", "<Z()<GetFamNum(iElem); + TInt aFamNum = aNodeInfo->GetFamNum(iElem); if (myFamilies.find(aFamNum) != myFamilies.end()) { myFamilies[aFamNum]->AddElement(aNode); @@ -248,58 +248,58 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform() // Reading pre information about all MED cells //-------------------------------------------- bool takeNumbers = true; // initially we trust the numbers from file - MED::TEntityInfo aEntityInfo = aMed.GetEntityInfo(aMeshInfo); + MED::TEntityInfo aEntityInfo = aMed->GetEntityInfo(aMeshInfo); MED::TEntityInfo::iterator anEntityIter = aEntityInfo.begin(); for(; anEntityIter != aEntityInfo.end(); anEntityIter++){ - const med_entite_maillage& anEntity = anEntityIter->first; - if(anEntity == MED_NOEUD) continue; + const EEntiteMaillage& anEntity = anEntityIter->first; + if(anEntity == eNOEUD) continue; // Reading MED cells to the corresponding SMDS structure //------------------------------------------------------ const MED::TGeom& aTGeom = anEntityIter->second; MED::TGeom::const_iterator anTGeomIter = aTGeom.begin(); for(; anTGeomIter != aTGeom.end(); anTGeomIter++){ - const med_geometrie_element& aGeom = anTGeomIter->first; - if(aGeom == MED_POINT1) continue; - PCellInfo aCellInfo = aMed.GetCellInfo(aMeshInfo,anEntity,aGeom); - med_booleen anIsElemNum = takeNumbers ? aCellInfo->IsElemNum() : MED_FAUX; - med_int aNbElems = aCellInfo->GetNbElem(); + const EGeometrieElement& aGeom = anTGeomIter->first; + if(aGeom == ePOINT1) continue; + PCellInfo aCellInfo = aMed->GetPCellInfo(aMeshInfo,anEntity,aGeom); + EBooleen anIsElemNum = takeNumbers ? aCellInfo->IsElemNum() : eFAUX; + TInt aNbElems = aCellInfo->GetNbElem(); MESSAGE("Perform - anEntity = "<GetNbMeshes()) { for (int iMesh = 0; iMesh < aNbMeshes; iMesh++) { // Reading the MED mesh //--------------------- - PMeshInfo aMeshInfo = aMed.GetMeshInfo(iMesh); + PMeshInfo aMeshInfo = aMed->GetPMeshInfo(iMesh+1); aMeshNames.push_back(aMeshInfo->GetName()); } } diff --git a/src/DriverMED/DriverMED_W_SMESHDS_Mesh.cxx b/src/DriverMED/DriverMED_W_SMESHDS_Mesh.cxx index 6bdfc09be..0671461af 100644 --- a/src/DriverMED/DriverMED_W_SMESHDS_Mesh.cxx +++ b/src/DriverMED/DriverMED_W_SMESHDS_Mesh.cxx @@ -35,13 +35,15 @@ #include "SMDS_MeshNode.hxx" #include "utilities.h" -#include "MEDA_Wrapper.hxx" +#include "MED_Factory.hxx" #include "MED_Utilities.hxx" #define _EDF_NODE_IDS_ //#define _ELEMENTS_BY_DIM_ using namespace std; +using namespace MED; + DriverMED_W_SMESHDS_Mesh::DriverMED_W_SMESHDS_Mesh(): myAllSubMeshes (false), @@ -51,6 +53,17 @@ DriverMED_W_SMESHDS_Mesh::DriverMED_W_SMESHDS_Mesh(): myDoGroupOfVolumes (false) {} +void DriverMED_W_SMESHDS_Mesh::SetFile(const std::string& theFileName, MED::EVersion theId) +{ + myMed = CrWrapper(theFileName,theId); + Driver_SMESHDS_Mesh::SetFile(theFileName); +} + +void DriverMED_W_SMESHDS_Mesh::SetFile(const std::string& theFileName) +{ + return SetFile(theFileName,MED::eV2_1); +} + void DriverMED_W_SMESHDS_Mesh::SetMeshName(const std::string& theMeshName) { myMeshName = theMeshName; @@ -91,95 +104,98 @@ void DriverMED_W_SMESHDS_Mesh::AddGroupOfVolumes() myDoGroupOfVolumes = true; } -typedef double (SMDS_MeshNode::* TGetCoord)() const; -typedef const char* TName; -typedef const char* TUnit; - -static TUnit aUnit[3] = {"m","m","m"}; - -static TGetCoord aXYZGetCoord[3] = { - &SMDS_MeshNode::X, - &SMDS_MeshNode::Y, - &SMDS_MeshNode::Z -}; -static TName aXYZName[3] = {"x","y","z"}; - - -static TGetCoord aXYGetCoord[2] = { - &SMDS_MeshNode::X, - &SMDS_MeshNode::Y -}; -static TName aXYName[2] = {"x","y"}; - -static TGetCoord aYZGetCoord[2] = { - &SMDS_MeshNode::Y, - &SMDS_MeshNode::Z -}; -static TName aYZName[2] = {"y","z"}; - -static TGetCoord aXZGetCoord[2] = { - &SMDS_MeshNode::X, - &SMDS_MeshNode::Z -}; -static TName aXZName[2] = {"x","z"}; - - -static TGetCoord aXGetCoord[1] = { - &SMDS_MeshNode::X -}; -static TName aXName[1] = {"x"}; - -static TGetCoord aYGetCoord[1] = { - &SMDS_MeshNode::Y -}; -static TName aYName[1] = {"y"}; - -static TGetCoord aZGetCoord[1] = { - &SMDS_MeshNode::Z -}; -static TName aZName[1] = {"z"}; - - -class TCoordHelper{ - SMDS_NodeIteratorPtr myNodeIter; - const SMDS_MeshNode* myCurrentNode; - TGetCoord* myGetCoord; - TName* myName; - TUnit* myUnit; -public: - TCoordHelper(const SMDS_NodeIteratorPtr& theNodeIter, - TGetCoord* theGetCoord, - TName* theName, - TUnit* theUnit = aUnit): - myNodeIter(theNodeIter), - myGetCoord(theGetCoord), - myName(theName), - myUnit(theUnit) - {} - virtual ~TCoordHelper(){} - bool Next(){ - return myNodeIter->more() && - (myCurrentNode = myNodeIter->next()); - } - const SMDS_MeshNode* GetNode(){ - return myCurrentNode; - } - MED::TIntVector::value_type GetID(){ - return myCurrentNode->GetID(); - } - MED::TFloatVector::value_type GetCoord(med_int theCoodId){ - return (myCurrentNode->*myGetCoord[theCoodId])(); - } - MED::TStringVector::value_type GetName(med_int theDimId){ - return myName[theDimId]; - } - MED::TStringVector::value_type GetUnit(med_int theDimId){ - return myUnit[theDimId]; - } -}; -typedef boost::shared_ptr TCoordHelperPtr; - +namespace{ + typedef double (SMDS_MeshNode::* TGetCoord)() const; + typedef const char* TName; + typedef const char* TUnit; + + TUnit aUnit[3] = {"m","m","m"}; + + TGetCoord aXYZGetCoord[3] = { + &SMDS_MeshNode::X, + &SMDS_MeshNode::Y, + &SMDS_MeshNode::Z + }; + TName aXYZName[3] = {"x","y","z"}; + + + TGetCoord aXYGetCoord[2] = { + &SMDS_MeshNode::X, + &SMDS_MeshNode::Y + }; + TName aXYName[2] = {"x","y"}; + + TGetCoord aYZGetCoord[2] = { + &SMDS_MeshNode::Y, + &SMDS_MeshNode::Z + }; + TName aYZName[2] = {"y","z"}; + + TGetCoord aXZGetCoord[2] = { + &SMDS_MeshNode::X, + &SMDS_MeshNode::Z + }; + TName aXZName[2] = {"x","z"}; + + + TGetCoord aXGetCoord[1] = { + &SMDS_MeshNode::X + }; + TName aXName[1] = {"x"}; + + TGetCoord aYGetCoord[1] = { + &SMDS_MeshNode::Y + }; + TName aYName[1] = {"y"}; + + TGetCoord aZGetCoord[1] = { + &SMDS_MeshNode::Z + }; + TName aZName[1] = {"z"}; + + + class TCoordHelper{ + SMDS_NodeIteratorPtr myNodeIter; + const SMDS_MeshNode* myCurrentNode; + TGetCoord* myGetCoord; + TName* myName; + TUnit* myUnit; + public: + TCoordHelper(const SMDS_NodeIteratorPtr& theNodeIter, + TGetCoord* theGetCoord, + TName* theName, + TUnit* theUnit = aUnit): + myNodeIter(theNodeIter), + myGetCoord(theGetCoord), + myName(theName), + myUnit(theUnit) + {} + virtual ~TCoordHelper(){} + bool Next(){ + return myNodeIter->more() && + (myCurrentNode = myNodeIter->next()); + } + const SMDS_MeshNode* GetNode(){ + return myCurrentNode; + } + MED::TIntVector::value_type GetID(){ + return myCurrentNode->GetID(); + } + MED::TFloatVector::value_type GetCoord(TInt theCoodId){ + return (myCurrentNode->*myGetCoord[theCoodId])(); + } + MED::TStringVector::value_type GetName(TInt theDimId){ + return myName[theDimId]; + } + MED::TStringVector::value_type GetUnit(TInt theDimId){ + return myUnit[theDimId]; + } + }; + typedef boost::shared_ptr TCoordHelperPtr; + +} + Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform() { Status aResult = DRS_OK; @@ -188,11 +204,7 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform() return DRS_FAIL; } try{ - using namespace MEDA; - using namespace boost; - MESSAGE("Perform - myFile : "<nodesIterator(); double aBounds[6]; @@ -237,7 +250,7 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform() anIsXDimension = (aBounds[1] - aBounds[0]) + abs(aBounds[1]) + abs(aBounds[0]) > EPS; anIsYDimension = (aBounds[3] - aBounds[2]) + abs(aBounds[3]) + abs(aBounds[2]) > EPS; anIsZDimension = (aBounds[5] - aBounds[4]) + abs(aBounds[5]) + abs(aBounds[4]) > EPS; - + cout<<"anIsDimension = "<CrMeshInfo(aMeshDimension,aMeshName); MESSAGE("Add - aMeshName : "<GetName()); - aMed.SetMeshInfo(aMeshInfo); + myMed->SetMeshInfo(aMeshInfo); // Storing SMDS groups and sub-meshes //----------------------------------- @@ -303,8 +316,8 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform() for (; aFamsIter != aFamilies.end(); aFamsIter++) { - PFamilyInfo aFamilyInfo = (*aFamsIter)->GetFamilyInfo(aMeshInfo); - aMed.SetFamilyInfo(aFamilyInfo); + PFamilyInfo aFamilyInfo = (*aFamsIter)->GetFamilyInfo(myMed,aMeshInfo); + myMed->SetFamilyInfo(aFamilyInfo); int aFamId = (*aFamsIter)->GetId(); const set& anElems = (*aFamsIter)->GetElements(); @@ -319,15 +332,15 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform() // Storing SMDS nodes to the MED file for the MED mesh //---------------------------------------------------- #ifdef _EDF_NODE_IDS_ - typedef map TNodeIdMap; + typedef map TNodeIdMap; TNodeIdMap aNodeIdMap; #endif - med_int aNbElems = myMesh->NbNodes(); + TInt aNbElems = myMesh->NbNodes(); MED::TIntVector anElemNums(aNbElems); MED::TIntVector aFamilyNums(aNbElems); MED::TFloatVector aCoordinates(aNbElems*aMeshDimension); - for(med_int iNode = 0, aStartId = 0; aCoordHelperPtr->Next(); iNode++, aStartId += aMeshDimension){ - for(med_int iCoord = 0; iCoord < aMeshDimension; iCoord++){ + for(TInt iNode = 0, aStartId = 0; aCoordHelperPtr->Next(); iNode++, aStartId += aMeshDimension){ + for(TInt iCoord = 0; iCoord < aMeshDimension; iCoord++){ aCoordinates[aStartId+iCoord] = aCoordHelperPtr->GetCoord(iCoord); } int aNodeID = aCoordHelperPtr->GetID(); @@ -344,44 +357,44 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform() MED::TStringVector aCoordNames(aMeshDimension); MED::TStringVector aCoordUnits(aMeshDimension); - for(med_int iCoord = 0; iCoord < aMeshDimension; iCoord++){ + for(TInt iCoord = 0; iCoord < aMeshDimension; iCoord++){ aCoordNames[iCoord] = aCoordHelperPtr->GetName(iCoord); aCoordUnits[iCoord] = aCoordHelperPtr->GetUnit(iCoord); } - const med_repere SMDS_COORDINATE_SYSTEM = MED_CART; + const ERepere SMDS_COORDINATE_SYSTEM = eCART; - PNodeInfo aNodeInfo = TWrapper::CrNodeInfo(aMeshInfo, - SMDS_COORDINATE_SYSTEM, - aCoordinates, - aCoordNames, - aCoordUnits, - aFamilyNums, - anElemNums); + PNodeInfo aNodeInfo = myMed->CrNodeInfo(aMeshInfo, + SMDS_COORDINATE_SYSTEM, + aCoordinates, + aCoordNames, + aCoordUnits, + aFamilyNums, + anElemNums); MESSAGE("Perform - aNodeInfo->GetNbElem() = "<SetNodeInfo(aNodeInfo); // Storing others SMDS elements to the MED file for the MED mesh //-------------------------------------------------------------- - med_entite_maillage SMDS_MED_ENTITY = MED_MAILLE; - const med_connectivite SMDS_MED_CONNECTIVITY = MED_NOD; + EEntiteMaillage SMDS_MED_ENTITY = eMAILLE; + const EConnectivite SMDS_MED_CONNECTIVITY = eNOD; // Storing SMDS Edges - if(med_int aNbElems = myMesh->NbEdges()){ + if(TInt aNbElems = myMesh->NbEdges()){ #ifdef _ELEMENTS_BY_DIM_ - SMDS_MED_ENTITY = MED_ARETE; + SMDS_MED_ENTITY = eARETE; #endif SMDS_EdgeIteratorPtr anIter = myMesh->edgesIterator(); - med_int aNbConnectivity = MED::GetNbConn(SMDS_MED_ENTITY,MED_SEG2,aMeshDimension); + TInt aNbConnectivity = MED::GetNbConn(SMDS_MED_ENTITY,eSEG2,aMeshDimension); MED::TIntVector anElemNums(aNbElems); MED::TIntVector aFamilyNums(aNbElems); MED::TIntVector aConnectivity(aNbElems*aNbConnectivity); - for(med_int iElem = 0, iConn = 0; anIter->more(); iElem++, iConn+=aNbConnectivity){ + for(TInt iElem = 0, iConn = 0; anIter->more(); iElem++, iConn+=aNbConnectivity){ const SMDS_MeshEdge* anElem = anIter->next(); SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator(); - for(med_int iNode = 0; iNode < aNbConnectivity && aNodesIter->more(); iNode++){ + for(TInt iNode = 0; iNode < aNbConnectivity && aNodesIter->more(); iNode++){ const SMDS_MeshElement* aNode = aNodesIter->next(); #ifdef _EDF_NODE_IDS_ aConnectivity[iConn+iNode] = aNodeIdMap[aNode->GetID()]; @@ -397,23 +410,23 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform() aFamilyNums[iElem] = myEdgesDefaultFamilyId; } - PCellInfo aCellInfo = TWrapper::CrCellInfo(aMeshInfo, - SMDS_MED_ENTITY, - MED_SEG2, - SMDS_MED_CONNECTIVITY, - aConnectivity, - aFamilyNums, - anElemNums); - aMed.SetCellInfo(aCellInfo); + PCellInfo aCellInfo = myMed->CrCellInfo(aMeshInfo, + SMDS_MED_ENTITY, + eSEG2, + SMDS_MED_CONNECTIVITY, + aConnectivity, + aFamilyNums, + anElemNums); + myMed->SetCellInfo(aCellInfo); } // Storing SMDS Faces - if(med_int aNbElems = myMesh->NbFaces()){ + if(TInt aNbElems = myMesh->NbFaces()){ SMDS_FaceIteratorPtr anIter = myMesh->facesIterator(); #ifdef _ELEMENTS_BY_DIM_ - SMDS_MED_ENTITY = MED_FACE; + SMDS_MED_ENTITY = eFACE; #endif - med_int aNbTriaConn = MED::GetNbConn(SMDS_MED_ENTITY,MED_TRIA3,aMeshDimension); + TInt aNbTriaConn = MED::GetNbConn(SMDS_MED_ENTITY,eTRIA3,aMeshDimension); MED::TIntVector anTriaElemNums; anTriaElemNums.reserve(aNbElems); MED::TIntVector aTriaFamilyNums; @@ -421,7 +434,7 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform() MED::TIntVector aTriaConn; aTriaConn.reserve(aNbElems*aNbTriaConn); - med_int aNbQuadConn = MED::GetNbConn(SMDS_MED_ENTITY,MED_QUAD4,aMeshDimension); + TInt aNbQuadConn = MED::GetNbConn(SMDS_MED_ENTITY,eQUAD4,aMeshDimension); MED::TIntVector aQuadElemNums; aQuadElemNums.reserve(aNbElems); MED::TIntVector aQuadFamilyNums; @@ -429,11 +442,11 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform() MED::TIntVector aQuadConn; aQuadConn.reserve(aNbElems*aNbQuadConn); - for(med_int iElem = 0; iElem < aNbElems && anIter->more(); iElem++){ + for(TInt iElem = 0; iElem < aNbElems && anIter->more(); iElem++){ const SMDS_MeshFace* anElem = anIter->next(); - med_int aNbNodes = anElem->NbNodes(); + TInt aNbNodes = anElem->NbNodes(); SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator(); - med_int aNbConnectivity; + TInt aNbConnectivity; MED::TIntVector* anElemNums; MED::TIntVector* aFamilyNums; MED::TIntVector* aConnectivity; @@ -452,12 +465,12 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform() break; } MED::TIntVector aVector(aNbNodes); - for(med_int iNode = 0; aNodesIter->more(); iNode++){ + for(TInt iNode = 0; aNodesIter->more(); iNode++){ const SMDS_MeshElement* aNode = aNodesIter->next(); aVector[iNode] = aNode->GetID(); } - med_int aSize = aConnectivity->size(); + TInt aSize = aConnectivity->size(); aConnectivity->resize(aSize+aNbConnectivity); // There is some differnce between SMDS and MED in cells mapping #ifdef _EDF_NODE_IDS_ @@ -468,7 +481,7 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform() (*aConnectivity)[aSize+2] = aNodeIdMap[aVector[3]]; (*aConnectivity)[aSize+3] = aNodeIdMap[aVector[2]]; default: - for(med_int iNode = 0; iNode < aNbNodes; iNode++) + for(TInt iNode = 0; iNode < aNbNodes; iNode++) (*aConnectivity)[aSize+iNode] = aNodeIdMap[aVector[iNode]]; } #else @@ -479,7 +492,7 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform() (*aConnectivity)[aSize+2] = aVector[3]; (*aConnectivity)[aSize+3] = aVector[2]; default: - for(med_int iNode = 0; iNode < aNbNodes; iNode++) + for(TInt iNode = 0; iNode < aNbNodes; iNode++) (*aConnectivity)[aSize+iNode] = aVector[iNode]; } #endif @@ -490,37 +503,37 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform() else aFamilyNums->push_back(myFacesDefaultFamilyId); } - if(med_int aNbElems = anTriaElemNums.size()){ - PCellInfo aCellInfo = TWrapper::CrCellInfo(aMeshInfo, - SMDS_MED_ENTITY, - MED_TRIA3, - SMDS_MED_CONNECTIVITY, - aTriaConn, - aTriaFamilyNums, - anTriaElemNums); - MESSAGE("Perform - anEntity = "< #include @@ -43,6 +44,9 @@ class DriverMED_W_SMESHDS_Mesh: public Driver_SMESHDS_Mesh DriverMED_W_SMESHDS_Mesh(); + virtual void SetFile(const std::string& theFileName); + void SetFile(const std::string& theFileName, MED::EVersion theId); + /*! sets file name; only for usage with Add(), not Write() */ void AddGroupOfNodes(); @@ -63,6 +67,7 @@ class DriverMED_W_SMESHDS_Mesh: public Driver_SMESHDS_Mesh private: + MED::PWrapper myMed; std::string myMeshName; std::list myGroups; bool myAllSubMeshes; diff --git a/src/DriverMED/Makefile.in b/src/DriverMED/Makefile.in index beca72c92..19d97d9ac 100644 --- a/src/DriverMED/Makefile.in +++ b/src/DriverMED/Makefile.in @@ -60,7 +60,7 @@ LIB_SERVER_IDL = # additionnal information to compil and link file CPPFLAGS += $(OCC_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS) -CXXFLAGS += $(OCC_CXXFLAGS) $(MED2_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome +CXXFLAGS += $(OCC_CXXFLAGS) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome LDFLAGS += -lMeshDriver -L${KERNEL_ROOT_DIR}/lib/salome -lMEDWrapper LDFLAGSFORBIN += -lMeshDriver -lSMDS -lSMESHDS -L${KERNEL_ROOT_DIR}/lib/salome -lMEDWrapper -lOpUtil -lSALOMELocalTrace diff --git a/src/SMESH/Makefile.in b/src/SMESH/Makefile.in index 81c62ca98..4189c8107 100644 --- a/src/SMESH/Makefile.in +++ b/src/SMESH/Makefile.in @@ -74,9 +74,9 @@ BIN = BIN_SRC = # additionnal information to compile and link file -CPPFLAGS+= $(OCC_INCLUDES) $(MED2_INCLUDES) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome \ +CPPFLAGS+= $(OCC_INCLUDES) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome \ -I${GEOM_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS) -CXXFLAGS+= $(OCC_CXXFLAGS) $(MED2_INCLUDES) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome \ +CXXFLAGS+= $(OCC_CXXFLAGS) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome \ -I${GEOM_ROOT_DIR}/include/salome LDFLAGS+= -L${KERNEL_ROOT_DIR}/lib/salome -L${GEOM_ROOT_DIR}/lib/salome -lNMTTools -lSMESHDS -lMeshDriverDAT -lMeshDriverSTL -lMeshDriverMED -lMeshDriverUNV diff --git a/src/SMESHGUI/Makefile.in b/src/SMESHGUI/Makefile.in index e3a137822..c2bcd8edc 100644 --- a/src/SMESHGUI/Makefile.in +++ b/src/SMESHGUI/Makefile.in @@ -169,7 +169,7 @@ LIB_SERVER_IDL = #BIN = SMESHBin CPPFLAGS += $(QT_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(OCC_INCLUDES) $(PYTHON_INCLUDES) \ - $(MED2_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome \ + -I${KERNEL_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome \ $(BOOST_CPPFLAGS) CXXFLAGS += -I${KERNEL_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome diff --git a/src/SMESH_I/Makefile.in b/src/SMESH_I/Makefile.in index 2517d100f..e4d16a8df 100644 --- a/src/SMESH_I/Makefile.in +++ b/src/SMESH_I/Makefile.in @@ -82,9 +82,9 @@ BIN = SMESHEngine BIN_SRC = # additionnal information to compil and link file -CPPFLAGS+= $(OCC_INCLUDES) $(MED2_INCLUDES) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome \ +CPPFLAGS+= $(OCC_INCLUDES) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome \ -I${GEOM_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS) -CXXFLAGS+= $(OCC_CXXFLAGS) $(MED2_INCLUDES) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome \ +CXXFLAGS+= $(OCC_CXXFLAGS) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome \ -I${GEOM_ROOT_DIR}/include/salome LDFLAGS+= -L${KERNEL_ROOT_DIR}/lib/salome -lSalomeContainer -lSalomeNS -lRegistry -lSalomeHDFPersist -lSalomeLifeCycleCORBA -lTOOLSDS -lSalomeGenericObj \ diff --git a/src/StdMeshersGUI/Makefile.in b/src/StdMeshersGUI/Makefile.in index 86eb49764..fd44b0e5d 100644 --- a/src/StdMeshersGUI/Makefile.in +++ b/src/StdMeshersGUI/Makefile.in @@ -66,7 +66,7 @@ LIB_SERVER_IDL = # additionnal information to compil and link file CPPFLAGS += $(QT_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(OCC_INCLUDES) $(PYTHON_INCLUDES) \ - $(MED2_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome \ + -I${KERNEL_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome \ $(BOOST_CPPFLAGS) CXXFLAGS += -I${KERNEL_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome #$(OCC_CXXFLAGS) -- 2.39.2