Version: 9.16.0
StdMeshers_ObjRefUlils.hxx
Go to the documentation of this file.
1// Copyright (C) 2007-2026 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"
33
43{
44public:
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 {
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