From b562542616fcc2cfe25102d5b8b32c4964ff8bbc Mon Sep 17 00:00:00 2001 From: eap Date: Tue, 17 Dec 2013 08:20:58 +0000 Subject: [PATCH] 0022362: EDF SMESH: Quadrangle (mapping) algorithm: enforced vertices static TopoDS_Shape LoadFromStream( std::istream & stream, + std::string* entry=NULL ); --- src/StdMeshers_I/StdMeshers_ObjRefUlils.cxx | 19 ++++++++++++------- src/StdMeshers_I/StdMeshers_ObjRefUlils.hxx | 4 ++-- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/StdMeshers_I/StdMeshers_ObjRefUlils.cxx b/src/StdMeshers_I/StdMeshers_ObjRefUlils.cxx index 88a0163ec..6b92e8b2d 100644 --- a/src/StdMeshers_I/StdMeshers_ObjRefUlils.cxx +++ b/src/StdMeshers_I/StdMeshers_ObjRefUlils.cxx @@ -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(); } diff --git a/src/StdMeshers_I/StdMeshers_ObjRefUlils.hxx b/src/StdMeshers_I/StdMeshers_ObjRefUlils.hxx index c7d6ed865..32ae9b3e3 100644 --- a/src/StdMeshers_I/StdMeshers_ObjRefUlils.hxx +++ b/src/StdMeshers_I/StdMeshers_ObjRefUlils.hxx @@ -68,7 +68,7 @@ public: /*! * \brief Return study entry of GEOM Object */ - static std::string GeomObjectToEntry(GEOM::GEOM_Object_ptr& theGeomObject); + static std::string GeomObjectToEntry(GEOM::GEOM_Object_ptr theGeomObject); /*! * \brief Return GEOM Object by its study entry or TopoDS_Shape @@ -89,7 +89,7 @@ public: * \param stream - the stream * \retval TopoDS_Shape - resulting shape */ - static TopoDS_Shape LoadFromStream( std::istream & stream ); + static TopoDS_Shape LoadFromStream( std::istream & stream, std::string* entry=NULL ); /*! * \brief Store the CORBA object in the stream -- 2.39.2