Salome HOME
Copyright update 2020
[modules/smesh.git] / src / StdMeshers_I / StdMeshers_ObjRefUlils.cxx
index c7e3988b845e69486f2f04bd30f532d488c27a38..363e3132111ccc917d994780bed10ea36973f729 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020  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
@@ -162,3 +162,21 @@ void StdMeshers_ObjRefUlils::SaveToStream( const std::string& studyEntry,
   else
     stream << " " << studyEntry;
 }
+
+//=======================================================================
+//function : EntryToShape
+//purpose  : Return TopoDS_Shape by a study entry
+//=======================================================================
+
+TopoDS_Shape StdMeshers_ObjRefUlils::EntryToShape(const std::string theEntry)
+{
+  TopoDS_Shape shape;
+
+  if (SMESH_Gen_i* gen = SMESH_Gen_i::GetSMESHGen()) {
+    SALOMEDS::SObject_wrap sobj = SMESH_Gen_i::getStudyServant()->FindObjectID( theEntry.c_str() );
+    CORBA::Object_var       obj = gen->SObjectToObject( sobj );
+    GEOM::GEOM_Object_var  geom = GEOM::GEOM_Object::_narrow( obj );
+    shape = gen->GeomObjectToShape( geom.in() );
+  }
+  return shape;
+}