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=d8ddcf6b92565a157ba7488ca01e8ad8b143c7f2;hp=615546bea9a273128a526c06da0503165e89c2f6;hb=b7a7d49664daa32e1befb558280e13ed0bde37c9;hpb=e7811c61c3565ada368be484f20e7fcac4a9f2cb diff --git a/src/SMESH_I/SMESH_Mesh_i.cxx b/src/SMESH_I/SMESH_Mesh_i.cxx index 615546bea..d8ddcf6b9 100644 --- a/src/SMESH_I/SMESH_Mesh_i.cxx +++ b/src/SMESH_I/SMESH_Mesh_i.cxx @@ -106,14 +106,12 @@ int SMESH_Mesh_i::_idGenerator = 0; //============================================================================= SMESH_Mesh_i::SMESH_Mesh_i( PortableServer::POA_ptr thePOA, - SMESH_Gen_i* gen_i, - CORBA::Long studyId ) + SMESH_Gen_i* gen_i ) : SALOME::GenericObj_i( thePOA ) { _impl = NULL; _gen_i = gen_i; _id = _idGenerator++; - _studyId = studyId; _editor = NULL; _previewEditor = NULL; _preMeshInfo = NULL; @@ -241,9 +239,7 @@ GEOM::GEOM_Object_ptr SMESH_Mesh_i::GetShapeToMesh() for ( ; data != _geomGroupData.end(); ++data ) if ( data->_smeshObject->_is_equivalent( _this() )) { - SALOMEDS::Study_var study = _gen_i->GetCurrentStudy(); - if ( study->_is_nil() ) break; - SALOMEDS::SObject_wrap so = study->FindObjectID( data->_groupEntry.c_str() ); + SALOMEDS::SObject_wrap so = SMESH_Gen_i::getStudyServant()->FindObjectID( data->_groupEntry.c_str() ); CORBA::Object_var obj = _gen_i->SObjectToObject( so ); aShapeObj = GEOM::GEOM_Object::_narrow( obj ); break; @@ -408,8 +404,8 @@ SMESH_Mesh_i::ImportMEDFile( const char* theFileName, const char* theMeshName ) CreateGroupServants(); int major, minor, release; - if( !MED::getMEDVersion( theFileName, major, minor, release ) ) - major = minor = release = -1; + major = minor = release = 0; + MED::GetMEDVersion(theFileName, major, minor, release); _medFileInfo = new SMESH::MedFileInfo(); _medFileInfo->fileName = theFileName; _medFileInfo->fileSize = 0; @@ -449,19 +445,6 @@ SMESH::DriverMED_ReadStatus SMESH_Mesh_i::ImportCGNSFile( const char* theFileNa return ConvertDriverMEDReadStatus(status); } -//================================================================================ -/*! - * \brief Return string representation of a MED file version comprising nbDigits - */ -//================================================================================ - -char* SMESH_Mesh_i::GetVersionString(SMESH::MED_VERSION version, CORBA::Short nbDigits) -{ - string ver = DriverMED_W_SMESHDS_Mesh::GetVersionString(MED::EVersion(version), - nbDigits); - return CORBA::string_dup( ver.c_str() ); -} - //============================================================================= /*! * ImportUNVFile @@ -501,8 +484,7 @@ int SMESH_Mesh_i::ImportSTLFile( const char* theFileName ) std::string name = _impl->STLToMesh( theFileName ); if ( !name.empty() ) { - SALOMEDS::Study_var study = _gen_i->GetCurrentStudy(); - SALOMEDS::SObject_wrap meshSO = _gen_i->ObjectToSObject( study, _this() ); + SALOMEDS::SObject_wrap meshSO = _gen_i->ObjectToSObject( _this() ); _gen_i->SetName( meshSO, name.c_str() ); } @@ -611,8 +593,7 @@ SMESH_Mesh_i::AddHypothesis(GEOM::GEOM_Object_ptr aSubShape, SMESH::SMESH_Mesh_var mesh( _this() ); if ( !SMESH_Hypothesis::IsStatusFatal(status) ) { - SALOMEDS::Study_var study = _gen_i->GetCurrentStudy(); - _gen_i->AddHypothesisToShape( study, mesh, aSubShape, anHyp ); + _gen_i->AddHypothesisToShape( mesh, aSubShape, anHyp ); } if(MYDEBUG) MESSAGE( " AddHypothesis(): status = " << status ); @@ -697,8 +678,7 @@ SMESH::Hypothesis_Status SMESH_Mesh_i::RemoveHypothesis(GEOM::GEOM_Object_ptr aS if ( !SMESH_Hypothesis::IsStatusFatal(status) ) { - SALOMEDS::Study_var study = _gen_i->GetCurrentStudy(); - _gen_i->RemoveHypothesisFromShape( study, mesh, aSubShape, anHyp ); + _gen_i->RemoveHypothesisFromShape( mesh, aSubShape, anHyp ); } // Update Python script if(_impl->HasShapeToMesh()) @@ -868,9 +848,8 @@ SMESH::SMESH_subMesh_ptr SMESH_Mesh_i::GetSubMesh(GEOM::GEOM_Object_ptr aSubShap subMesh = createSubMesh( aSubShape ); if ( _gen_i->CanPublishInStudy( subMesh )) { - SALOMEDS::Study_var study = _gen_i->GetCurrentStudy(); SALOMEDS::SObject_wrap aSO = - _gen_i->PublishSubMesh( study, aMesh, subMesh, aSubShape, theName ); + _gen_i->PublishSubMesh( aMesh, subMesh, aSubShape, theName ); if ( !aSO->_is_nil()) { // Update Python script TPythonDump() << aSO << " = " << aMesh << ".GetSubMesh( " @@ -899,28 +878,25 @@ void SMESH_Mesh_i::RemoveSubMesh( SMESH::SMESH_subMesh_ptr theSubMesh ) return; GEOM::GEOM_Object_var aSubShape; - SALOMEDS::Study_var aStudy = _gen_i->GetCurrentStudy(); - if ( !aStudy->_is_nil() ) { - // Remove submesh's SObject - SALOMEDS::SObject_wrap anSO = _gen_i->ObjectToSObject( aStudy, theSubMesh ); - if ( !anSO->_is_nil() ) { - long aTag = SMESH_Gen_i::GetRefOnShapeTag(); - SALOMEDS::SObject_wrap anObj, aRef; - if ( anSO->FindSubObject( aTag, anObj.inout() ) && - anObj->ReferencedObject( aRef.inout() )) - { - CORBA::Object_var obj = aRef->GetObject(); - aSubShape = GEOM::GEOM_Object::_narrow( obj ); - } - // if ( aSubShape->_is_nil() ) // not published shape (IPAL13617) - // aSubShape = theSubMesh->GetSubShape(); + // Remove submesh's SObject + SALOMEDS::SObject_wrap anSO = _gen_i->ObjectToSObject( theSubMesh ); + if ( !anSO->_is_nil() ) { + long aTag = SMESH_Gen_i::GetRefOnShapeTag(); + SALOMEDS::SObject_wrap anObj, aRef; + if ( anSO->FindSubObject( aTag, anObj.inout() ) && + anObj->ReferencedObject( aRef.inout() )) + { + CORBA::Object_var obj = aRef->GetObject(); + aSubShape = GEOM::GEOM_Object::_narrow( obj ); + } + // if ( aSubShape->_is_nil() ) // not published shape (IPAL13617) + // aSubShape = theSubMesh->GetSubShape(); - SALOMEDS::StudyBuilder_var builder = aStudy->NewBuilder(); - builder->RemoveObjectWithChildren( anSO ); + SALOMEDS::StudyBuilder_var builder = SMESH_Gen_i::getStudyServant()->NewBuilder(); + builder->RemoveObjectWithChildren( anSO ); - // Update Python script - TPythonDump() << SMESH::SMESH_Mesh_var( _this() ) << ".RemoveSubMesh( " << anSO << " )"; - } + // Update Python script + TPythonDump() << SMESH::SMESH_Mesh_var( _this() ) << ".RemoveSubMesh( " << anSO << " )"; } if ( removeSubMesh( theSubMesh, aSubShape.in() )) @@ -950,9 +926,8 @@ SMESH::SMESH_Group_ptr SMESH_Mesh_i::CreateGroup( SMESH::ElementType theElemType if ( _gen_i->CanPublishInStudy( aNewGroup ) ) { SMESH::SMESH_Mesh_var mesh = _this(); - SALOMEDS::Study_var study = _gen_i->GetCurrentStudy(); SALOMEDS::SObject_wrap aSO = - _gen_i->PublishGroup( study, mesh, aNewGroup, GEOM::GEOM_Object::_nil(), theName); + _gen_i->PublishGroup( mesh, aNewGroup, GEOM::GEOM_Object::_nil(), theName); if ( !aSO->_is_nil()) // Update Python script TPythonDump() << aSO << " = " << mesh << ".CreateGroup( " @@ -987,9 +962,8 @@ SMESH_Mesh_i::CreateGroupFromGEOM (SMESH::ElementType theElemType, if ( _gen_i->CanPublishInStudy( aNewGroup ) ) { SMESH::SMESH_Mesh_var mesh = _this(); - SALOMEDS::Study_var study = _gen_i->GetCurrentStudy(); SALOMEDS::SObject_wrap aSO = - _gen_i->PublishGroup( study, mesh, aNewGroup, theGeomObj, theName ); + _gen_i->PublishGroup( mesh, aNewGroup, theGeomObj, theName ); if ( !aSO->_is_nil()) TPythonDump() << aSO << " = " << mesh << ".CreateGroupFromGEOM( " << theElemType << ", '" << theName << "', " << theGeomObj << " )"; @@ -1036,9 +1010,8 @@ SMESH_Mesh_i::CreateGroupFromFilter(SMESH::ElementType theElemType, if ( _gen_i->CanPublishInStudy( aNewGroup ) ) { SMESH::SMESH_Mesh_var mesh = _this(); - SALOMEDS::Study_var study = _gen_i->GetCurrentStudy(); SALOMEDS::SObject_wrap aSO = - _gen_i->PublishGroup( study, mesh, aNewGroup, GEOM::GEOM_Object::_nil(), theName ); + _gen_i->PublishGroup( mesh, aNewGroup, GEOM::GEOM_Object::_nil(), theName ); if ( !aSO->_is_nil()) pd << aSO << " = " << mesh << ".CreateGroupFromFilter( " @@ -1065,19 +1038,15 @@ void SMESH_Mesh_i::RemoveGroup( SMESH::SMESH_GroupBase_ptr theGroup ) if ( !aGroup ) return; - SALOMEDS::Study_var aStudy = _gen_i->GetCurrentStudy(); - if ( !aStudy->_is_nil() ) + SALOMEDS::SObject_wrap aGroupSO = _gen_i->ObjectToSObject( theGroup ); + if ( !aGroupSO->_is_nil() ) { - SALOMEDS::SObject_wrap aGroupSO = _gen_i->ObjectToSObject( aStudy, theGroup ); - if ( !aGroupSO->_is_nil() ) - { - // Update Python script - TPythonDump() << SMESH::SMESH_Mesh_var(_this()) << ".RemoveGroup( " << aGroupSO << " )"; + // Update Python script + TPythonDump() << SMESH::SMESH_Mesh_var(_this()) << ".RemoveGroup( " << aGroupSO << " )"; - // Remove group's SObject - SALOMEDS::StudyBuilder_var builder = aStudy->NewBuilder(); - builder->RemoveObjectWithChildren( aGroupSO ); - } + // Remove group's SObject + SALOMEDS::StudyBuilder_var builder = SMESH_Gen_i::getStudyServant()->NewBuilder(); + builder->RemoveObjectWithChildren( aGroupSO ); } aGroup->Modified(/*removed=*/true); // notify dependent Filter with FT_BelongToMeshGroup criterion @@ -1849,14 +1818,13 @@ void SMESH_Mesh_i::addGeomGroupData(GEOM::GEOM_Object_ptr theGeomObj, if ( CORBA::is_nil( theGeomObj ) || theGeomObj->GetType() != GEOM_GROUP ) return; // group SO - SALOMEDS::Study_var study = _gen_i->GetCurrentStudy(); - SALOMEDS::SObject_wrap groupSO = _gen_i->ObjectToSObject( study, theGeomObj ); + SALOMEDS::SObject_wrap groupSO = _gen_i->ObjectToSObject( theGeomObj ); if ( groupSO->_is_nil() ) return; // group indices GEOM::GEOM_Gen_var geomGen = _gen_i->GetGeomEngine(); GEOM::GEOM_IGroupOperations_wrap groupOp = - geomGen->GetIGroupOperations( _gen_i->GetCurrentStudyID() ); + geomGen->GetIGroupOperations(); GEOM::ListOfLong_var ids = groupOp->GetObjects( theGeomObj ); // store data @@ -1904,9 +1872,7 @@ TopoDS_Shape SMESH_Mesh_i::newGroupShape( TGeomGroupData & groupData) TopoDS_Shape newShape; // get geom group - SALOMEDS::Study_var study = _gen_i->GetCurrentStudy(); - if ( study->_is_nil() ) return newShape; // means "not changed" - SALOMEDS::SObject_wrap groupSO = study->FindObjectID( groupData._groupEntry.c_str() ); + SALOMEDS::SObject_wrap groupSO = SMESH_Gen_i::getStudyServant()->FindObjectID( groupData._groupEntry.c_str() ); if ( !groupSO->_is_nil() ) { CORBA::Object_var groupObj = _gen_i->SObjectToObject( groupSO ); @@ -1917,7 +1883,7 @@ TopoDS_Shape SMESH_Mesh_i::newGroupShape( TGeomGroupData & groupData) set curIndices; GEOM::GEOM_Gen_var geomGen = _gen_i->GetGeomEngine(); GEOM::GEOM_IGroupOperations_wrap groupOp = - geomGen->GetIGroupOperations( _gen_i->GetCurrentStudyID() ); + geomGen->GetIGroupOperations(); GEOM::ListOfLong_var ids = groupOp->GetObjects( geomGroup ); for ( CORBA::ULong i = 0; i < ids->length(); ++i ) curIndices.insert( ids[i] ); @@ -1982,9 +1948,6 @@ void SMESH_Mesh_i::CheckGeomModif() { if ( !_impl->HasShapeToMesh() ) return; - SALOMEDS::Study_var study = _gen_i->GetCurrentStudy(); - if ( study->_is_nil() ) return; - GEOM::GEOM_Object_var mainGO = _gen_i->ShapeToGeomObject( _impl->GetShapeToMesh() ); //if ( mainGO->_is_nil() ) return; @@ -2131,9 +2094,6 @@ void SMESH_Mesh_i::CheckGeomGroupModif() { if ( !_impl->HasShapeToMesh() ) return; - SALOMEDS::Study_var study = _gen_i->GetCurrentStudy(); - if ( study->_is_nil() ) return; - CORBA::Long nbEntities = NbNodes() + NbElements(); // Check if group contents changed @@ -2320,7 +2280,7 @@ void SMESH_Mesh_i::CheckGeomGroupModif() if ( _mapGroups.find( oldID ) == _mapGroups.end() ) continue; // get group name - SALOMEDS::SObject_wrap groupSO = _gen_i->ObjectToSObject( study,_mapGroups[oldID] ); + SALOMEDS::SObject_wrap groupSO = _gen_i->ObjectToSObject( _mapGroups[oldID] ); CORBA::String_var name = groupSO->GetName(); // update SMESH_GroupBase_i* group_i = SMESH::DownCast(_mapGroups[oldID] ); @@ -2341,15 +2301,15 @@ void SMESH_Mesh_i::CheckGeomGroupModif() if ( newNbEntities != nbEntities ) { // Add all SObjects with icons to soToUpdateIcons - soToUpdateIcons.push_back( _gen_i->ObjectToSObject( study, _this() )); // mesh + soToUpdateIcons.push_back( _gen_i->ObjectToSObject( _this() )); // mesh for (map::iterator i_sm = _mapSubMeshIor.begin(); i_sm != _mapSubMeshIor.end(); ++i_sm ) // submeshes - soToUpdateIcons.push_back( _gen_i->ObjectToSObject( study, i_sm->second )); + soToUpdateIcons.push_back( _gen_i->ObjectToSObject( i_sm->second )); for ( map::iterator i_gr = _mapGroups.begin(); i_gr != _mapGroups.end(); ++i_gr ) // groups - soToUpdateIcons.push_back( _gen_i->ObjectToSObject( study, i_gr->second )); + soToUpdateIcons.push_back( _gen_i->ObjectToSObject( i_gr->second )); } list< SALOMEDS::SObject_wrap >::iterator so = soToUpdateIcons.begin(); @@ -2395,10 +2355,10 @@ SMESH::SMESH_Group_ptr SMESH_Mesh_i::ConvertToStandalone( SMESH::SMESH_GroupBase SALOMEDS::StudyBuilder_var builder; SALOMEDS::SObject_wrap aGroupSO; - SALOMEDS::Study_var aStudy = _gen_i->GetCurrentStudy(); + SALOMEDS::Study_var aStudy = SMESH_Gen_i::getStudyServant(); if ( !aStudy->_is_nil() ) { builder = aStudy->NewBuilder(); - aGroupSO = _gen_i->ObjectToSObject( aStudy, theGroup ); + aGroupSO = _gen_i->ObjectToSObject( theGroup ); if ( !aGroupSO->_is_nil() ) { // remove reference to geometry @@ -2719,17 +2679,6 @@ CORBA::Long SMESH_Mesh_i::GetId()throw(SALOME::SALOME_Exception) return _id; } -//============================================================================= -/*! - * - */ -//============================================================================= - -CORBA::Long SMESH_Mesh_i::GetStudyId()throw(SALOME::SALOME_Exception) -{ - return _studyId; -} - //============================================================================= namespace { @@ -2989,9 +2938,9 @@ string SMESH_Mesh_i::prepareMeshNameAndGroups(const char* file, // Perform Export PrepareForWriting(file, overwrite); string aMeshName = "Mesh"; - SALOMEDS::Study_var aStudy = _gen_i->GetCurrentStudy(); + SALOMEDS::Study_var aStudy = SMESH_Gen_i::getStudyServant(); if ( !aStudy->_is_nil() ) { - SALOMEDS::SObject_wrap aMeshSO = _gen_i->ObjectToSObject( aStudy, _this() ); + SALOMEDS::SObject_wrap aMeshSO = _gen_i->ObjectToSObject( _this() ); if ( !aMeshSO->_is_nil() ) { CORBA::String_var name = aMeshSO->GetName(); aMeshName = name; @@ -3024,15 +2973,14 @@ string SMESH_Mesh_i::prepareMeshNameAndGroups(const char* file, //================================================================================ /*! - * \brief Export to med file + * \brief Export to MED file */ //================================================================================ -void SMESH_Mesh_i::ExportToMEDX (const char* file, - CORBA::Boolean auto_groups, - SMESH::MED_VERSION theVersion, - CORBA::Boolean overwrite, - CORBA::Boolean autoDimension) +void SMESH_Mesh_i::ExportMED(const char* file, + CORBA::Boolean auto_groups, + CORBA::Boolean overwrite, + CORBA::Boolean autoDimension) throw(SALOME::SALOME_Exception) { //MESSAGE("SMESH::MED_VERSION:"<< theVersion); @@ -3041,45 +2989,16 @@ void SMESH_Mesh_i::ExportToMEDX (const char* file, _preMeshInfo->FullLoadFromFile(); string aMeshName = prepareMeshNameAndGroups(file, overwrite); - _impl->ExportMED( file, aMeshName.c_str(), auto_groups, theVersion, 0, autoDimension ); + _impl->ExportMED( file, aMeshName.c_str(), auto_groups, 0, autoDimension ); - TPythonDump() << SMESH::SMESH_Mesh_var(_this()) << ".ExportToMEDX( r'" + TPythonDump() << SMESH::SMESH_Mesh_var(_this()) << ".ExportMED( r'" << file << "', " << auto_groups << ", " - << theVersion << ", " << overwrite << ", " + << overwrite << ", " << autoDimension << " )"; SMESH_CATCH( SMESH::throwCorbaException ); } -//================================================================================ -/*! - * \brief Export a mesh to a med file - */ -//================================================================================ - -void SMESH_Mesh_i::ExportToMED (const char* file, - CORBA::Boolean auto_groups, - SMESH::MED_VERSION theVersion) - throw(SALOME::SALOME_Exception) -{ - //MESSAGE("SMESH::MED_VERSION:"<< theVersion); - ExportToMEDX(file,auto_groups,theVersion,true); -} - -//================================================================================ -/*! - * \brief Export a mesh to a med file - */ -//================================================================================ - -void SMESH_Mesh_i::ExportMED (const char* file, - CORBA::Boolean auto_groups) - throw(SALOME::SALOME_Exception) -{ - //MESSAGE("SMESH::MED_VERSION:"<< SMESH::MED_LATEST); - ExportToMEDX(file,auto_groups,SMESH::MED_LATEST,true); -} - //================================================================================ /*! * \brief Export a mesh to a SAUV file @@ -3167,8 +3086,7 @@ void SMESH_Mesh_i::ExportSTL (const char *file, const bool isascii) << ".ExportSTL( r'" << file << "', " << isascii << " )"; CORBA::String_var name; - SALOMEDS::Study_var study = _gen_i->GetCurrentStudy(); - SALOMEDS::SObject_wrap so = _gen_i->ObjectToSObject( study, _this() ); + SALOMEDS::SObject_wrap so = _gen_i->ObjectToSObject( _this() ); if ( !so->_is_nil() ) name = so->GetName(); @@ -3186,7 +3104,6 @@ void SMESH_Mesh_i::ExportSTL (const char *file, const bool isascii) void SMESH_Mesh_i::ExportPartToMED(SMESH::SMESH_IDSource_ptr meshPart, const char* file, CORBA::Boolean auto_groups, - SMESH::MED_VERSION version, CORBA::Boolean overwrite, CORBA::Boolean autoDimension, const GEOM::ListOfFields& fields, @@ -3240,7 +3157,7 @@ void SMESH_Mesh_i::ExportPartToMED(SMESH::SMESH_IDSource_ptr meshPart, { aMeshName = prepareMeshNameAndGroups(file, overwrite); _impl->ExportMED( file, aMeshName.c_str(), auto_groups, - version, 0, autoDimension, /*addODOnVertices=*/have0dField); + 0, autoDimension, /*addODOnVertices=*/have0dField); meshDS = _impl->GetMeshDS(); } else @@ -3250,17 +3167,15 @@ void SMESH_Mesh_i::ExportPartToMED(SMESH::SMESH_IDSource_ptr meshPart, PrepareForWriting(file, overwrite); - SALOMEDS::Study_var aStudy = _gen_i->GetCurrentStudy(); - if ( !aStudy->_is_nil() ) { - SALOMEDS::SObject_wrap SO = _gen_i->ObjectToSObject( aStudy, meshPart ); - if ( !SO->_is_nil() ) { - CORBA::String_var name = SO->GetName(); - aMeshName = name; - } + SALOMEDS::SObject_wrap SO = _gen_i->ObjectToSObject( meshPart ); + if ( !SO->_is_nil() ) { + CORBA::String_var name = SO->GetName(); + aMeshName = name; } + SMESH_MeshPartDS* partDS = new SMESH_MeshPartDS( meshPart ); _impl->ExportMED( file, aMeshName.c_str(), auto_groups, - version, partDS, autoDimension, /*addODOnVertices=*/have0dField); + partDS, autoDimension, /*addODOnVertices=*/have0dField); meshDS = tmpDSDeleter._obj = partDS; } @@ -3286,7 +3201,7 @@ void SMESH_Mesh_i::ExportPartToMED(SMESH::SMESH_IDSource_ptr meshPart, } TPythonDump() << _this() << ".ExportPartToMED( " << meshPart << ", r'" << file << "', " - << auto_groups << ", " << version << ", " << overwrite << ", " + << auto_groups << ", " << overwrite << ", " << autoDimension << ", " << goList << ", '" << ( geomAssocFields ? geomAssocFields : "" ) << "'" << " )"; @@ -3624,8 +3539,7 @@ void SMESH_Mesh_i::ExportPartToSTL(::SMESH::SMESH_IDSource_ptr meshPart, PrepareForWriting(file); CORBA::String_var name; - SALOMEDS::Study_var study = _gen_i->GetCurrentStudy(); - SALOMEDS::SObject_wrap so = _gen_i->ObjectToSObject( study, meshPart ); + SALOMEDS::SObject_wrap so = _gen_i->ObjectToSObject( meshPart ); if ( !so->_is_nil() ) name = so->GetName(); @@ -3656,8 +3570,7 @@ void SMESH_Mesh_i::ExportCGNS(::SMESH::SMESH_IDSource_ptr meshPart, PrepareForWriting(file,overwrite); std::string meshName(""); - SALOMEDS::Study_var study = _gen_i->GetCurrentStudy(); - SALOMEDS::SObject_wrap so = _gen_i->ObjectToSObject( study, meshPart ); + SALOMEDS::SObject_wrap so = _gen_i->ObjectToSObject( meshPart ); if ( !so->_is_nil() ) { CORBA::String_var name = so->GetName(); @@ -5000,10 +4913,9 @@ SMESH_Mesh_i::MakeGroupsOfBadInputElements( int theSubShapeID, groups[ ++iG ] = createGroup( SMESH::ElementType(i), theGroupName ); if ( _gen_i->CanPublishInStudy( groups[ iG ] )) { - SALOMEDS::Study_var study = _gen_i->GetCurrentStudy(); SMESH::SMESH_Mesh_var mesh = _this(); SALOMEDS::SObject_wrap aSO = - _gen_i->PublishGroup( study, mesh, groups[ iG ], + _gen_i->PublishGroup( mesh, groups[ iG ], GEOM::GEOM_Object::_nil(), theGroupName); } SMESH_GroupBase_i* grp_i = SMESH::DownCast< SMESH_GroupBase_i* >( groups[ iG ]); @@ -5027,7 +4939,6 @@ SMESH_Mesh_i::MakeGroupsOfBadInputElements( int theSubShapeID, void SMESH_Mesh_i::CreateGroupServants() { - SALOMEDS::Study_var aStudy = _gen_i->GetCurrentStudy(); SMESH::SMESH_Mesh_var aMesh = _this(); set addedIDs; @@ -5064,10 +4975,8 @@ void SMESH_Mesh_i::CreateGroupServants() else { nextId = 0; } // avoid "unused variable" warning in release mode // publishing the groups in the study - if ( !aStudy->_is_nil() ) { - GEOM::GEOM_Object_var shapeVar = _gen_i->ShapeToGeomObject( shape ); - _gen_i->PublishGroup( aStudy, aMesh, groupVar, shapeVar, group->GetName()); - } + GEOM::GEOM_Object_var shapeVar = _gen_i->ShapeToGeomObject( shape ); + _gen_i->PublishGroup( aMesh, groupVar, shapeVar, group->GetName()); } if ( !addedIDs.empty() ) { @@ -5133,10 +5042,6 @@ void SMESH_Mesh_i::checkGroupNames() int nbGrp = NbGroups(); if ( !nbGrp ) return; - - SALOMEDS::Study_var aStudy = _gen_i->GetCurrentStudy(); - if ( aStudy->_is_nil() ) - return; // nothing to do SMESH::ListOfGroups* grpList = 0; // avoid dump of "GetGroups" @@ -5150,7 +5055,7 @@ void SMESH_Mesh_i::checkGroupNames() SMESH::SMESH_GroupBase_ptr aGrp = (*grpList)[ gIndx ]; if ( !aGrp ) continue; - SALOMEDS::SObject_wrap aGrpSO = _gen_i->ObjectToSObject( aStudy, aGrp ); + SALOMEDS::SObject_wrap aGrpSO = _gen_i->ObjectToSObject( aGrp ); if ( aGrpSO->_is_nil() ) continue; // correct name of the mesh group if necessary @@ -5193,15 +5098,12 @@ SMESH::string_array* SMESH_Mesh_i::GetLastParameters() SMESH_Gen_i *gen = SMESH_Gen_i::GetSMESHGen(); if(gen) { CORBA::String_var aParameters = GetParameters(); - SALOMEDS::Study_var aStudy = gen->GetCurrentStudy(); - if ( !aStudy->_is_nil()) { - SALOMEDS::ListOfListOfStrings_var aSections = aStudy->ParseVariables(aParameters); - if ( aSections->length() > 0 ) { - SALOMEDS::ListOfStrings aVars = aSections[ aSections->length() - 1 ]; - aResult->length( aVars.length() ); - for ( CORBA::ULong i = 0;i < aVars.length(); i++ ) - aResult[i] = CORBA::string_dup( aVars[i] ); - } + SALOMEDS::ListOfListOfStrings_var aSections = SMESH_Gen_i::getStudyServant()->ParseVariables(aParameters); + if ( aSections->length() > 0 ) { + SALOMEDS::ListOfStrings aVars = aSections[ aSections->length() - 1 ]; + aResult->length( aVars.length() ); + for ( CORBA::ULong i = 0;i < aVars.length(); i++ ) + aResult[i] = CORBA::string_dup( aVars[i] ); } } return aResult._retn();