X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH_I%2FSMESH_Mesh_i.cxx;h=8dc1b25b585e3bb0def9dcdef7cef4d507dc6adc;hp=dbf9013d5621f75bbbf8b6cdd6771ab42012662a;hb=14866e630942b5bf53793305c8d01ac390534795;hpb=49ff23c94f469a0bd9de9981fb709eef8a8c4417;ds=sidebyside diff --git a/src/SMESH_I/SMESH_Mesh_i.cxx b/src/SMESH_I/SMESH_Mesh_i.cxx index dbf9013d5..8dc1b25b5 100644 --- a/src/SMESH_I/SMESH_Mesh_i.cxx +++ b/src/SMESH_I/SMESH_Mesh_i.cxx @@ -445,6 +445,13 @@ SMESH::DriverMED_ReadStatus SMESH_Mesh_i::ImportCGNSFile( const char* theFileNa CreateGroupServants(); + _medFileInfo = new SMESH::MedFileInfo(); + _medFileInfo->fileName = theFileName; + _medFileInfo->major = 0; + _medFileInfo->minor = 0; + _medFileInfo->release = 0; + _medFileInfo->fileSize = SMESH_File( theFileName ).size(); + return ConvertDriverMEDReadStatus(status); } @@ -479,6 +486,13 @@ int SMESH_Mesh_i::ImportUNVFile( const char* theFileName ) CreateGroupServants(); + _medFileInfo = new SMESH::MedFileInfo(); + _medFileInfo->fileName = theFileName; + _medFileInfo->major = 0; + _medFileInfo->minor = 0; + _medFileInfo->release = 0; + _medFileInfo->fileSize = SMESH_File( theFileName ).size(); + SMESH_CATCH( SMESH::throwCorbaException ); return 1; @@ -503,6 +517,12 @@ int SMESH_Mesh_i::ImportSTLFile( const char* theFileName ) SALOMEDS::SObject_wrap meshSO = _gen_i->ObjectToSObject( _this() ); _gen_i->SetName( meshSO, name.c_str() ); } + _medFileInfo = new SMESH::MedFileInfo(); + _medFileInfo->fileName = theFileName; + _medFileInfo->major = 0; + _medFileInfo->minor = 0; + _medFileInfo->release = 0; + _medFileInfo->fileSize = SMESH_File( theFileName ).size(); SMESH_CATCH( SMESH::throwCorbaException ); @@ -541,6 +561,13 @@ SMESH::ComputeError* SMESH_Mesh_i::ImportGMFFile( const char* theFileName, error = _impl->GMFToMesh( theFileName, theMakeRequiredGroups ); + _medFileInfo = new SMESH::MedFileInfo(); + _medFileInfo->fileName = theFileName; + _medFileInfo->major = 0; + _medFileInfo->minor = 0; + _medFileInfo->release = 0; + _medFileInfo->fileSize = SMESH_File( theFileName ).size(); + SMESH_CATCH( exceptionToComputeError ); #undef SMESH_CAUGHT #define SMESH_CAUGHT @@ -3005,7 +3032,7 @@ void SMESH_Mesh_i::ExportMED(const char* file, CORBA::Boolean autoDimension) throw(SALOME::SALOME_Exception) { - MESSAGE("MED minor version: "<< minor); + //MESSAGE("MED minor version: "<< minor); SMESH_TRY; if ( _preMeshInfo ) _preMeshInfo->FullLoadFromFile(); @@ -3136,7 +3163,7 @@ void SMESH_Mesh_i::ExportPartToMED(SMESH::SMESH_IDSource_ptr meshPart, const char* geomAssocFields) throw (SALOME::SALOME_Exception) { - MESSAGE("MED minor version: "<< minor); + //MESSAGE("MED minor version: "<< minor); SMESH_TRY; if ( _preMeshInfo ) _preMeshInfo->FullLoadFromFile(); @@ -3226,14 +3253,14 @@ void SMESH_Mesh_i::ExportPartToMED(SMESH::SMESH_IDSource_ptr meshPart, GEOM::GEOM_BaseObject_var gbo = GEOM::GEOM_BaseObject::_narrow( fields[i] ); goList[i] = gbo; } - TPythonDump() << _this() << ".ExportPartToMED( r'" + TPythonDump() << _this() << ".ExportPartToMED( " + << meshPart << ", r'" << file << "', " - << "auto_groups=" << auto_groups << ", " - << "minor=" << minor << ", " - << "overwrite=" << overwrite << ", " - << "meshPart=" << meshPart << ", " - << "autoDimension=" << autoDimension << ", " - << "fields=" << goList << ", geomAssocFields='" + << auto_groups << ", " + << minor << ", " + << overwrite << ", " + << autoDimension << ", " + << goList << ", '" << ( geomAssocFields ? geomAssocFields : "" ) << "'" << " )"; SMESH_CATCH( SMESH::throwCorbaException ); @@ -5073,6 +5100,48 @@ SMESH::MedFileInfo* SMESH_Mesh_i::GetMEDFileInfo() return res._retn(); } +//======================================================================= +//function : FileInfoToString +//purpose : Persistence of file info +//======================================================================= + +std::string SMESH_Mesh_i::FileInfoToString() +{ + std::string s; + if ( &_medFileInfo.in() && _medFileInfo->fileName[0] ) + { + s = SMESH_Comment( _medFileInfo->fileSize ) + << " " << _medFileInfo->major + << " " << _medFileInfo->minor + << " " << _medFileInfo->release + << " " << _medFileInfo->fileName; + } + return s; +} + +//======================================================================= +//function : FileInfoFromString +//purpose : Persistence of file info +//======================================================================= + +void SMESH_Mesh_i::FileInfoFromString(const std::string& info) +{ + std::string size, major, minor, release, fileName; + std::istringstream is(info); + is >> size >> major >> minor >> release; + fileName = info.data() + ( size.size() + 1 + + major.size() + 1 + + minor.size() + 1 + + release.size()+ 1 ); + + _medFileInfo = new SMESH::MedFileInfo(); + _medFileInfo->fileName = fileName.c_str(); + _medFileInfo->fileSize = atoi( size.c_str() ); + _medFileInfo->major = atoi( major.c_str() ); + _medFileInfo->minor = atoi( minor.c_str() ); + _medFileInfo->release = atoi( release.c_str() ); +} + //============================================================================= /*! * \brief Pass names of mesh groups from study to mesh DS