Version: 9.12.0
StdMeshers_ObjRefUlils.hxx
Go to the documentation of this file.
1 // Copyright (C) 2007-2023 CEA, EDF, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 
23 // SMESH SMESH : implementation of SMESH idl descriptions
24 // File : StdMeshers_ObjRefUlils.hxx
25 // Created : Wed Oct 18 15:15:27 2006
26 // Author : Edward AGAPOV (eap)
27 //
28 #ifndef StdMeshers_ObjRefUlils_HeaderFile
29 #define StdMeshers_ObjRefUlils_HeaderFile
30 
31 #include "SMESH_Gen_i.hxx"
32 #include "SMESH_StdMeshers_I.hxx"
33 
43 {
44 public:
50  static GEOM::GEOM_Object_ptr ShapeToGeomObject (const TopoDS_Shape& theShape ) {
52  return gen->ShapeToGeomObject( theShape );
53  else
54  return GEOM::GEOM_Object::_nil();
55  }
56 
62  static TopoDS_Shape GeomObjectToShape(GEOM::GEOM_Object_ptr theGeomObject) {
64  return gen->GeomObjectToShape( theGeomObject );
65  else
66  return TopoDS_Shape();
67  }
68 
74  STDMESHERS_I_EXPORT static TopoDS_Shape EntryToShape(const std::string theEntry);
75 
79  static std::string GeomObjectToEntry(GEOM::GEOM_Object_ptr theGeomObject);
80 
84  static GEOM::GEOM_Object_ptr EntryOrShapeToGeomObject (const std::string& theEntry,
85  const TopoDS_Shape& theShape);
86 
87 
93  static void SaveToStream( const TopoDS_Shape& theShape, std::ostream & stream);
94 
100  static TopoDS_Shape LoadFromStream( std::istream & stream, std::string* entry=NULL );
101 
107  static void SaveToStream( CORBA::Object_ptr obj, std::ostream & stream );
108 
114  template<class TInterface>
115  static
116  typename TInterface::_var_type LoadObjectFromStream( std::istream & stream )
117  {
118  if (SMESH_Gen_i* gen = SMESH_Gen_i::GetSMESHGen()) {
119  std::string str;
120  if (stream >> str) {
121  if ( StudyContext* myStudyContext = gen->GetStudyContext() ) {
122  std::string ior = myStudyContext->getIORbyOldId( atoi( str.c_str() ));
123  if ( !ior.empty() )
124  return TInterface::_narrow(gen->GetORB()->string_to_object( ior.c_str() ));
125  }
126  }
127  }
128  return TInterface::_nil();
129  }
130 
136  static void SaveToStream( const std::string& studyEntry, std::ostream & stream);
137 
138 };
139 
140 #endif
#define STDMESHERS_I_EXPORT
Definition: SMESH_StdMeshers_I.hxx:38
Definition: SMESH_Gen_i.hxx:99
static SMESH_Gen_i * GetSMESHGen()
Definition: SMESH_Gen_i.hxx:102
Class encapsulates methods.
Definition: StdMeshers_ObjRefUlils.hxx:43
static std::string GeomObjectToEntry(GEOM::GEOM_Object_ptr theGeomObject)
Return study entry of GEOM Object.
Definition: StdMeshers_ObjRefUlils.cxx:40
static GEOM::GEOM_Object_ptr ShapeToGeomObject(const TopoDS_Shape &theShape)
Return GEOM Object corresponding to TopoDS_Shape.
Definition: StdMeshers_ObjRefUlils.hxx:50
static void SaveToStream(const TopoDS_Shape &theShape, std::ostream &stream)
Store the shape in the stream.
Definition: StdMeshers_ObjRefUlils.cxx:83
static TopoDS_Shape EntryToShape(const std::string theEntry)
Return TopoDS_Shape by a study entry.
Definition: StdMeshers_ObjRefUlils.cxx:171
static GEOM::GEOM_Object_ptr EntryOrShapeToGeomObject(const std::string &theEntry, const TopoDS_Shape &theShape)
Return GEOM Object by its study entry or TopoDS_Shape.
Definition: StdMeshers_ObjRefUlils.cxx:55
static TopoDS_Shape LoadFromStream(std::istream &stream, std::string *entry=NULL)
Retrieve a shape from the stream.
Definition: StdMeshers_ObjRefUlils.cxx:111
static TInterface::_var_type LoadObjectFromStream(std::istream &stream)
Retrieve a CORBA object from the stream.
Definition: StdMeshers_ObjRefUlils.hxx:116
static TopoDS_Shape GeomObjectToShape(GEOM::GEOM_Object_ptr theGeomObject)
Return TopoDS_Shape corresponding to GEOM_Object.
Definition: StdMeshers_ObjRefUlils.hxx:62
Definition: SMESH_Gen_i.hxx:66