1 // SMESH SMESHGUI : GUI for SMESH component
3 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
20 // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
24 // File : SMESH_Swig.cxx
25 // Author : Nicolas REJNERI
30 #include "SMESHGUI_Swig.hxx"
32 #include "Utils_ORB_INIT.hxx"
33 #include "Utils_SINGLETON.hxx"
36 #include <SMESHGUI_GEOMGenUtils.h>
39 #include "SUIT_ResourceMgr.h"
40 #include "SUIT_Session.h"
42 #include "SalomeApp_Application.h"
44 #include "utilities.h"
46 // Open CASCADE Includes
50 #include <SALOMEconfig.h>
51 #include CORBA_SERVER_HEADER(SMESH_Gen)
52 #include CORBA_SERVER_HEADER(SMESH_Mesh)
53 #include CORBA_SERVER_HEADER(SMESH_Hypothesis)
55 static CORBA::ORB_var _orb;
57 static char* ObjectToString (CORBA::Object_ptr obj)
59 return _orb->object_to_string(obj);
62 static CORBA::Object_ptr StringToObject (const char* ior)
64 return _orb->string_to_object(ior);
67 SMESH_Swig::SMESH_Swig()
69 MESSAGE("Constructeur");
73 void SMESH_Swig::Init(int studyID)
76 SMESH::SMESH_Gen_var CompMesh = SMESHGUI::GetSMESHGen();
77 GEOM::GEOM_Gen_var CompGeom = SMESH::GetGEOMGen();
79 SUIT_ResourceMgr* resMgr = SMESHGUI::resourceMgr();
81 resMgr->loadLanguage( QString::null, "en" );
83 if (!resMgr->loadResources( "SMESH", msg ))
87 SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>( SUIT_Session::session()->activeApplication() );
91 CORBA::Object_var obj = app->namingService()->Resolve("/myStudyManager");
92 SALOMEDS::StudyManager_var myStudyMgr = SALOMEDS::StudyManager::_narrow(obj);
93 myStudy = myStudyMgr->GetStudyByID(studyID);
95 CompMesh->SetCurrentStudy( myStudy.in() );
97 myStudyBuilder = myStudy->NewBuilder();
98 SALOMEDS::GenericAttribute_var anAttr;
99 SALOMEDS::AttributeName_var aName;
100 SALOMEDS::AttributePixMap_var aPixmap;
102 // See return value of SMESH::SMESH_Gen::ComponentDataType()
103 SALOMEDS::SComponent_var father = myStudy->FindComponent("SMESH");
105 if (father->_is_nil()) {
106 bool aLocked = myStudy->GetProperties()->IsLocked();
107 if (aLocked) myStudy->GetProperties()->SetLocked(false);
108 father = myStudyBuilder->NewComponent("SMESH");
109 anAttr = myStudyBuilder->FindOrCreateAttribute(father, "AttributeName");
110 aName = SALOMEDS::AttributeName::_narrow(anAttr);
111 //NRI aName->SetValue(QObject::tr("SMESH_MEN_COMPONENT"));
112 SMESHGUI* gui = SMESHGUI::GetSMESHGUI(); //SRN: BugID IPAL9186, load a SMESH gui if it hasn't been loaded
114 SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>(SUIT_Session::session()->activeApplication());
116 CAM_Module* module = app->module( "Mesh" );
117 if(!module) module = app->loadModule("Mesh");
118 gui = dynamic_cast<SMESHGUI*>( module );
121 MESSAGE("Can't find the application");
123 } //SRN: BugID IPAL9186: end of a fix
124 aName->SetValue( gui->moduleName() );
125 anAttr = myStudyBuilder->FindOrCreateAttribute(father, "AttributePixMap");
126 aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
127 aPixmap->SetPixMap( "ICON_OBJBROWSER_SMESH" );
128 myStudyBuilder->DefineComponentInstance(father, CompMesh );
129 if (aLocked) myStudy->GetProperties()->SetLocked(true);
131 mySComponentMesh = SALOMEDS::SComponent::_narrow( father );
134 Tag_HypothesisRoot = 1;
135 Tag_AlgorithmsRoot = 2;
138 Tag_RefOnAppliedHypothesis = 2;
139 Tag_RefOnAppliedAlgorithms = 3;
141 Tag_SubMeshOnVertex = 4;
142 Tag_SubMeshOnEdge = 5;
143 Tag_SubMeshOnFace = 6;
144 Tag_SubMeshOnSolid = 7;
145 Tag_SubMeshOnCompound = 8;
148 SMESH_Swig::~SMESH_Swig()
150 MESSAGE("Destructeur");
154 const char* SMESH_Swig::AddNewMesh(const char* IOR)
156 MESSAGE("AddNewMesh");
158 // VSR: added temporarily - to be removed - objects are published automatically by engine
159 SALOMEDS::SObject_var SO = myStudy->FindObjectIOR( IOR );
160 if ( !SO->_is_nil() )
163 //Find or Create Hypothesis root
164 SALOMEDS::GenericAttribute_var anAttr;
165 SALOMEDS::AttributeName_var aName;
166 SALOMEDS::AttributeIOR_var anIOR;
167 SALOMEDS::AttributeSelectable_var aSelAttr;
168 SALOMEDS::AttributePixMap_var aPixmap;
170 SALOMEDS::SObject_var HypothesisRoot;
171 if (!mySComponentMesh->FindSubObject (Tag_HypothesisRoot, HypothesisRoot)) {
172 HypothesisRoot = myStudyBuilder->NewObjectToTag (mySComponentMesh, Tag_HypothesisRoot);
173 anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributeName");
174 aName = SALOMEDS::AttributeName::_narrow(anAttr);
175 aName->SetValue(QObject::tr("SMESH_MEN_HYPOTHESIS"));
176 anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributePixMap");
177 aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
178 aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO" );
179 anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributeSelectable");
180 aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
181 aSelAttr->SetSelectable(false);
184 SALOMEDS::SObject_var AlgorithmsRoot;
185 if (!mySComponentMesh->FindSubObject (Tag_AlgorithmsRoot, AlgorithmsRoot)) {
186 AlgorithmsRoot = myStudyBuilder->NewObjectToTag (mySComponentMesh, Tag_AlgorithmsRoot);
187 anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributeName");
188 aName = SALOMEDS::AttributeName::_narrow(anAttr);
189 aName->SetValue(QObject::tr("SMESH_MEN_ALGORITHMS"));
190 anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributePixMap");
191 aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
192 aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO" );
193 anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributeSelectable");
194 aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
195 aSelAttr->SetSelectable(false);
199 SALOMEDS::SObject_var newMesh = myStudyBuilder->NewObject(mySComponentMesh);
200 anAttr = myStudyBuilder->FindOrCreateAttribute(newMesh, "AttributePixMap");
201 aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
202 aPixmap->SetPixMap( "ICON_SMESH_TREE_MESH" );
203 anAttr = myStudyBuilder->FindOrCreateAttribute(newMesh, "AttributeIOR");
204 anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
205 anIOR->SetValue(IOR);
206 return SALOMEDS::SObject::_narrow( newMesh )->GetID();
209 const char* SMESH_Swig::AddNewHypothesis(const char* IOR)
211 MESSAGE("AddNewHypothesis");
213 // VSR: added temporarily - to be removed - objects are published automatically by engine
214 SALOMEDS::SObject_var SO = myStudy->FindObjectIOR( IOR );
215 if ( !SO->_is_nil() )
218 //Find or Create Hypothesis root
219 SALOMEDS::SObject_var HypothesisRoot;
220 SALOMEDS::GenericAttribute_var anAttr;
221 SALOMEDS::AttributeName_var aName;
222 SALOMEDS::AttributeIOR_var anIOR;
223 SALOMEDS::AttributeSelectable_var aSelAttr;
224 SALOMEDS::AttributePixMap_var aPixmap;
226 if (!mySComponentMesh->FindSubObject (Tag_HypothesisRoot, HypothesisRoot)) {
227 HypothesisRoot = myStudyBuilder->NewObjectToTag (mySComponentMesh, Tag_HypothesisRoot);
228 anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributeName");
229 aName = SALOMEDS::AttributeName::_narrow(anAttr);
230 aName->SetValue(QObject::tr("SMESH_MEN_HYPOTHESIS"));
231 anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributeSelectable");
232 aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
233 aSelAttr->SetSelectable(false);
234 anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributePixMap");
235 aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
236 aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO" );
238 // Add New Hypothesis
239 SALOMEDS::SObject_var newHypo = myStudyBuilder->NewObject(HypothesisRoot);
240 anAttr = myStudyBuilder->FindOrCreateAttribute(newHypo, "AttributePixMap");
241 aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
242 SMESH::SMESH_Hypothesis_var H = SMESH::SMESH_Hypothesis::_narrow( StringToObject(IOR) );
243 QString aType = H->GetName();
244 aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_" + aType );
245 // if ( aType.compare("LocalLength") == 0 )
246 // aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_LENGTH" );
247 // else if ( aType.compare("NumberOfSegments") == 0 )
248 // aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_SEGMENT" );
249 // else if ( aType.compare("MaxElementArea") == 0 )
250 // aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_AREA" );
251 // else if ( aType.compare("MaxElementVolume") == 0 )
252 // aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_VOLUME" );
253 anAttr = myStudyBuilder->FindOrCreateAttribute(newHypo, "AttributeIOR");
254 anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
255 anIOR->SetValue(IOR);
256 return SALOMEDS::SObject::_narrow(newHypo)->GetID();
259 const char* SMESH_Swig::AddNewAlgorithms(const char* IOR)
261 MESSAGE("AddNewAlgorithms");
263 // VSR: added temporarily - to be removed - objects are published automatically by engine
264 SALOMEDS::SObject_var SO = myStudy->FindObjectIOR( IOR );
265 if ( !SO->_is_nil() )
268 //Find or Create Algorithms root
269 SALOMEDS::SObject_var AlgorithmsRoot;
270 SALOMEDS::GenericAttribute_var anAttr;
271 SALOMEDS::AttributeName_var aName;
272 SALOMEDS::AttributeIOR_var anIOR;
273 SALOMEDS::AttributeSelectable_var aSelAttr;
274 SALOMEDS::AttributePixMap_var aPixmap;
276 if (!mySComponentMesh->FindSubObject (Tag_AlgorithmsRoot, AlgorithmsRoot)) {
277 AlgorithmsRoot = myStudyBuilder->NewObjectToTag (mySComponentMesh, Tag_AlgorithmsRoot);
278 anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributeName");
279 aName = SALOMEDS::AttributeName::_narrow(anAttr);
280 aName->SetValue(QObject::tr("SMESH_MEN_ALGORITHMS"));
281 anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributeSelectable");
282 aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
283 aSelAttr->SetSelectable(false);
284 anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributePixMap");
285 aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
286 aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO" );
288 // Add New Algorithms
289 SALOMEDS::SObject_var newHypo = myStudyBuilder->NewObject(AlgorithmsRoot);
290 anAttr = myStudyBuilder->FindOrCreateAttribute(newHypo, "AttributePixMap");
291 aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
292 SMESH::SMESH_Hypothesis_var H = SMESH::SMESH_Hypothesis::_narrow( StringToObject(IOR) );
293 QString aType = H->GetName();
294 aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_" + aType );
295 // if ( aType.compare("Regular_1D") == 0 )
296 // aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_REGULAR" );
297 // else if ( aType.compare("MEFISTO_2D") == 0 )
298 // aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_MEFISTO" );
299 // else if ( aType.compare("Quadrangle_2D") == 0 )
300 // aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_QUAD" );
301 // else if ( aType.compare("Hexa_3D") == 0 )
302 // aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_HEXA" );
303 anAttr = myStudyBuilder->FindOrCreateAttribute(newHypo, "AttributeIOR");
304 anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
305 anIOR->SetValue(IOR);
306 return SALOMEDS::SObject::_narrow(newHypo)->GetID();
309 void SMESH_Swig::SetShape(const char* ShapeEntry, const char* MeshEntry)
311 SALOMEDS::SObject_var SO_MorSM = myStudy->FindObjectID( MeshEntry );
312 SALOMEDS::SObject_var SO_GeomShape = myStudy->FindObjectID( ShapeEntry );
314 if ( !SO_MorSM->_is_nil() && !SO_GeomShape->_is_nil() ) {
315 SALOMEDS::SObject_var SO = myStudyBuilder->NewObjectToTag (SO_MorSM, Tag_RefOnShape);
316 myStudyBuilder->Addreference (SO,SO_GeomShape);
320 void SMESH_Swig::SetHypothesis(const char* Mesh_Or_SubMesh_Entry, const char* Hypothesis_Entry)
322 SALOMEDS::SObject_var SO_MorSM = myStudy->FindObjectID( Mesh_Or_SubMesh_Entry );
323 SALOMEDS::SObject_var SO_Hypothesis = myStudy->FindObjectID( Hypothesis_Entry );
324 SALOMEDS::GenericAttribute_var anAttr;
325 SALOMEDS::AttributeName_var aName;
326 SALOMEDS::AttributeSelectable_var aSelAttr;
327 SALOMEDS::AttributePixMap_var aPixmap;
329 if ( !SO_MorSM->_is_nil() && !SO_Hypothesis->_is_nil() ) {
331 //Find or Create Applied Hypothesis root
332 SALOMEDS::SObject_var AHR;
333 if (!SO_MorSM->FindSubObject (Tag_RefOnAppliedHypothesis, AHR)) {
334 AHR = myStudyBuilder->NewObjectToTag (SO_MorSM, Tag_RefOnAppliedHypothesis);
335 anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributeName");
336 aName = SALOMEDS::AttributeName::_narrow(anAttr);
337 aName->SetValue(QObject::tr("SMESH_MEN_APPLIED_HYPOTHESIS"));
338 anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributeSelectable");
339 aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
340 aSelAttr->SetSelectable(false);
341 anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributePixMap");
342 aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
343 aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO" );
345 SALOMEDS::SObject_var SO = myStudyBuilder->NewObject(AHR);
346 myStudyBuilder->Addreference (SO,SO_Hypothesis);
349 void SMESH_Swig::SetAlgorithms(const char* Mesh_Or_SubMesh_Entry, const char* Algorithms_Entry)
351 SALOMEDS::SObject_var SO_MorSM = myStudy->FindObjectID( Mesh_Or_SubMesh_Entry );
352 SALOMEDS::SObject_var SO_Algorithms = myStudy->FindObjectID( Algorithms_Entry );
353 SALOMEDS::GenericAttribute_var anAttr;
354 SALOMEDS::AttributeName_var aName;
355 SALOMEDS::AttributeSelectable_var aSelAttr;
356 SALOMEDS::AttributePixMap_var aPixmap;
358 if ( !SO_MorSM->_is_nil() && !SO_Algorithms->_is_nil() ) {
359 //Find or Create Applied Algorithms root
360 SALOMEDS::SObject_var AHR;
361 if (!SO_MorSM->FindSubObject (Tag_RefOnAppliedAlgorithms, AHR)) {
362 AHR = myStudyBuilder->NewObjectToTag (SO_MorSM, Tag_RefOnAppliedAlgorithms);
363 anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributeName");
364 aName = SALOMEDS::AttributeName::_narrow(anAttr);
365 aName->SetValue(QObject::tr("SMESH_MEN_APPLIED_ALGORIHTMS"));
366 anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributeSelectable");
367 aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
368 aSelAttr->SetSelectable(false);
369 anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributePixMap");
370 aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
371 aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO" );
373 SALOMEDS::SObject_var SO = myStudyBuilder->NewObject(AHR);
374 myStudyBuilder->Addreference (SO,SO_Algorithms);
378 void SMESH_Swig::UnSetHypothesis(const char* Applied_Hypothesis_Entry )
380 SALOMEDS::SObject_var SO_Applied_Hypothesis = myStudy->FindObjectID( Applied_Hypothesis_Entry );
381 if ( !SO_Applied_Hypothesis->_is_nil() )
382 myStudyBuilder->RemoveObject(SO_Applied_Hypothesis);
386 const char* SMESH_Swig::AddSubMesh(const char* SO_Mesh_Entry, const char* SM_IOR, int ST)
388 SALOMEDS::SObject_var SO_Mesh = myStudy->FindObjectID( SO_Mesh_Entry );
389 if ( !SO_Mesh->_is_nil() ) {
392 Standard_CString Name;
394 if (ST == TopAbs_SOLID) {Tag_Shape = Tag_SubMeshOnSolid; Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnSolid"));}
395 else if (ST == TopAbs_FACE) {Tag_Shape = Tag_SubMeshOnFace; Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnFace"));}
396 else if (ST == TopAbs_EDGE) {Tag_Shape = Tag_SubMeshOnEdge; Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnEdge"));}
397 else if (ST == TopAbs_VERTEX){Tag_Shape = Tag_SubMeshOnVertex; Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnVertex"));}
399 Tag_Shape = Tag_SubMeshOnCompound; Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnCompound"));
401 SALOMEDS::SObject_var SubmeshesRoot;
402 SALOMEDS::GenericAttribute_var anAttr;
403 SALOMEDS::AttributeName_var aName;
404 SALOMEDS::AttributeIOR_var anIOR;
405 SALOMEDS::AttributeSelectable_var aSelAttr;
406 if (!SO_Mesh->FindSubObject (Tag_Shape,SubmeshesRoot )) {
407 SubmeshesRoot = myStudyBuilder->NewObjectToTag (SO_Mesh, Tag_Shape);
408 anAttr = myStudyBuilder->FindOrCreateAttribute(SubmeshesRoot, "AttributeName");
409 aName = SALOMEDS::AttributeName::_narrow(anAttr);
410 aName->SetValue(Name);
411 anAttr = myStudyBuilder->FindOrCreateAttribute(SubmeshesRoot, "AttributeSelectable");
412 aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
413 aSelAttr->SetSelectable(false);
418 SALOMEDS::SObject_var SO = myStudyBuilder->NewObject (SubmeshesRoot);
419 anAttr = myStudyBuilder->FindOrCreateAttribute(SO, "AttributeIOR");
420 anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
421 anIOR->SetValue(SM_IOR);
422 return SALOMEDS::SObject::_narrow( SO )->GetID();
427 const char* SMESH_Swig::AddSubMeshOnShape(const char* Mesh_Entry, const char* GeomShape_Entry,
428 const char* SM_IOR, int ST)
430 SALOMEDS::SObject_var SO_GeomShape = myStudy->FindObjectID( GeomShape_Entry );
431 if ( !SO_GeomShape->_is_nil() ) {
432 const char * SM_Entry = AddSubMesh (Mesh_Entry,SM_IOR,ST);
433 SALOMEDS::SObject_var SO_SM = myStudy->FindObjectID( SM_Entry );
434 if ( !SO_SM->_is_nil() ) {
435 SetShape (GeomShape_Entry, SM_Entry);
436 return SALOMEDS::SObject::_narrow( SO_SM )->GetID();
442 void SMESH_Swig::CreateAndDisplayActor( const char* Mesh_Entry )
444 // SMESH_Actor* Mesh = smeshGUI->ReadScript(aM);
447 void SMESH_Swig::SetName(const char* Entry, const char* Name)
449 SALOMEDS::SObject_var SO = myStudy->FindObjectID( Entry );
450 SALOMEDS::GenericAttribute_var anAttr;
451 SALOMEDS::AttributeName_var aName;
452 if ( !SO->_is_nil() ) {
453 anAttr = myStudyBuilder->FindOrCreateAttribute(SO, "AttributeName");
454 aName = SALOMEDS::AttributeName::_narrow(anAttr);
455 aName->SetValue(Name);
460 void SMESH_Swig::setOrb()
463 ORB_INIT &init = *SINGLETON_<ORB_INIT>::Instance();
464 ASSERT(SINGLETON_<ORB_INIT>::IsAlreadyExisting());
465 _orb = init( 0 , 0 );
467 INFOS("internal error : orb not found");
470 ASSERT(! CORBA::is_nil(_orb));