X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FStdMeshers_I%2FStdMeshers_ObjRefUlils.cxx;h=89cca0caad9342c425e057005b8cbc4c90e81383;hp=390bd34c57765a21a4b39b7d67313b37ed0a8bac;hb=d1bb1f5d44a2566316419a238a615bc4a69e7028;hpb=9a54694a0ab1e5cbc558a35c4606ceea4f7af2ef diff --git a/src/StdMeshers_I/StdMeshers_ObjRefUlils.cxx b/src/StdMeshers_I/StdMeshers_ObjRefUlils.cxx index 390bd34c5..89cca0caa 100644 --- a/src/StdMeshers_I/StdMeshers_ObjRefUlils.cxx +++ b/src/StdMeshers_I/StdMeshers_ObjRefUlils.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -37,7 +37,7 @@ using namespace std; //purpose : Return study entry of GEOM Object //======================================================================= -std::string StdMeshers_ObjRefUlils::GeomObjectToEntry(GEOM::GEOM_Object_ptr& theGeomObject) +std::string StdMeshers_ObjRefUlils::GeomObjectToEntry(GEOM::GEOM_Object_ptr theGeomObject) { if ( CORBA::is_nil( theGeomObject )) return "NULL_OBJECT"; @@ -109,13 +109,16 @@ void StdMeshers_ObjRefUlils::SaveToStream( const TopoDS_Shape& theShape, ostream */ //================================================================================ -TopoDS_Shape StdMeshers_ObjRefUlils::LoadFromStream( istream & stream) +TopoDS_Shape StdMeshers_ObjRefUlils::LoadFromStream( istream & stream, + std::string* entry) { - if (SMESH_Gen_i* gen = SMESH_Gen_i::GetSMESHGen()) { - SALOMEDS::Study_var study = gen->GetCurrentStudy(); - if ( ! study->_is_nil() ) { - string str; - if (stream >> str) { + string str; + if (stream >> str) { + if ( entry ) + * entry = str; + if (SMESH_Gen_i* gen = SMESH_Gen_i::GetSMESHGen()) { + SALOMEDS::Study_var study = gen->GetCurrentStudy(); + if ( ! study->_is_nil() ) { SALOMEDS::SObject_wrap sobj = study->FindObjectID( str.c_str() ); CORBA::Object_var obj = gen->SObjectToObject( sobj ); GEOM::GEOM_Object_var geom = GEOM::GEOM_Object::_narrow( obj ); @@ -123,6 +126,8 @@ TopoDS_Shape StdMeshers_ObjRefUlils::LoadFromStream( istream & stream) } } } + if ( entry ) + entry->clear(); return TopoDS_Shape(); }