Salome HOME
Mantis issue 0021200: Problem of performance when doing a partition. A fix by PKV.
[modules/geom.git] / src / GEOM_I_Superv / GEOM_Superv_i.cc
1 //  Copyright (C) 2007-2010  CEA/DEN, EDF R&D, 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.
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 #include "GEOM_Superv_i.hh"
23 #include "SALOME_LifeCycleCORBA.hxx"
24
25 #include CORBA_SERVER_HEADER(SALOME_Session)
26 #include "SALOMEDSClient_ClientFactory.hxx"
27
28 #define isNewStudy(a,b) (a > 0 && a != b)
29
30 //=============================================================================
31 //  constructor:
32 //=============================================================================
33 GEOM_Superv_i::GEOM_Superv_i(CORBA::ORB_ptr orb,
34                              PortableServer::POA_ptr poa,
35                              PortableServer::ObjectId * contId,
36                              const char *instanceName,
37                              const char *interfaceName) :
38   Engines_Component_i(orb, poa, contId, instanceName, interfaceName)
39 {
40   MESSAGE("GEOM_Superv_i::GEOM_Superv_i");
41
42   _thisObj = this ;
43   _id = _poa->activate_object(_thisObj);
44   name_service = new SALOME_NamingService(_orb);
45   //get RootPOA (the default)
46   //myPOA = PortableServer::RefCountServantBase::_default_POA();
47   CORBA::Object_var anObj = _orb->resolve_initial_references("RootPOA");
48   myPOA = PortableServer::POA::_narrow(anObj);
49
50   setGeomEngine();
51
52   myStudyID = -1;
53   myLastStudyID = -1;
54
55   myBasicOp = GEOM::GEOM_IBasicOperations::_nil();
56   my3DPrimOp = GEOM::GEOM_I3DPrimOperations::_nil();
57   myBoolOp = GEOM::GEOM_IBooleanOperations::_nil();
58   myInsOp = GEOM::GEOM_IInsertOperations::_nil();
59   myTransfOp = GEOM::GEOM_ITransformOperations::_nil();
60   myShapesOp = GEOM::GEOM_IShapesOperations::_nil();
61   myBlocksOp = GEOM::GEOM_IBlocksOperations::_nil();
62   myCurvesOp = GEOM::GEOM_ICurvesOperations::_nil();
63   myLocalOp = GEOM::GEOM_ILocalOperations::_nil();
64   myGroupOp = GEOM::GEOM_IGroupOperations::_nil();
65 }
66
67 //=============================================================================
68 //  destructor
69 //=============================================================================
70 GEOM_Superv_i::~GEOM_Superv_i()
71 {
72   MESSAGE("GEOM_Superv_i::~GEOM_Superv_i");
73   if (!CORBA::is_nil(myBasicOp))
74     myBasicOp->UnRegister();
75   if (!CORBA::is_nil(myBoolOp))
76     myBoolOp->UnRegister();
77   if (!CORBA::is_nil(my3DPrimOp))
78     my3DPrimOp->UnRegister();
79   delete name_service;
80 }
81
82 //============================================================================
83 // function : register()
84 // purpose  : register 'name' in 'name_service'
85 //============================================================================
86 void GEOM_Superv_i::register_name(char * name)
87 {
88   GEOM::GEOM_Superv_var g = _this();
89   name_service->Register(g, name);
90 }
91
92 //=============================================================================
93 //  setGEOMEngine:
94 //=============================================================================
95 void GEOM_Superv_i::setGeomEngine()
96 {
97   if ( !CORBA::is_nil(myGeomEngine) )
98     return;
99
100   // get GEOM_Gen engine
101   Engines::Container_var cont=GetContainerRef();
102   CORBA::String_var container_name=cont->name();
103   std::string shortName=container_name.in();
104   shortName=shortName.substr(12); // substract "/Containers/"
105   SALOME_LifeCycleCORBA* lcc = new SALOME_LifeCycleCORBA( name_service );
106   Engines::EngineComponent_var comp = lcc->FindOrLoad_Component( shortName.c_str(), "GEOM" );
107   delete lcc;
108
109   myGeomEngine = GEOM::GEOM_Gen::_narrow(comp);
110 }
111
112 //=============================================================================
113 //  SetStudyID:
114 //=============================================================================
115 void GEOM_Superv_i::SetStudyID( CORBA::Long theId )
116 {
117   // mkr : PAL10770 -->
118   myLastStudyID = myStudyID;
119
120   CORBA::Object_ptr anObject = name_service->Resolve("/Kernel/Session");
121   if ( !CORBA::is_nil(anObject) ) {
122     SALOME::Session_var aSession = SALOME::Session::_narrow(anObject);
123     if ( !CORBA::is_nil(aSession) ) {
124       int aStudyID = aSession->GetActiveStudyId();
125       if ( theId != aStudyID && aStudyID > 0) { // mkr : IPAL12128
126         MESSAGE("Warning : given study ID theId="<<theId<<" is wrong and will be replaced by the value "<<aStudyID);
127         myStudyID = aStudyID;
128       }
129       else
130         myStudyID = theId; // mkr : IPAL12128
131     }
132   }
133
134   if ( isNewStudy(myLastStudyID,myStudyID) ) {
135     if (CORBA::is_nil(myGeomEngine)) setGeomEngine();
136     std::string anEngine = _orb->object_to_string( myGeomEngine );
137
138     CORBA::Object_var anObj = name_service->Resolve("/myStudyManager");
139     if ( !CORBA::is_nil(anObj) ) {
140       SALOMEDS::StudyManager_var aStudyManager = SALOMEDS::StudyManager::_narrow(anObj);
141       if ( !CORBA::is_nil(aStudyManager) ) {
142         _PTR(Study) aDSStudy = ClientFactory::Study(aStudyManager->GetStudyByID(myStudyID));
143         if ( aDSStudy ) {
144           _PTR(SComponent) aSCO = aDSStudy->FindComponent(myGeomEngine->ComponentDataType());
145           if ( aSCO ) {
146             _PTR(StudyBuilder) aBuilder = aDSStudy->NewBuilder();
147             if ( aBuilder ) aBuilder->LoadWith( aSCO, anEngine );
148           }
149         }
150       }
151     }
152   }
153   // mkr : PAL10770 <--
154 }
155
156 //=============================================================================
157 //  CreateListOfGO:
158 //=============================================================================
159 GEOM::GEOM_List_ptr GEOM_Superv_i::CreateListOfGO()
160 {
161   MESSAGE("GEOM_Superv_i::CreateListOfGO()");
162   GEOM_List_i<GEOM::ListOfGO>* aListPtr = new GEOM_List_i<GEOM::ListOfGO>();
163   return aListPtr->_this();
164 }
165
166 //=============================================================================
167 //  AddItemToListOfGO:
168 //=============================================================================
169 void GEOM_Superv_i::AddItemToListOfGO(GEOM::GEOM_List_ptr& theList,
170                                       GEOM::GEOM_Object_ptr theObject)
171 {
172   MESSAGE("GEOM_Superv_i::AddItemToListOfGO(...)");
173   GEOM::GEOM_Object_var anObj =  GEOM::GEOM_Object::_duplicate(theObject);
174   if (GEOM_List_i<GEOM::ListOfGO>* aList =
175       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theList, myPOA).in())) {
176     aList->AddObject(anObj);
177     MESSAGE(" NewLength = "<<aList->GetList().length());
178   }
179 }
180
181 //=============================================================================
182 //  CreateListOfLong:
183 //=============================================================================
184 GEOM::GEOM_List_ptr GEOM_Superv_i::CreateListOfLong()
185 {
186   MESSAGE("GEOM_Superv_i::CreateListOfLong()");
187   GEOM_List_i<GEOM::ListOfLong>* aListPtr = new GEOM_List_i<GEOM::ListOfLong>();
188   return aListPtr->_this();
189 }
190
191 //=============================================================================
192 //  AddItemToListOfLong:
193 //=============================================================================
194 void GEOM_Superv_i::AddItemToListOfLong(GEOM::GEOM_List_ptr& theList,
195                                         CORBA::Long theObject)
196 {
197   MESSAGE("GEOM_Superv_i::AddItemToListOfLong(...)");
198   if (GEOM_List_i<GEOM::ListOfLong>* aList =
199       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theList, myPOA).in())) {
200     aList->AddObject(theObject);
201     MESSAGE(" NewLength = "<<aList->GetList().length());
202   }
203 }
204
205 //=============================================================================
206 //  CreateListOfDouble:
207 //=============================================================================
208 GEOM::GEOM_List_ptr GEOM_Superv_i::CreateListOfDouble()
209 {
210   MESSAGE("GEOM_Superv_i::CreateListOfDouble()");
211   GEOM_List_i<GEOM::ListOfDouble>* aListPtr = new GEOM_List_i<GEOM::ListOfDouble>();
212   return aListPtr->_this();
213 }
214
215 //=============================================================================
216 //  AddItemToListOfDouble:
217 //=============================================================================
218 void GEOM_Superv_i::AddItemToListOfDouble(GEOM::GEOM_List_ptr& theList,
219                                           CORBA::Double theObject)
220 {
221   MESSAGE("GEOM_Superv_i::AddItemToListOfDouble(...)");
222   if (GEOM_List_i<GEOM::ListOfDouble>* aList =
223       dynamic_cast<GEOM_List_i<GEOM::ListOfDouble>*>(GetServant(theList, myPOA).in())) {
224     aList->AddObject(theObject);
225     MESSAGE(" NewLength = "<<aList->GetList().length());
226   }
227 }
228
229 //=============================================================================
230 //  getBasicOp:
231 //=============================================================================
232 void GEOM_Superv_i::getBasicOp()
233 {
234   if (CORBA::is_nil(myGeomEngine))
235     setGeomEngine();
236   // get GEOM_IBasicOperations interface
237   if (CORBA::is_nil(myBasicOp) || isNewStudy(myLastStudyID,myStudyID))
238     myBasicOp = myGeomEngine->GetIBasicOperations(myStudyID);
239 }
240
241 //=============================================================================
242 //  get3DPrimOp:
243 //=============================================================================
244 void GEOM_Superv_i::get3DPrimOp()
245 {
246   if (CORBA::is_nil(myGeomEngine))
247     setGeomEngine();
248   // get GEOM_I3DPrimOperations interface
249   if (CORBA::is_nil(my3DPrimOp) || isNewStudy(myLastStudyID,myStudyID))
250     my3DPrimOp = myGeomEngine->GetI3DPrimOperations(myStudyID);
251 }
252
253 //=============================================================================
254 //  getBoolOp:
255 //=============================================================================
256 void GEOM_Superv_i::getBoolOp()
257 {
258   if (CORBA::is_nil(myGeomEngine))
259     setGeomEngine();
260   // get GEOM_IBooleanOperations interface
261   if (CORBA::is_nil(myBoolOp) || isNewStudy(myLastStudyID,myStudyID))
262     myBoolOp = myGeomEngine->GetIBooleanOperations(myStudyID);
263 }
264
265 //=============================================================================
266 //  getInsOp:
267 //=============================================================================
268 void GEOM_Superv_i::getInsOp()
269 {
270   if (CORBA::is_nil(myGeomEngine))
271     setGeomEngine();
272   // get GEOM_IInsertOperations interface
273   if (CORBA::is_nil(myInsOp) || isNewStudy(myLastStudyID,myStudyID))
274     myInsOp = myGeomEngine->GetIInsertOperations(myStudyID);
275 }
276
277 //=============================================================================
278 //  getTransfOp:
279 //=============================================================================
280 void GEOM_Superv_i::getTransfOp()
281 {
282   if (CORBA::is_nil(myGeomEngine))
283     setGeomEngine();
284   // get GEOM_ITransformOperations interface
285   if (CORBA::is_nil(myTransfOp) || isNewStudy(myLastStudyID,myStudyID))
286     myTransfOp = myGeomEngine->GetITransformOperations(myStudyID);
287 }
288
289 //=============================================================================
290 //  getShapesOp:
291 //=============================================================================
292 void GEOM_Superv_i::getShapesOp()
293 {
294   if (CORBA::is_nil(myGeomEngine))
295     setGeomEngine();
296   // get GEOM_IShapesOperations interface
297   if (CORBA::is_nil(myShapesOp) || isNewStudy(myLastStudyID,myStudyID))
298     myShapesOp = myGeomEngine->GetIShapesOperations(myStudyID);
299 }
300
301 //=============================================================================
302 //  getBlocksOp:
303 //=============================================================================
304 void GEOM_Superv_i::getBlocksOp()
305 {
306   if (CORBA::is_nil(myGeomEngine))
307     setGeomEngine();
308   // get GEOM_IBlocksOperations interface
309   if (CORBA::is_nil(myBlocksOp) || isNewStudy(myLastStudyID,myStudyID))
310     myBlocksOp = myGeomEngine->GetIBlocksOperations(myStudyID);
311 }
312
313 //=============================================================================
314 //  getCurvesOp:
315 //=============================================================================
316 void GEOM_Superv_i::getCurvesOp()
317 {
318   if (CORBA::is_nil(myGeomEngine))
319     setGeomEngine();
320   // get GEOM_ICurvesOperations interface
321   if (CORBA::is_nil(myCurvesOp) || isNewStudy(myLastStudyID,myStudyID))
322     myCurvesOp = myGeomEngine->GetICurvesOperations(myStudyID);
323 }
324
325 //=============================================================================
326 //  getLocalOp:
327 //=============================================================================
328 void GEOM_Superv_i::getLocalOp()
329 {
330   if (CORBA::is_nil(myGeomEngine))
331     setGeomEngine();
332   // get GEOM_ILocalOperations interface
333   if (CORBA::is_nil(myLocalOp) || isNewStudy(myLastStudyID,myStudyID))
334     myLocalOp = myGeomEngine->GetILocalOperations(myStudyID);
335 }
336
337 //=============================================================================
338 //  getGroupOp:
339 //=============================================================================
340 void GEOM_Superv_i::getGroupOp()
341 {
342   if (CORBA::is_nil(myGeomEngine))
343     setGeomEngine();
344   // get GEOM_IGroupOperations interface
345   if (CORBA::is_nil(myGroupOp) || isNewStudy(myLastStudyID,myStudyID))
346     myGroupOp = myGeomEngine->GetIGroupOperations(myStudyID);
347 }
348
349 //=============================================================================
350 //  getAdvancedOp:
351 //=============================================================================
352 void GEOM_Superv_i::getAdvancedOp()
353 {
354   if (CORBA::is_nil(myGeomEngine))
355     setGeomEngine();
356   // get GEOM_IAdvancedOperations interface
357   if (CORBA::is_nil(myAdvancedOp) || isNewStudy(myLastStudyID,myStudyID))
358     myAdvancedOp = myGeomEngine->GetIAdvancedOperations(myStudyID);
359 }
360
361 //=============================================================================
362 //  GetServant:
363 //=============================================================================
364 PortableServer::ServantBase_var GEOM_Superv_i::GetServant(CORBA::Object_ptr       theObject,
365                                                           PortableServer::POA_ptr thePOA)
366 {
367   if(CORBA::is_nil(theObject))  return NULL;
368   PortableServer::Servant aServant = thePOA->reference_to_servant(theObject);
369   return aServant;
370 }
371
372 //============================================================================
373 // function : Save()
374 // purpose  : save OCAF/Geom document
375 //============================================================================
376 SALOMEDS::TMPFile* GEOM_Superv_i::Save(SALOMEDS::SComponent_ptr theComponent,
377                                        const char* theURL,
378                                        CORBA::Boolean isMultiFile)
379 {
380   SALOMEDS::TMPFile_var aStreamFile;
381   return aStreamFile._retn();
382 }
383
384 //============================================================================
385 // function : SaveASCII()
386 // purpose  :
387 //============================================================================
388 SALOMEDS::TMPFile* GEOM_Superv_i::SaveASCII(SALOMEDS::SComponent_ptr theComponent,
389                                             const char* theURL,
390                                             CORBA::Boolean isMultiFile)
391 {
392   SALOMEDS::TMPFile_var aStreamFile;
393   return aStreamFile._retn();
394 }
395
396 //============================================================================
397 // function : Load()
398 // purpose  :
399 //============================================================================
400 CORBA::Boolean GEOM_Superv_i::Load(SALOMEDS::SComponent_ptr theComponent,
401                                    const SALOMEDS::TMPFile& theStream,
402                                    const char* theURL,
403                                    CORBA::Boolean isMultiFile)
404 {
405   return false;
406 }
407
408 //============================================================================
409 // function : LoadASCII()
410 // purpose  :
411 //============================================================================
412 CORBA::Boolean GEOM_Superv_i::LoadASCII(SALOMEDS::SComponent_ptr theComponent,
413                                         const SALOMEDS::TMPFile& theStream,
414                                         const char* theURL,
415                                         CORBA::Boolean isMultiFile)
416 {
417   return false;
418 }
419
420 //============================================================================
421 // function : Close()
422 // purpose  :
423 //============================================================================
424 void GEOM_Superv_i::Close(SALOMEDS::SComponent_ptr theComponent)
425 {
426 }
427
428 //============================================================================
429 // function : ComponentDataType()
430 // purpose  :
431 //============================================================================
432 char* GEOM_Superv_i::ComponentDataType()
433 {
434   return 0;
435 }
436
437 //============================================================================
438 // function : IORToLocalPersistentID()
439 // purpose  :
440 //============================================================================
441 char* GEOM_Superv_i::IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject,
442                                             const char* IORString,
443                                             CORBA::Boolean isMultiFile,
444                                             CORBA::Boolean isASCII)
445 {
446   return 0;
447 }
448
449 //============================================================================
450 // function : LocalPersistentIDToIOR()
451 // purpose  : Create/Load CORBA object from a persistent ref (an entry)
452 //          : Used when a study is loaded
453 //          : The IOR (IORName) of object created is returned
454 //============================================================================
455 char* GEOM_Superv_i::LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject,
456                                             const char* aLocalPersistentID,
457                                             CORBA::Boolean isMultiFile,
458                                             CORBA::Boolean isASCII)
459 {
460   return 0;
461 }
462
463 //============================================================================
464 // function : CanPublishInStudy
465 // purpose  :
466 //============================================================================
467 CORBA::Boolean GEOM_Superv_i::CanPublishInStudy(CORBA::Object_ptr theIOR)
468 {
469   if (CORBA::is_nil(myGeomEngine))
470     setGeomEngine();
471   return myGeomEngine->CanPublishInStudy(theIOR);
472 }
473
474 //============================================================================
475 // function : PublishInStudy
476 // purpose  :
477 //============================================================================
478 SALOMEDS::SObject_ptr GEOM_Superv_i::PublishInStudy(SALOMEDS::Study_ptr theStudy,
479                                                     SALOMEDS::SObject_ptr theSObject,
480                                                     CORBA::Object_ptr theObject,
481                                                     const char* theName) throw (SALOME::SALOME_Exception)
482 {
483   if (CORBA::is_nil(myGeomEngine))
484     setGeomEngine();
485   return myGeomEngine->PublishInStudy(theStudy, theSObject, theObject, theName);
486 }
487
488 //============================================================================
489 // function : PublishNamedShapesInStudy
490 // purpose  :
491 //============================================================================
492 GEOM::ListOfGO*
493 GEOM_Superv_i::PublishNamedShapesInStudy(SALOMEDS::Study_ptr theStudy,
494                                          //SALOMEDS::SObject_ptr theSObject,
495                                          CORBA::Object_ptr theObject)
496 {
497   if (CORBA::is_nil(myGeomEngine))
498     setGeomEngine();
499   return myGeomEngine->PublishNamedShapesInStudy(theStudy, theObject);
500 }
501
502 //============================================================================
503 // function : CanCopy()
504 // purpose  :
505 //============================================================================
506 CORBA::Boolean GEOM_Superv_i::CanCopy(SALOMEDS::SObject_ptr theObject)
507 {
508   return false;
509 }
510
511 //============================================================================
512 // function : CopyFrom()
513 // purpose  :
514 //============================================================================
515 SALOMEDS::TMPFile* GEOM_Superv_i::CopyFrom(SALOMEDS::SObject_ptr theObject, CORBA::Long& theObjectID)
516 {
517   SALOMEDS::TMPFile_var aStreamFile;
518   return aStreamFile._retn();
519 }
520
521 //============================================================================
522 // function : CanPaste()
523 // purpose  :
524 //============================================================================
525 CORBA::Boolean GEOM_Superv_i::CanPaste(const char* theComponentName, CORBA::Long theObjectID)
526 {
527   return false;
528 }
529
530 //============================================================================
531 // function : PasteInto()
532 // purpose  :
533 //============================================================================
534 SALOMEDS::SObject_ptr GEOM_Superv_i::PasteInto(const SALOMEDS::TMPFile& theStream,
535                                                CORBA::Long theObjectID,
536                                                SALOMEDS::SObject_ptr theObject)
537 {
538   SALOMEDS::SObject_var aNewSO;
539   return aNewSO._retn();
540 }
541
542 //================= Primitives Construction : BasicOperations =================
543 //=============================================================================
544 //  MakePointXYZ:
545 //=============================================================================
546 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointXYZ(CORBA::Double theX,
547                                                   CORBA::Double theY,
548                                                   CORBA::Double theZ)
549 {
550   beginService( " GEOM_Superv_i::MakePointXYZ" );
551   MESSAGE("GEOM_Superv_i::MakePointXYZ");
552   getBasicOp();
553   // make vertex and return
554   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePointXYZ(theX, theY, theZ);
555   endService( " GEOM_Superv_i::MakePointXYZ" );
556   return anObj;
557 }
558
559 //=============================================================================
560 //  MakePointWithReference:
561 //=============================================================================
562 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointWithReference (GEOM::GEOM_Object_ptr theReference,
563                                                              CORBA::Double theX,
564                                                              CORBA::Double theY,
565                                                              CORBA::Double theZ)
566 {
567   beginService( " GEOM_Superv_i::MakePointWithReference" );
568   MESSAGE("GEOM_Superv_i::MakePointWithReference");
569   getBasicOp();
570   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePointWithReference(theReference, theX, theY, theZ);
571   endService( " GEOM_Superv_i::MakePointWithReference" );
572   return anObj;
573 }
574
575 //=============================================================================
576 //  MakePointOnCurve:
577 //=============================================================================
578 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointOnCurve (GEOM::GEOM_Object_ptr theRefCurve,
579                                                        CORBA::Double theParameter)
580 {
581   beginService( " GEOM_Superv_i::MakePointOnCurve" );
582   MESSAGE("GEOM_Superv_i::MakePointOnCurve");
583   getBasicOp();
584   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePointOnCurve(theRefCurve, theParameter);
585   endService( " GEOM_Superv_i::MakePointOnCurve" );
586   return anObj;
587 }
588
589 //=============================================================================
590 //  MakePointOnCurveByLength:
591 //=============================================================================
592 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointOnCurveByLength (GEOM::GEOM_Object_ptr theRefCurve,
593                                                                CORBA::Double theLength,
594                                                                CORBA::Boolean theReverse)
595 {
596   beginService( " GEOM_Superv_i::MakePointOnCurveByLength" );
597   MESSAGE("GEOM_Superv_i::MakePointOnCurveByLength");
598   getBasicOp();
599   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePointOnCurveByLength(theRefCurve, theLength, theReverse);
600   endService( " GEOM_Superv_i::MakePointOnCurveByLength" );
601   return anObj;
602 }
603
604 //=============================================================================
605 //  MakePointOnCurveByCoord
606 //=============================================================================
607 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointOnCurveByCoord (GEOM::GEOM_Object_ptr theRefCurve,
608                                                               CORBA::Double theXParameter,
609                                                               CORBA::Double theYParameter,
610                                                               CORBA::Double theZParameter)
611 {
612   beginService( " GEOM_Superv_i::MakePointOnCurveByCoord" );
613   MESSAGE("GEOM_Superv_i::MakePointOnCurveByCoord");
614   getBasicOp();
615   GEOM::GEOM_Object_ptr anObj =
616     myBasicOp->MakePointOnCurveByCoord(theRefCurve, theXParameter,
617                                 theYParameter, theZParameter);
618   endService( " GEOM_Superv_i::MakePointOnCurveByCoord" );
619   return anObj;
620 }
621
622 //=============================================================================
623 //  MakePointOnSurface:
624 //=============================================================================
625 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointOnSurface (GEOM::GEOM_Object_ptr theRefSurface,
626                                                          CORBA::Double theUParameter,
627                                                          CORBA::Double theVParameter)
628 {
629   beginService( " GEOM_Superv_i::MakePointOnSurface" );
630   MESSAGE("GEOM_Superv_i::MakePointOnSurface");
631   getBasicOp();
632   GEOM::GEOM_Object_ptr anObj =
633     myBasicOp->MakePointOnSurface(theRefSurface, theUParameter, theVParameter);
634   endService( " GEOM_Superv_i::MakePointOnSurface" );
635   return anObj;
636 }
637
638 //=============================================================================
639 //  MakePointOnSurfaceByCoord
640 //=============================================================================
641 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointOnSurfaceByCoord (GEOM::GEOM_Object_ptr theRefSurface,
642                                                                 CORBA::Double theXParameter,
643                                                                 CORBA::Double theYParameter,
644                                                                 CORBA::Double theZParameter)
645 {
646   beginService( " GEOM_Superv_i::MakePointOnSurfaceByCoord" );
647   MESSAGE("GEOM_Superv_i::MakePointOnSurfaceByCoord");
648   getBasicOp();
649   GEOM::GEOM_Object_ptr anObj =
650     myBasicOp->MakePointOnSurfaceByCoord(theRefSurface, theXParameter,
651                                 theYParameter, theZParameter);
652   endService( " GEOM_Superv_i::MakePointOnSurfaceByCoord" );
653   return anObj;
654 }
655
656 //=============================================================================
657 //  MakePointOnLinesIntersection:
658 //=============================================================================
659 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointOnLinesIntersection (GEOM::GEOM_Object_ptr theRefLine1,
660                                                                    GEOM::GEOM_Object_ptr theRefLine2)
661 {
662   beginService( " GEOM_Superv_i::MakePointOnLinesIntersection" );
663   MESSAGE("GEOM_Superv_i::MakePointOnLinesIntersection");
664   getBasicOp();
665   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePointOnLinesIntersection(theRefLine1, theRefLine2);
666   endService( " GEOM_Superv_i::MakePointOnLinesIntersection" );
667   return anObj;
668 }
669
670 //=============================================================================
671 //  MakeTangentOnCurve:
672 //=============================================================================
673 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeTangentOnCurve (GEOM::GEOM_Object_ptr theRefCurve,
674                                                          CORBA::Double theParameter)
675 {
676   beginService( " GEOM_Superv_i::MakeTangentOnCurve" );
677   MESSAGE("GEOM_Superv_i::MakeTangentOnCurve");
678   getBasicOp();
679   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeTangentOnCurve(theRefCurve, theParameter);
680   endService( " GEOM_Superv_i::MakeTangentOnCurve" );
681   return anObj;
682 }
683
684 //=============================================================================
685 //  MakeVectorDXDYDZ:
686 //=============================================================================
687 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeVectorDXDYDZ (CORBA::Double theDX,
688                                                        CORBA::Double theDY,
689                                                        CORBA::Double theDZ)
690 {
691   beginService( " GEOM_Superv_i::MakeVectorDXDYDZ" );
692   MESSAGE("GEOM_Superv_i::MakeVectorDXDYDZ");
693   getBasicOp();
694   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeVectorDXDYDZ(theDX, theDY, theDZ);
695   endService( " GEOM_Superv_i::MakeVectorDXDYDZ" );
696   return anObj;
697 }
698
699 //=============================================================================
700 //  MakeVectorTwoPnt:
701 //=============================================================================
702 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeVectorTwoPnt (GEOM::GEOM_Object_ptr thePnt1,
703                                                        GEOM::GEOM_Object_ptr thePnt2)
704 {
705   beginService( " GEOM_Superv_i::MakeVectorTwoPnt" );
706   MESSAGE("GEOM_Superv_i::MakeVector");
707   getBasicOp();
708   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeVectorTwoPnt(thePnt1, thePnt2);
709   endService( " GEOM_Superv_i::MakeVectorTwoPnt" );
710   return anObj;
711 }
712
713 //=============================================================================
714 //  MakeLineTwoPnt:
715 //=============================================================================
716 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeLineTwoPnt (GEOM::GEOM_Object_ptr thePnt1,
717                                                      GEOM::GEOM_Object_ptr thePnt2)
718 {
719   beginService( " GEOM_Superv_i::MakeLineTwoPnt");
720   MESSAGE("GEOM_Superv_i::MakeLineTwoPnt");
721   getBasicOp();
722   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeLineTwoPnt(thePnt1, thePnt2);
723   endService( " GEOM_Superv_i::MakeLineTwoPnt");
724   return anObj;
725 }
726
727 //=============================================================================
728 //  MakeLineTwoFaces:
729 //=============================================================================
730 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeLineTwoFaces (GEOM::GEOM_Object_ptr theFace1,
731                                                        GEOM::GEOM_Object_ptr theFace2)
732 {
733   beginService( " GEOM_Superv_i::MakeLineTwoFaces");
734   MESSAGE("GEOM_Superv_i::MakeLineTwoFaces");
735   getBasicOp();
736   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeLineTwoFaces(theFace1, theFace2);
737   endService( " GEOM_Superv_i::MakeLineTwoFaces");
738   return anObj;
739 }
740
741 //=============================================================================
742 //  MakePlaneThreePnt:
743 //=============================================================================
744 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePlaneThreePnt (GEOM::GEOM_Object_ptr thePnt1,
745                                                         GEOM::GEOM_Object_ptr thePnt2,
746                                                         GEOM::GEOM_Object_ptr thePnt3,
747                                                         CORBA::Double theTrimSize)
748 {
749   beginService( " GEOM_Superv_i::MakePlaneThreePnt");
750   MESSAGE("GEOM_Superv_i::MakePlaneThreePnt");
751   getBasicOp();
752   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePlaneThreePnt(thePnt1, thePnt2, thePnt3, theTrimSize);
753   endService( " GEOM_Superv_i::MakePlaneThreePnt");
754   return anObj;
755 }
756
757 //=============================================================================
758 //  MakePlanePntVec:
759 //=============================================================================
760 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePlanePntVec (GEOM::GEOM_Object_ptr thePnt,
761                                                       GEOM::GEOM_Object_ptr theVec,
762                                                       CORBA::Double theTrimSize)
763 {
764   beginService( " GEOM_Superv_i::MakePlanePntVec" );
765   MESSAGE("GEOM_Superv_i::MakePlanePntVec");
766   getBasicOp();
767   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePlanePntVec(thePnt, theVec, theTrimSize);
768   endService( " GEOM_Superv_i::MakePlanePntVec" );
769   return anObj;
770 }
771
772 //=============================================================================
773 //  MakePlaneFace:
774 //=============================================================================
775 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePlaneFace (GEOM::GEOM_Object_ptr theFace,
776                                                     CORBA::Double theTrimSize)
777 {
778   beginService( " GEOM_Superv_i::MakePlaneFace" );
779   MESSAGE("GEOM_Superv_i::MakePlaneFace");
780   getBasicOp();
781   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePlaneFace(theFace, theTrimSize);
782   endService( " GEOM_Superv_i::MakePlaneFace" );
783   return anObj;
784 }
785
786 //=============================================================================
787 //  MakePlane2Vec:
788 //=============================================================================
789 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePlane2Vec (GEOM::GEOM_Object_ptr theVec1,
790                                                     GEOM::GEOM_Object_ptr theVec2,
791                                                     CORBA::Double theTrimSize)
792 {
793   beginService( " GEOM_Superv_i::MakePlane2Vec" );
794   MESSAGE("GEOM_Superv_i::MakePlane2Vec");
795   getBasicOp();
796   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePlane2Vec(theVec1, theVec2, theTrimSize);
797   endService( " GEOM_Superv_i::MakePlane2Vec" );
798   return anObj;
799 }
800
801 //=============================================================================
802 //  MakePlaneLCS:
803 //=============================================================================
804 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePlaneLCS (GEOM::GEOM_Object_ptr theLCS,
805                                                    CORBA::Double theTrimSize,
806                                                    CORBA::Double theOrientation)
807 {
808   beginService( " GEOM_Superv_i::MakePlaneLCS" );
809   MESSAGE("GEOM_Superv_i::MakePlaneLCS");
810   getBasicOp();
811   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePlaneLCS(theLCS, theTrimSize, theOrientation);
812   endService( " GEOM_Superv_i::MakePlaneLCS" );
813   return anObj;
814 }
815
816 //=============================================================================
817 //  MakeMarker:
818 //=============================================================================
819 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeMarker
820 (CORBA::Double theOX , CORBA::Double theOY , CORBA::Double theOZ,
821  CORBA::Double theXDX, CORBA::Double theXDY, CORBA::Double theXDZ,
822  CORBA::Double theYDX, CORBA::Double theYDY, CORBA::Double theYDZ)
823 {
824   beginService( " GEOM_Superv_i::MakeMarker" );
825   MESSAGE("GEOM_Superv_i::MakeMarker");
826   getBasicOp();
827   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeMarker(theOX, theOY, theOZ, theXDX, theXDY, theXDZ, theYDX, theYDY, theYDZ);
828   endService( " GEOM_Superv_i::MakeMarker" );
829   return anObj;
830 }
831
832 //=============================================================================
833 //  MakeMarkerFromShape:
834 //=============================================================================
835 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeMarkerFromShape (GEOM::GEOM_Object_ptr theShape)
836 {
837   beginService( " GEOM_Superv_i::MakeMarkerFromShape" );
838   MESSAGE("GEOM_Superv_i::MakeMarkerFromShape");
839   getBasicOp();
840   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeMarkerFromShape(theShape);
841   endService( " GEOM_Superv_i::MakeMarkerFromShape" );
842   return anObj;
843 }
844
845 //=============================================================================
846 //  MakeMarkerPntTwoVec:
847 //=============================================================================
848 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeMarkerPntTwoVec (GEOM::GEOM_Object_ptr theOrigin,
849                                                           GEOM::GEOM_Object_ptr theXVec,
850                                                           GEOM::GEOM_Object_ptr theYVec)
851 {
852   beginService( " GEOM_Superv_i::MakeMarkerPntTwoVec" );
853   MESSAGE("GEOM_Superv_i::MakeMarkerPntTwoVec");
854   getBasicOp();
855   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeMarkerPntTwoVec(theOrigin, theXVec, theYVec);
856   endService( " GEOM_Superv_i::MakeMarkerPntTwoVec" );
857   return anObj;
858 }
859
860 //=============================================================================
861 //  MakeTangentPlaneOnFace:
862 //=============================================================================
863 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeTangentPlaneOnFace (GEOM::GEOM_Object_ptr theFace,
864                                                  CORBA::Double theParameterU,
865                                                  CORBA::Double theParameterV,
866                                                  CORBA::Double theTrimSize)
867 {
868   beginService( " GEOM_Superv_i::MakeTangentPlaneOnFace" );
869   MESSAGE("GEOM_Superv_i::MakeTangentPlaneOnFace");
870   getBasicOp();
871   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeTangentPlaneOnFace(theFace, theParameterU,theParameterV,theTrimSize);
872   endService( " GEOM_Superv_i::MakeTangentPlaneOnFace" );
873   return anObj;
874 }
875
876 //================= Primitives Construction : 3DPrimOperations ================
877 //=============================================================================
878 //  MakeBox:
879 //=============================================================================
880 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeBox (CORBA::Double theX1,
881                                               CORBA::Double theY1,
882                                               CORBA::Double theZ1,
883                                               CORBA::Double theX2,
884                                               CORBA::Double theY2,
885                                               CORBA::Double theZ2)
886 {
887   beginService( " GEOM_Superv_i::MakeBox" );
888   MESSAGE("GEOM_Superv_i::MakeBox");
889   getBasicOp();
890   get3DPrimOp();
891   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeBoxTwoPnt(myBasicOp->MakePointXYZ(theX1, theY1, theZ1),
892                                                           myBasicOp->MakePointXYZ(theX2, theY2, theZ2));
893   endService( " GEOM_Superv_i::MakeBox" );
894   return anObj;
895 }
896
897 //=============================================================================
898 //  MakeBoxDXDYDZ:
899 //=============================================================================
900 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeBoxDXDYDZ (CORBA::Double theDX,
901                                                     CORBA::Double theDY,
902                                                     CORBA::Double theDZ)
903 {
904   beginService( " GEOM_Superv_i::MakeBoxDXDYDZ" );
905   MESSAGE("GEOM_Superv_i::MakeBoxDXDYDZ");
906   get3DPrimOp();
907   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeBoxDXDYDZ(theDX, theDY, theDZ);
908   endService( " GEOM_Superv_i::MakeBoxDXDYDZ" );
909   return anObj;
910 }
911
912 //=============================================================================
913 //  MakeBoxTwoPnt:
914 //=============================================================================
915 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeBoxTwoPnt (GEOM::GEOM_Object_ptr thePnt1,
916                                                     GEOM::GEOM_Object_ptr thePnt2)
917 {
918   beginService( " GEOM_Superv_i::MakeBoxTwoPnt" );
919   MESSAGE("GEOM_Superv_i::MakeBoxTwoPnt");
920   get3DPrimOp();
921   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeBoxTwoPnt(thePnt1, thePnt2);
922   endService( " GEOM_Superv_i::MakeBoxTwoPnt" );
923   return anObj;
924 }
925
926 //=============================================================================
927 //  MakeFaceHW:
928 //=============================================================================
929 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFaceHW (CORBA::Double theH,
930                                                  CORBA::Double theW,
931                                                  CORBA::Short  theOrientation)
932 {
933   beginService( " GEOM_Superv_i::MakeFaceHW" );
934   MESSAGE("GEOM_Superv_i::MakeFaceHW");
935   get3DPrimOp();
936   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeFaceHW(theH, theW, theOrientation);
937   endService( " GEOM_Superv_i::MakeFaceHW" );
938   return anObj;
939 }
940
941 //=============================================================================
942 //  MakeFaceObjHW:
943 //=============================================================================
944 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFaceObjHW (GEOM::GEOM_Object_ptr theObj,
945                                                     CORBA::Double theH,
946                                                     CORBA::Double theW)
947 {
948   beginService( " GEOM_Superv_i::MakeFaceObjHW" );
949   MESSAGE("GEOM_Superv_i::MakeFaceObjHW");
950   get3DPrimOp();
951   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeFaceObjHW(theObj, theH, theW);
952   endService( " GEOM_Superv_i::MakeFaceObjHW" );
953   return anObj;
954 }
955
956 //=============================================================================
957 //  MakeDiskPntVecR:
958 //=============================================================================
959 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeDiskPntVecR (GEOM::GEOM_Object_ptr theCenter,
960                                                       GEOM::GEOM_Object_ptr theVector,
961                                                       CORBA::Double theR)
962 {
963   beginService( " GEOM_Superv_i::MakeDiskPntVecR" );
964   MESSAGE("GEOM_Superv_i::MakeDiskPntVecR");
965   get3DPrimOp();
966   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeDiskPntVecR(theCenter, theVector, theR);
967   endService( " GEOM_Superv_i::MakeDiskPntVecR" );
968   return anObj;
969 }
970
971 //=============================================================================
972 //  MakeDiskThreePnt:
973 //=============================================================================
974 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeDiskThreePnt (GEOM::GEOM_Object_ptr thePnt1,
975                                                        GEOM::GEOM_Object_ptr thePnt2,
976                                                        GEOM::GEOM_Object_ptr thePnt3)
977 {
978   beginService( " GEOM_Superv_i::MakeDiskThreePnt" );
979   MESSAGE("GEOM_Superv_i::MakeDiskThreePnt");
980   get3DPrimOp();
981   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeDiskThreePnt(thePnt1, thePnt2, thePnt3);
982   endService( " GEOM_Superv_i::MakeDiskThreePnt" );
983   return anObj;
984 }
985
986 //=============================================================================
987 //  MakeDiskR:
988 //=============================================================================
989 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeDiskR (CORBA::Double theR,
990                                                 CORBA::Short  theOrientation)
991 {
992   beginService( " GEOM_Superv_i::MakeDiskR" );
993   MESSAGE("GEOM_Superv_i::MakeDiskR");
994   get3DPrimOp();
995   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeDiskR(theR, theOrientation);
996   endService( " GEOM_Superv_i::MakeDiskR" );
997   return anObj;
998 }
999
1000 //=============================================================================
1001 //  MakeCylinderPntVecRH:
1002 //=============================================================================
1003 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCylinderPntVecRH (GEOM::GEOM_Object_ptr thePnt,
1004                                                            GEOM::GEOM_Object_ptr theAxis,
1005                                                            CORBA::Double theRadius,
1006                                                            CORBA::Double theHeight)
1007 {
1008   beginService( " GEOM_Superv_i::MakeCylinderPntVecRH" );
1009   MESSAGE("GEOM_Superv_i::MakeCylinderPntVecRH");
1010   get3DPrimOp();
1011   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeCylinderPntVecRH(thePnt, theAxis, theRadius, theHeight);
1012   endService( " GEOM_Superv_i::MakeCylinderPntVecRH" );
1013   return anObj;
1014 }
1015
1016 //=============================================================================
1017 //  MakeCylinderRH:
1018 //=============================================================================
1019 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCylinderRH (CORBA::Double theR,
1020                                                      CORBA::Double theH)
1021 {
1022   beginService( " GEOM_Superv_i::MakeCylinderRH" );
1023   MESSAGE("GEOM_Superv_i::MakeCylinderRH");
1024   get3DPrimOp();
1025   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeCylinderRH(theR, theH);
1026   endService( " GEOM_Superv_i::MakeCylinderRH" );
1027   return anObj;
1028 }
1029
1030 //=============================================================================
1031 //  MakeSphere:
1032 //=============================================================================
1033 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSphere  (CORBA::Double theX,
1034                                                   CORBA::Double theY,
1035                                                   CORBA::Double theZ,
1036                                                   CORBA::Double theRadius)
1037 {
1038   beginService( " GEOM_Superv_i::MakeSphepe" );
1039   MESSAGE("GEOM_Superv_i::MakeSphepe");
1040   getBasicOp();
1041   get3DPrimOp();
1042   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeSpherePntR(myBasicOp->MakePointXYZ(theX, theY, theZ), theRadius);
1043   endService( " GEOM_Superv_i::MakeSphepe" );
1044   return anObj;
1045 }
1046
1047 //=============================================================================
1048 //  MakeSphereR:
1049 //=============================================================================
1050 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSphereR (CORBA::Double theR)
1051 {
1052   beginService( " GEOM_Superv_i::MakeSphereR" );
1053   MESSAGE("GEOM_Superv_i::MakeSphereR");
1054   get3DPrimOp();
1055   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeSphereR(theR);
1056   endService( " GEOM_Superv_i::MakeSphereR" );
1057   return anObj;
1058 }
1059
1060 //=============================================================================
1061 //  MakeSpherePntR:
1062 //=============================================================================
1063 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSpherePntR (GEOM::GEOM_Object_ptr thePnt,
1064                                                      CORBA::Double theR)
1065 {
1066   beginService( " GEOM_Superv_i::MakeSpherePntR" );
1067   MESSAGE("GEOM_Superv_i::MakeSpherePntR");
1068   get3DPrimOp();
1069   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeSpherePntR(thePnt, theR);
1070   endService( " GEOM_Superv_i::MakeSpherePntR" );
1071   return anObj;
1072 }
1073
1074 //=============================================================================
1075 //  MakeTorusPntVecRR:
1076 //=============================================================================
1077 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeTorusPntVecRR (GEOM::GEOM_Object_ptr thePnt,
1078                                                         GEOM::GEOM_Object_ptr theVec,
1079                                                         CORBA::Double theRMajor,
1080                                                         CORBA::Double theRMinor)
1081 {
1082   beginService( " GEOM_Superv_i::MakeTorusPntVecRR" );
1083   MESSAGE("GEOM_Superv_i::MakeTorusPntVecRR");
1084   get3DPrimOp();
1085   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeTorusPntVecRR(thePnt, theVec, theRMajor, theRMinor);
1086   endService( " GEOM_Superv_i::MakeTorusPntVecRR" );
1087   return anObj;
1088 }
1089
1090 //=============================================================================
1091 //  MakeTorusRR:
1092 //=============================================================================
1093 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeTorusRR (CORBA::Double theRMajor,
1094                                                   CORBA::Double theRMinor)
1095 {
1096   beginService( " GEOM_Superv_i::MakeTorusRR" );
1097   MESSAGE("GEOM_Superv_i::MakeTorusRR");
1098   get3DPrimOp();
1099   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeTorusRR(theRMajor, theRMinor);
1100   endService( " GEOM_Superv_i::MakeTorusRR" );
1101   return anObj;
1102 }
1103
1104 //=============================================================================
1105 //  MakeConePntVecR1R2H:
1106 //=============================================================================
1107 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeConePntVecR1R2H (GEOM::GEOM_Object_ptr thePnt,
1108                                                           GEOM::GEOM_Object_ptr theAxis,
1109                                                           CORBA::Double theR1,
1110                                                           CORBA::Double theR2,
1111                                                           CORBA::Double theHeight)
1112 {
1113   beginService( " GEOM_Superv_i::MakeConePntVecR1R2H" );
1114   MESSAGE("GEOM_Superv_i::MakeConePntVecR1R2H");
1115   get3DPrimOp();
1116   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeConePntVecR1R2H(thePnt, theAxis, theR1, theR2, theHeight);
1117   endService( " GEOM_Superv_i::MakeConePntVecR1R2H" );
1118   return anObj;
1119 }
1120
1121 //=============================================================================
1122 //  MakeConeR1R2H:
1123 //=============================================================================
1124 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeConeR1R2H (CORBA::Double theR1,
1125                                                     CORBA::Double theR2,
1126                                                     CORBA::Double theHeight)
1127 {
1128   beginService( " GEOM_Superv_i::MakeConeR1R2H" );
1129   MESSAGE("GEOM_Superv_i::MakeConeR1R2H");
1130   get3DPrimOp();
1131   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeConeR1R2H(theR1, theR2, theHeight);
1132   endService( " GEOM_Superv_i::MakeConeR1R2H" );
1133   return anObj;
1134 }
1135
1136 //=============================================================================
1137 //  MakePrismVecH:
1138 //=============================================================================
1139 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismVecH (GEOM::GEOM_Object_ptr theBase,
1140                                                     GEOM::GEOM_Object_ptr theVec,
1141                                                     CORBA::Double         theH)
1142 {
1143   beginService( " GEOM_Superv_i::MakePrismVecH" );
1144   MESSAGE("GEOM_Superv_i::MakePrismVecH");
1145   get3DPrimOp();
1146   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePrismVecH(theBase, theVec, theH);
1147   endService( " GEOM_Superv_i::MakePrismVecH" );
1148   return anObj;
1149 }
1150
1151 //=============================================================================
1152 //  MakePrismVecH2Ways:
1153 //=============================================================================
1154 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismVecH2Ways (GEOM::GEOM_Object_ptr theBase,
1155                                                          GEOM::GEOM_Object_ptr theVec,
1156                                                          CORBA::Double         theH)
1157 {
1158   beginService( " GEOM_Superv_i::MakePrismVecH2Ways" );
1159   MESSAGE("GEOM_Superv_i::MakePrismVecH2Ways");
1160   get3DPrimOp();
1161   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePrismVecH2Ways(theBase, theVec, theH);
1162   endService( " GEOM_Superv_i::MakePrismVecH2Ways" );
1163   return anObj;
1164 }
1165
1166 //=============================================================================
1167 //  MakePrismTwoPnt:
1168 //=============================================================================
1169 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismTwoPnt (GEOM::GEOM_Object_ptr theBase,
1170                                                       GEOM::GEOM_Object_ptr thePoint1,
1171                                                       GEOM::GEOM_Object_ptr thePoint2)
1172 {
1173   beginService( " GEOM_Superv_i::MakePrismTwoPnt" );
1174   MESSAGE("GEOM_Superv_i::MakePrismTwoPnt");
1175   get3DPrimOp();
1176   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePrismTwoPnt(theBase, thePoint1, thePoint2);
1177   endService( " GEOM_Superv_i::MakePrismTwoPnt" );
1178   return anObj;
1179 }
1180
1181 //=============================================================================
1182 //  MakePrismTwoPnt2Ways:
1183 //=============================================================================
1184 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismTwoPnt2Ways (GEOM::GEOM_Object_ptr theBase,
1185                                                            GEOM::GEOM_Object_ptr thePoint1,
1186                                                            GEOM::GEOM_Object_ptr thePoint2)
1187 {
1188   beginService( " GEOM_Superv_i::MakePrismTwoPnt2Ways" );
1189   MESSAGE("GEOM_Superv_i::MakePrismTwoPnt2Ways");
1190   get3DPrimOp();
1191   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePrismTwoPnt2Ways(theBase, thePoint1, thePoint2);
1192   endService( " GEOM_Superv_i::MakePrismTwoPnt2Ways" );
1193   return anObj;
1194 }
1195
1196 //=============================================================================
1197 //  MakePrismDXDYDZ:
1198 //=============================================================================
1199 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismDXDYDZ (GEOM::GEOM_Object_ptr theBase,
1200                       CORBA::Double theDX, CORBA::Double theDY, CORBA::Double theDZ)
1201 {
1202   beginService( " GEOM_Superv_i::MakePrismDXDYDZ" );
1203   MESSAGE("GEOM_Superv_i::MakePrismDXDYDZ");
1204   get3DPrimOp();
1205   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePrismDXDYDZ(theBase, theDX, theDY, theDZ);
1206   endService( " GEOM_Superv_i::MakePrismDXDYDZ" );
1207   return anObj;
1208 }
1209
1210 //=============================================================================
1211 //  MakePrismDXDYDZ:
1212 //=============================================================================
1213 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismDXDYDZ2Ways (GEOM::GEOM_Object_ptr theBase,
1214                       CORBA::Double theDX, CORBA::Double theDY, CORBA::Double theDZ)
1215 {
1216   beginService( " GEOM_Superv_i::MakePrismDXDYDZ2Ways" );
1217   MESSAGE("GEOM_Superv_i::MakePrismDXDYDZ2Ways");
1218   get3DPrimOp();
1219   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePrismDXDYDZ2Ways(theBase, theDX, theDY, theDZ);
1220   endService( " GEOM_Superv_i::MakePrismDXDYDZ2Ways" );
1221   return anObj;
1222 }
1223
1224 //=============================================================================
1225 //  MakePipe:
1226 //=============================================================================
1227 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePipe (GEOM::GEOM_Object_ptr theBase,
1228                                                GEOM::GEOM_Object_ptr thePath)
1229 {
1230   beginService( " GEOM_Superv_i::MakePipe" );
1231   MESSAGE("GEOM_Superv_i::MakePipe");
1232   get3DPrimOp();
1233   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePipe(theBase, thePath);
1234   endService( " GEOM_Superv_i::MakePipe" );
1235   return anObj;
1236 }
1237
1238 //=============================================================================
1239 //  MakeRevolutionAxisAngle:
1240 //=============================================================================
1241 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeRevolutionAxisAngle (GEOM::GEOM_Object_ptr theBase,
1242                                                               GEOM::GEOM_Object_ptr theAxis,
1243                                                               CORBA::Double theAngle)
1244 {
1245   beginService( " GEOM_Superv_i::MakeRevolutionAxisAngle" );
1246   MESSAGE("GEOM_Superv_i::MakeRevolutionAxisAngle");
1247   get3DPrimOp();
1248   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeRevolutionAxisAngle(theBase, theAxis, theAngle);
1249   endService( " GEOM_Superv_i::MakeRevolutionAxisAngle" );
1250   return anObj;
1251 }
1252
1253 //=============================================================================
1254 //  MakeRevolutionAxisAngle:
1255 //=============================================================================
1256 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeRevolutionAxisAngle2Ways (GEOM::GEOM_Object_ptr theBase,
1257                                                                    GEOM::GEOM_Object_ptr theAxis,
1258                                                                    CORBA::Double theAngle)
1259 {
1260   beginService( " GEOM_Superv_i::MakeRevolutionAxisAngle2Ways" );
1261   MESSAGE("GEOM_Superv_i::MakeRevolutionAxisAngle2Ways");
1262   get3DPrimOp();
1263   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeRevolutionAxisAngle2Ways(theBase, theAxis, theAngle);
1264   endService( " GEOM_Superv_i::MakeRevolutionAxisAngle2Ways" );
1265   return anObj;
1266 }
1267
1268 //=============================================================================
1269 //  MakeFilling:
1270 //=============================================================================
1271 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilling (GEOM::GEOM_Object_ptr theShape,
1272                                                   CORBA::Long theMinDeg,
1273                                                   CORBA::Long theMaxDeg,
1274                                                   CORBA::Double theTol2D,
1275                                                   CORBA::Double theTol3D,
1276                                                   CORBA::Long theNbIter,
1277                                                   GEOM::filling_oper_method theMethod,
1278                                                   CORBA::Boolean theApprox)
1279 {
1280   beginService( " GEOM_Superv_i::MakeFilling" );
1281   MESSAGE("GEOM_Superv_i::MakeFilling");
1282   get3DPrimOp();
1283   GEOM::GEOM_Object_ptr anObj =
1284     my3DPrimOp->MakeFilling(theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D,
1285                             theNbIter, theMethod, theApprox);
1286   endService( " GEOM_Superv_i::MakeFilling" );
1287   return anObj;
1288 }
1289
1290 //============================= BooleanOperations =============================
1291 //=============================================================================
1292 //  MakeBoolean:
1293 //=============================================================================
1294 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeBoolean (GEOM::GEOM_Object_ptr theShape1,
1295                                                   GEOM::GEOM_Object_ptr theShape2,
1296                                                   CORBA::Long theOperation)
1297 {
1298   beginService( " GEOM_Superv_i::MakeBoolean" );
1299   // theOperation indicates the operation to be done:
1300   // 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section
1301   MESSAGE("GEOM_Superv_i::MakeBoolean");
1302   getBoolOp();
1303   GEOM::GEOM_Object_ptr anObj = myBoolOp->MakeBoolean(theShape1, theShape2, theOperation);
1304   endService( " GEOM_Superv_i::MakeBoolean" );
1305   return anObj;
1306 }
1307
1308 //=============================================================================
1309 //  MakeThruSections:
1310 //=============================================================================
1311 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeThruSections(const GEOM::ListOfGO& theSeqSections,
1312                                          CORBA::Boolean theModeSolid,
1313                                          CORBA::Double thePreci,
1314                                          CORBA::Boolean theRuled)
1315 {
1316   beginService( " GEOM_Superv_i::MakeThruSections" );
1317   MESSAGE("GEOM_Superv_i::MakeThruSections");
1318   get3DPrimOp();
1319   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeThruSections(theSeqSections, theModeSolid,thePreci,theRuled);
1320   endService( " GEOM_Superv_i::MakeThruSections" );
1321   return anObj;
1322 }
1323
1324 //=============================================================================
1325 //  MakePipe:
1326 //=============================================================================
1327 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePipeWithDifferentSections
1328                      (const GEOM::ListOfGO& theBases,
1329                       const GEOM::ListOfGO& theLocations,
1330                       GEOM::GEOM_Object_ptr thePath,
1331                       CORBA::Boolean theWithContact,
1332                       CORBA::Boolean theWithCorrections)
1333 {
1334   beginService( " GEOM_Superv_i::MakePipeWithDifferentSections" );
1335   MESSAGE("GEOM_Superv_i::MakePipeWithDifferentSections");
1336   get3DPrimOp();
1337   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePipeWithDifferentSections(theBases,theLocations, thePath,theWithContact,theWithCorrections);
1338   endService( " GEOM_Superv_i::MakePipeWithDifferentSections" );
1339   return anObj;
1340 }
1341
1342
1343 //=============================================================================
1344 //  MakePipe:
1345 //=============================================================================
1346 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePipeWithShellSections
1347                    (const GEOM::ListOfGO& theBases,
1348                     const GEOM::ListOfGO& theSubBases,
1349                     const GEOM::ListOfGO& theLocations,
1350                     GEOM::GEOM_Object_ptr thePath,
1351                     CORBA::Boolean theWithContact,
1352                     CORBA::Boolean theWithCorrections)
1353 {
1354   beginService( " GEOM_Superv_i::MakePipeWithShellSections" );
1355   MESSAGE("GEOM_Superv_i::MakePipeWithShellSections");
1356   get3DPrimOp();
1357   GEOM::GEOM_Object_ptr anObj =
1358     my3DPrimOp->MakePipeWithShellSections(theBases, theSubBases,
1359                                           theLocations, thePath,
1360                                           theWithContact, theWithCorrections);
1361   endService( " GEOM_Superv_i::MakePipeWithShellSections" );
1362   return anObj;
1363 }
1364
1365
1366 //=============================================================================
1367 //  MakePipe:
1368 //=============================================================================
1369 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePipeShellsWithoutPath
1370                    (const GEOM::ListOfGO& theBases,
1371                     const GEOM::ListOfGO& theLocations)
1372 {
1373   beginService( " GEOM_Superv_i::MakePipeShellsWithoutPath" );
1374   MESSAGE("GEOM_Superv_i::MakePipeShellsWithoutPath");
1375   get3DPrimOp();
1376   GEOM::GEOM_Object_ptr anObj =
1377     my3DPrimOp->MakePipeShellsWithoutPath(theBases,theLocations);
1378   endService( " GEOM_Superv_i::MakePipeShellsWithoutPath" );
1379   return anObj;
1380 }
1381
1382
1383 //=============================================================================
1384 //  MakePipe:
1385 //=============================================================================
1386 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePipeBiNormalAlongVector
1387                                                 (GEOM::GEOM_Object_ptr theBase,
1388                                                  GEOM::GEOM_Object_ptr thePath,
1389                                                  GEOM::GEOM_Object_ptr theVec)
1390 {
1391   beginService( " GEOM_Superv_i::MakePipeBiNormalAlongVector" );
1392   MESSAGE("GEOM_Superv_i::MakePipeBiNormalAlongVector");
1393   get3DPrimOp();
1394   GEOM::GEOM_Object_ptr anObj =
1395     my3DPrimOp->MakePipeBiNormalAlongVector(theBase, thePath, theVec);
1396   endService( " GEOM_Superv_i::MakePipeBiNormalAlongVector" );
1397   return anObj;
1398 }
1399
1400
1401 //=============================================================================
1402 //  MakeFuse:
1403 //=============================================================================
1404 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFuse (GEOM::GEOM_Object_ptr theShape1,
1405                                                GEOM::GEOM_Object_ptr theShape2)
1406 {
1407   beginService( " GEOM_Superv_i::MakeFuse" );
1408   MESSAGE("GEOM_Superv_i::MakeFuse");
1409   getBoolOp();
1410   GEOM::GEOM_Object_ptr anObj = myBoolOp->MakeBoolean(theShape1, theShape2, 3);
1411   endService( " GEOM_Superv_i::MakeFuse" );
1412   return anObj;
1413 }
1414
1415 //=============================================================================
1416 //  MakePartition:
1417 //=============================================================================
1418 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePartition (GEOM::GEOM_List_ptr   theShapes,
1419                                                     GEOM::GEOM_List_ptr   theTools,
1420                                                     GEOM::GEOM_List_ptr   theKeepInside,
1421                                                     GEOM::GEOM_List_ptr   theRemoveInside,
1422                                                     CORBA::Short      theLimit,
1423                                                     CORBA::Boolean    theRemoveWebs,
1424                                                     GEOM::GEOM_List_ptr theMaterials,
1425                                                     CORBA::Short theKeepNonlimitShapes)
1426 {
1427   beginService( " GEOM_Superv_i::MakePartition" );
1428   MESSAGE("GEOM_Superv_i::MakePartition");
1429   GEOM_List_i<GEOM::ListOfGO>* aListImplS =
1430     dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theShapes, myPOA).in());
1431   GEOM_List_i<GEOM::ListOfGO>* aListImplT =
1432     dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theTools, myPOA).in());
1433   GEOM_List_i<GEOM::ListOfGO>* aListImplKI =
1434     dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theKeepInside, myPOA).in());
1435   GEOM_List_i<GEOM::ListOfGO>* aListImplRI =
1436     dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theRemoveInside, myPOA).in());
1437   GEOM_List_i<GEOM::ListOfLong>* aListImplM =
1438     dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theMaterials, myPOA).in());
1439   if (aListImplS && aListImplT && aListImplKI && aListImplRI && aListImplM) {
1440     getBoolOp();
1441     GEOM::GEOM_Object_ptr anObj =
1442       myBoolOp->MakePartition(aListImplS->GetList(), aListImplT->GetList(),
1443                               aListImplKI->GetList(), aListImplRI->GetList(),
1444                               theLimit, theRemoveWebs, aListImplM->GetList(),
1445                               theKeepNonlimitShapes);
1446     endService( " GEOM_Superv_i::MakePartition" );
1447     return anObj;
1448   }
1449   endService( " GEOM_Superv_i::MakePartition" );
1450   return NULL;
1451 }
1452
1453 //=============================================================================
1454 //  MakeHalfPartition:
1455 //=============================================================================
1456 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeHalfPartition (GEOM::GEOM_Object_ptr theShape,
1457                                                         GEOM::GEOM_Object_ptr thePlane)
1458 {
1459   beginService( " GEOM_Superv_i::MakeHalfPartition" );
1460   MESSAGE("GEOM_Superv_i::MakeHalfPartition");
1461   getBoolOp();
1462   GEOM::GEOM_Object_ptr anObj = myBoolOp->MakeHalfPartition(theShape, thePlane);
1463   endService( " GEOM_Superv_i::MakeHalfPartition" );
1464   return anObj;
1465 }
1466
1467 //============================== InsertOperations =============================
1468 //=============================================================================
1469 //  MakeCopy:
1470 //=============================================================================
1471 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCopy (GEOM::GEOM_Object_ptr theOriginal)
1472 {
1473   beginService( " GEOM_Superv_i::MakeCopy" );
1474   MESSAGE("GEOM_Superv_i::MakeCopy");
1475   getInsOp();
1476   GEOM::GEOM_Object_ptr anObj = myInsOp->MakeCopy(theOriginal);
1477   endService( " GEOM_Superv_i::MakeCopy" );
1478   return anObj;
1479 }
1480
1481 //=============================================================================
1482 //  Export:
1483 //=============================================================================
1484 void GEOM_Superv_i::Export (GEOM::GEOM_Object_ptr theObject,
1485                             const char*           theFileName,
1486                             const char*           theFormatName)
1487 {
1488   beginService( " GEOM_Superv_i::Export" );
1489   MESSAGE("GEOM_Superv_i::Export");
1490   getInsOp();
1491   myInsOp->Export(theObject, theFileName, theFormatName);
1492   endService( " GEOM_Superv_i::Export" );
1493 }
1494
1495 //=============================================================================
1496 //  Import:
1497 //=============================================================================
1498 GEOM::GEOM_Object_ptr GEOM_Superv_i::Import (const char* theFileName,
1499                                              const char* theFormatName)
1500 {
1501   beginService( " GEOM_Superv_i::Import" );
1502   MESSAGE("GEOM_Superv_i::Import");
1503   getInsOp();
1504   GEOM::GEOM_Object_ptr anObj = myInsOp->Import(theFileName, theFormatName);
1505   endService( " GEOM_Superv_i::Import" );
1506   return anObj;
1507 }
1508
1509 //=============================================================================
1510 //  ImportTranslators:
1511 //=============================================================================
1512 void GEOM_Superv_i::ImportTranslators (GEOM::string_array_out theFormats,
1513                                        GEOM::string_array_out thePatterns)
1514 {
1515   beginService( " GEOM_Superv_i::ImportTranslators" );
1516   MESSAGE("GEOM_Superv_i::ImportTranslators");
1517   getInsOp();
1518   myInsOp->ImportTranslators(theFormats, thePatterns);
1519   endService( " GEOM_Superv_i::ImportTranslators" );
1520 }
1521
1522 //=============================================================================
1523 //  ExportTranslators:
1524 //=============================================================================
1525 void GEOM_Superv_i::ExportTranslators (GEOM::string_array_out theFormats,
1526                                        GEOM::string_array_out thePatterns)
1527 {
1528   beginService( " GEOM_Superv_i::ExportTranslators" );
1529   MESSAGE("GEOM_Superv_i::ExportTranslators");
1530   getInsOp();
1531   myInsOp->ExportTranslators(theFormats, thePatterns);
1532   endService( " GEOM_Superv_i::ExportTranslators" );
1533 }
1534
1535 //============================= TransformOperations ===========================
1536 //=============================================================================
1537 //  TranslateTwoPoints:
1538 //=============================================================================
1539 GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateTwoPoints (GEOM::GEOM_Object_ptr theObject,
1540                                                          GEOM::GEOM_Object_ptr thePoint1,
1541                                                          GEOM::GEOM_Object_ptr thePoint2)
1542 {
1543   beginService( " GEOM_Superv_i::TranslateTwoPoints" );
1544   MESSAGE("GEOM_Superv_i::TranslateTwoPoints");
1545   getTransfOp();
1546   GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateTwoPoints(theObject, thePoint1, thePoint2);
1547   endService( " GEOM_Superv_i::TranslateTwoPoints" );
1548   return anObj;
1549 }
1550
1551 //=============================================================================
1552 //  TranslateTwoPointsCopy:
1553 //=============================================================================
1554 GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateTwoPointsCopy (GEOM::GEOM_Object_ptr theObject,
1555                                                              GEOM::GEOM_Object_ptr thePoint1,
1556                                                              GEOM::GEOM_Object_ptr thePoint2)
1557 {
1558   beginService( " GEOM_Superv_i::TranslateTwoPointsCopy" );
1559   MESSAGE("GEOM_Superv_i::TranslateTwoPointsCopy");
1560   getTransfOp();
1561   GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateTwoPointsCopy(theObject, thePoint1, thePoint2);
1562   endService( " GEOM_Superv_i::TranslateTwoPointsCopy" );
1563   return anObj;
1564 }
1565
1566 //=============================================================================
1567 //  TranslateDXDYDZ:
1568 //=============================================================================
1569 GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateDXDYDZ (GEOM::GEOM_Object_ptr theObject,
1570                                                       CORBA::Double theDX,
1571                                                       CORBA::Double theDY,
1572                                                       CORBA::Double theDZ)
1573 {
1574   beginService( " GEOM_Superv_i::TranslateDXDYDZ" );
1575   MESSAGE("GEOM_Superv_i::TranslateDXDYDZ");
1576   getTransfOp();
1577   GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateDXDYDZ(theObject, theDX, theDY, theDZ);
1578   endService( " GEOM_Superv_i::TranslateDXDYDZ" );
1579   return anObj;
1580 }
1581
1582 //=============================================================================
1583 //  TranslateDXDYDZCopy:
1584 //=============================================================================
1585 GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateDXDYDZCopy (GEOM::GEOM_Object_ptr theObject,
1586                                                           CORBA::Double theDX,
1587                                                           CORBA::Double theDY,
1588                                                           CORBA::Double theDZ)
1589 {
1590   beginService( " GEOM_Superv_i::TranslateDXDYDZCopy" );
1591   MESSAGE("GEOM_Superv_i::TranslateDXDYDZCopy");
1592   getTransfOp();
1593   GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ);
1594   endService( " GEOM_Superv_i::TranslateDXDYDZCopy" );
1595   return anObj;
1596 }
1597
1598 //=============================================================================
1599 //  TranslateVector:
1600 //=============================================================================
1601 GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateVector (GEOM::GEOM_Object_ptr theObject,
1602                                                       GEOM::GEOM_Object_ptr theVector)
1603 {
1604   beginService( " GEOM_Superv_i::TranslateVector" );
1605   MESSAGE("GEOM_Superv_i::TranslateVector");
1606   getTransfOp();
1607   GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateVector(theObject, theVector);
1608   endService( " GEOM_Superv_i::TranslateVector" );
1609   return anObj;
1610 }
1611
1612 //=============================================================================
1613 //  TranslateVectorCopy:
1614 //=============================================================================
1615 GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateVectorCopy (GEOM::GEOM_Object_ptr theObject,
1616                                                           GEOM::GEOM_Object_ptr theVector)
1617 {
1618   beginService( " GEOM_Superv_i::TranslateVectorCopy" );
1619   MESSAGE("GEOM_Superv_i::TranslateVectorCopy");
1620   getTransfOp();
1621   GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateVectorCopy(theObject, theVector);
1622   endService( " GEOM_Superv_i::TranslateVectorCopy" );
1623   return anObj;
1624 }
1625
1626 //=============================================================================
1627 //  TranslateVectorDistance:
1628 //=============================================================================
1629 GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateVectorDistance (GEOM::GEOM_Object_ptr theObject,
1630                                                               GEOM::GEOM_Object_ptr theVector,
1631                                                               CORBA::Double theDistance,
1632                                                               CORBA::Boolean theCopy)
1633 {
1634   beginService( " GEOM_Superv_i::TranslateVectorDistance" );
1635   MESSAGE("GEOM_Superv_i::TranslateVectorDistance");
1636   getTransfOp();
1637   GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateVectorDistance(theObject,
1638                                                                     theVector, theDistance, theCopy);
1639   endService( " GEOM_Superv_i::TranslateVectorDistance" );
1640   return anObj;
1641 }
1642
1643 //=============================================================================
1644 //  MultiTranslate1D:
1645 //=============================================================================
1646 GEOM::GEOM_Object_ptr GEOM_Superv_i::MultiTranslate1D (GEOM::GEOM_Object_ptr theObject,
1647                                                        GEOM::GEOM_Object_ptr theVector,
1648                                                        CORBA::Double theStep,
1649                                                        CORBA::Long theNbTimes)
1650 {
1651   beginService( " GEOM_Superv_i::MultiTranslate1D" );
1652   MESSAGE("GEOM_Superv_i::MultiTranslate1D");
1653   getTransfOp();
1654   GEOM::GEOM_Object_ptr anObj = myTransfOp->MultiTranslate1D(theObject, theVector, theStep, theNbTimes);
1655   endService( " GEOM_Superv_i::MultiTranslate1D" );
1656   return anObj;
1657 }
1658
1659 //=============================================================================
1660 //  MultiTranslate2D:
1661 //=============================================================================
1662 GEOM::GEOM_Object_ptr GEOM_Superv_i::MultiTranslate2D (GEOM::GEOM_Object_ptr theObject,
1663                                                        GEOM::GEOM_Object_ptr theVector1,
1664                                                        CORBA::Double theStep1,
1665                                                        CORBA::Long theNbTimes1,
1666                                                        GEOM::GEOM_Object_ptr theVector2,
1667                                                        CORBA::Double theStep2,
1668                                                        CORBA::Long theNbTimes2)
1669 {
1670   beginService( " GEOM_Superv_i::MultiTranslate2D" );
1671   MESSAGE("GEOM_Superv_i::MultiTranslate2D");
1672   getTransfOp();
1673   GEOM::GEOM_Object_ptr anObj = myTransfOp->MultiTranslate2D(theObject, theVector1, theStep1, theNbTimes1,
1674                                                              theVector2, theStep2, theNbTimes2);
1675   endService( " GEOM_Superv_i::MultiTranslate2D" );
1676   return anObj;
1677 }
1678
1679 //=============================================================================
1680 //  Rotate:
1681 //=============================================================================
1682 GEOM::GEOM_Object_ptr GEOM_Superv_i::Rotate (GEOM::GEOM_Object_ptr theObject,
1683                                              GEOM::GEOM_Object_ptr theAxis,
1684                                              CORBA::Double theAngle)
1685 {
1686   beginService( " GEOM_Superv_i::Rotate" );
1687   MESSAGE("GEOM_Superv_i::Rotate");
1688   getTransfOp();
1689   GEOM::GEOM_Object_ptr anObj = myTransfOp->Rotate(theObject, theAxis, theAngle);
1690   endService( " GEOM_Superv_i::Rotate" );
1691   return anObj;
1692 }
1693
1694 //=============================================================================
1695 //  RotateCopy:
1696 //=============================================================================
1697 GEOM::GEOM_Object_ptr GEOM_Superv_i::RotateCopy (GEOM::GEOM_Object_ptr theObject,
1698                                                  GEOM::GEOM_Object_ptr theAxis,
1699                                                  CORBA::Double theAngle)
1700 {
1701   beginService( " GEOM_Superv_i::RotateCopy" );
1702   MESSAGE("GEOM_Superv_i::RotateCopy");
1703   getTransfOp();
1704   GEOM::GEOM_Object_ptr anObj = myTransfOp->RotateCopy(theObject, theAxis, theAngle);
1705   endService( " GEOM_Superv_i::RotateCopy" );
1706   return anObj;
1707 }
1708 //=============================================================================
1709 //  RotateThreePoints:
1710 //=============================================================================
1711 GEOM::GEOM_Object_ptr GEOM_Superv_i::RotateThreePoints (GEOM::GEOM_Object_ptr theObject,
1712                                                         GEOM::GEOM_Object_ptr theCentPoint,
1713                                                         GEOM::GEOM_Object_ptr thePoint1,
1714                                                         GEOM::GEOM_Object_ptr thePoint2)
1715 {
1716   beginService( " GEOM_Superv_i::RotateThreePoints" );
1717   MESSAGE("GEOM_Superv_i::RotateThreePoints");
1718   getTransfOp();
1719   GEOM::GEOM_Object_ptr anObj = myTransfOp->RotateThreePoints(theObject, theCentPoint, thePoint1, thePoint2);
1720   endService( " GEOM_Superv_i::RotateThreePoints" );
1721   return anObj;
1722 }
1723
1724 //=============================================================================
1725 //  RotateThreePointsCopy:
1726 //=============================================================================
1727 GEOM::GEOM_Object_ptr GEOM_Superv_i::RotateThreePointsCopy (GEOM::GEOM_Object_ptr theObject,
1728                                                             GEOM::GEOM_Object_ptr theCentPoint,
1729                                                             GEOM::GEOM_Object_ptr thePoint1,
1730                                                             GEOM::GEOM_Object_ptr thePoint2)
1731 {
1732   beginService( " GEOM_Superv_i::RotateThreePointsCopy" );
1733   MESSAGE("GEOM_Superv_i::RotateThreePointsCopy");
1734   getTransfOp();
1735   GEOM::GEOM_Object_ptr anObj = myTransfOp->RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2);
1736   endService( " GEOM_Superv_i::RotateThreePointsCopy" );
1737   return anObj;
1738 }
1739
1740 //=============================================================================
1741 //  MultiRotate1D:
1742 //=============================================================================
1743 GEOM::GEOM_Object_ptr GEOM_Superv_i::MultiRotate1D (GEOM::GEOM_Object_ptr theObject,
1744                                                     GEOM::GEOM_Object_ptr theAxis,
1745                                                     CORBA::Long theNbTimes)
1746 {
1747   beginService( " GEOM_Superv_i::MultiRotate1D" );
1748   MESSAGE("GEOM_Superv_i::MultiRotate1D");
1749   getTransfOp();
1750   GEOM::GEOM_Object_ptr anObj = myTransfOp->MultiRotate1D(theObject, theAxis, theNbTimes);
1751   endService( " GEOM_Superv_i::MultiRotate1D" );
1752   return anObj;
1753 }
1754
1755 //=============================================================================
1756 //  MultiRotate2D:
1757 //=============================================================================
1758 GEOM::GEOM_Object_ptr GEOM_Superv_i::MultiRotate2D (GEOM::GEOM_Object_ptr theObject,
1759                                                     GEOM::GEOM_Object_ptr theAxis,
1760                                                     CORBA::Double theAngle,
1761                                                     CORBA::Long theNbTimes1,
1762                                                     CORBA::Double theStep,
1763                                                     CORBA::Long theNbTimes2)
1764 {
1765   beginService( " GEOM_Superv_i::MultiRotate2D" );
1766   MESSAGE("GEOM_Superv_i::MultiRotate2D");
1767   getTransfOp();
1768   GEOM::GEOM_Object_ptr anObj = myTransfOp->MultiRotate2D(theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2);
1769   endService( " GEOM_Superv_i::MultiRotate2D" );
1770   return anObj;
1771 }
1772
1773 //=============================================================================
1774 //  MirrorPlane:
1775 //=============================================================================
1776 GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPlane (GEOM::GEOM_Object_ptr theObject,
1777                                                   GEOM::GEOM_Object_ptr thePlane)
1778 {
1779   beginService( " GEOM_Superv_i::MirrorPlane" );
1780   MESSAGE("GEOM_Superv_i::MirrorPlane");
1781   getTransfOp();
1782   GEOM::GEOM_Object_ptr anObj = myTransfOp->MirrorPlane(theObject, thePlane);
1783   endService( " GEOM_Superv_i::MirrorPlane" );
1784   return anObj;
1785 }
1786
1787 //=============================================================================
1788 //  MirrorPlaneCopy:
1789 //=============================================================================
1790 GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPlaneCopy (GEOM::GEOM_Object_ptr theObject,
1791                                                       GEOM::GEOM_Object_ptr thePlane)
1792 {
1793   beginService( " GEOM_Superv_i::MirrorPlaneCopy" );
1794   MESSAGE("GEOM_Superv_i::MirrorPlaneCopy");
1795   getTransfOp();
1796   GEOM::GEOM_Object_ptr anObj = myTransfOp->MirrorPlaneCopy(theObject, thePlane);
1797   endService( " GEOM_Superv_i::MirrorPlaneCopy" );
1798   return anObj;
1799 }
1800
1801 //=============================================================================
1802 //  MirrorAxis:
1803 //=============================================================================
1804 GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorAxis (GEOM::GEOM_Object_ptr theObject,
1805                                                  GEOM::GEOM_Object_ptr theAxis)
1806 {
1807   beginService( " GEOM_Superv_i::MirrorAxis" );
1808   MESSAGE("GEOM_Superv_i::MirrorAxis");
1809   getTransfOp();
1810   GEOM::GEOM_Object_ptr anObj = myTransfOp->MirrorAxis(theObject, theAxis);
1811   endService( " GEOM_Superv_i::MirrorAxis" );
1812   return anObj;
1813 }
1814
1815 //=============================================================================
1816 //  MirrorAxisCopy:
1817 //=============================================================================
1818 GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorAxisCopy (GEOM::GEOM_Object_ptr theObject,
1819                                                      GEOM::GEOM_Object_ptr theAxis)
1820 {
1821   beginService( " GEOM_Superv_i::MirrorAxisCopy" );
1822   MESSAGE("GEOM_Superv_i::MirrorAxisCopy");
1823   getTransfOp();
1824   GEOM::GEOM_Object_ptr anObj = myTransfOp->MirrorAxisCopy(theObject, theAxis);
1825   endService( " GEOM_Superv_i::MirrorAxisCopy" );
1826   return anObj;
1827 }
1828
1829 //=============================================================================
1830 //  MirrorPoint:
1831 //=============================================================================
1832 GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPoint (GEOM::GEOM_Object_ptr theObject,
1833                                                   GEOM::GEOM_Object_ptr thePoint)
1834 {
1835   beginService( " GEOM_Superv_i::MirrorPoint" );
1836   MESSAGE("GEOM_Superv_i::MirrorPoint");
1837   getTransfOp();
1838   GEOM::GEOM_Object_ptr anObj = myTransfOp->MirrorPoint(theObject, thePoint);
1839   endService( " GEOM_Superv_i::MirrorPoint" );
1840   return anObj;
1841 }
1842
1843 //=============================================================================
1844 //  MirrorPointCopy:
1845 //=============================================================================
1846 GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPointCopy (GEOM::GEOM_Object_ptr theObject,
1847                                                       GEOM::GEOM_Object_ptr thePoint)
1848 {
1849   beginService( " GEOM_Superv_i::MirrorPoint" );
1850   MESSAGE("GEOM_Superv_i::MirrorPointCopy");
1851   getTransfOp();
1852   GEOM::GEOM_Object_ptr anObj = myTransfOp->MirrorPointCopy(theObject, thePoint);
1853   endService( " GEOM_Superv_i::MirrorPoint" );
1854   return anObj;
1855 }
1856
1857 //=============================================================================
1858 //  OffsetShape:
1859 //=============================================================================
1860 GEOM::GEOM_Object_ptr GEOM_Superv_i::OffsetShape (GEOM::GEOM_Object_ptr theObject,
1861                                                   CORBA::Double theOffset)
1862 {
1863   beginService( " GEOM_Superv_i::OffsetShape" );
1864   MESSAGE("GEOM_Superv_i::OffsetShape");
1865   getTransfOp();
1866   GEOM::GEOM_Object_ptr anObj = myTransfOp->OffsetShape(theObject, theOffset);
1867   endService( " GEOM_Superv_i::OffsetShape" );
1868   return anObj;
1869 }
1870
1871 //=============================================================================
1872 //  OffsetShapeCopy:
1873 //=============================================================================
1874 GEOM::GEOM_Object_ptr GEOM_Superv_i::OffsetShapeCopy (GEOM::GEOM_Object_ptr theObject,
1875                                                       CORBA::Double theOffset)
1876 {
1877   beginService( " GEOM_Superv_i::OffsetShapeCopy" );
1878   MESSAGE("GEOM_Superv_i::OffsetShapeCopy");
1879   getTransfOp();
1880   GEOM::GEOM_Object_ptr anObj = myTransfOp->OffsetShapeCopy(theObject, theOffset);
1881   endService( " GEOM_Superv_i::OffsetShapeCopy" );
1882   return anObj;
1883 }
1884
1885 //=============================================================================
1886 //  ScaleShape:
1887 //=============================================================================
1888 GEOM::GEOM_Object_ptr GEOM_Superv_i::ScaleShape (GEOM::GEOM_Object_ptr theObject,
1889                                                  GEOM::GEOM_Object_ptr thePoint,
1890                                                  CORBA::Double theFactor)
1891 {
1892   beginService( " GEOM_Superv_i::ScaleShape" );
1893   MESSAGE("GEOM_Superv_i::ScaleShape");
1894   getTransfOp();
1895   GEOM::GEOM_Object_ptr anObj = myTransfOp->ScaleShape(theObject, thePoint, theFactor);
1896   endService( " GEOM_Superv_i::ScaleShape" );
1897   return anObj;
1898 }
1899
1900 //=============================================================================
1901 //  ScaleShapeCopy:
1902 //=============================================================================
1903 GEOM::GEOM_Object_ptr GEOM_Superv_i::ScaleShapeCopy (GEOM::GEOM_Object_ptr theObject,
1904                                                      GEOM::GEOM_Object_ptr thePoint,
1905                                                      CORBA::Double theFactor)
1906 {
1907   beginService( " GEOM_Superv_i::ScaleShapeCopy" );
1908   MESSAGE("GEOM_Superv_i::ScaleShapeCopy");
1909   getTransfOp();
1910   GEOM::GEOM_Object_ptr anObj = myTransfOp->ScaleShapeCopy(theObject, thePoint, theFactor);
1911   endService( " GEOM_Superv_i::ScaleShapeCopy" );
1912   return anObj;
1913 }
1914
1915 //=============================================================================
1916 //  ScaleShapeAlongAxes:
1917 //=============================================================================
1918 GEOM::GEOM_Object_ptr GEOM_Superv_i::ScaleShapeAlongAxes (GEOM::GEOM_Object_ptr theObject,
1919                                                           GEOM::GEOM_Object_ptr thePoint,
1920                                                           CORBA::Double theFactorX,
1921                                                           CORBA::Double theFactorY,
1922                                                           CORBA::Double theFactorZ)
1923 {
1924   beginService( " GEOM_Superv_i::ScaleShapeAlongAxes" );
1925   MESSAGE("GEOM_Superv_i::ScaleShapeAlongAxes");
1926   getTransfOp();
1927   GEOM::GEOM_Object_ptr anObj = myTransfOp->ScaleShapeAlongAxes
1928     (theObject, thePoint, theFactorX, theFactorY, theFactorZ);
1929   endService( " GEOM_Superv_i::ScaleShapeAlongAxes" );
1930   return anObj;
1931 }
1932
1933 //=============================================================================
1934 //  ScaleShapeAlongAxesCopy:
1935 //=============================================================================
1936 GEOM::GEOM_Object_ptr GEOM_Superv_i::ScaleShapeAlongAxesCopy (GEOM::GEOM_Object_ptr theObject,
1937                                                               GEOM::GEOM_Object_ptr thePoint,
1938                                                               CORBA::Double theFactorX,
1939                                                               CORBA::Double theFactorY,
1940                                                               CORBA::Double theFactorZ)
1941 {
1942   beginService( " GEOM_Superv_i::ScaleShapeAlongAxesCopy" );
1943   MESSAGE("GEOM_Superv_i::ScaleShapeAlongAxesCopy");
1944   getTransfOp();
1945   GEOM::GEOM_Object_ptr anObj = myTransfOp->ScaleShapeAlongAxesCopy
1946     (theObject, thePoint, theFactorX, theFactorY, theFactorZ);
1947   endService( " GEOM_Superv_i::ScaleShapeAlongAxesCopy" );
1948   return anObj;
1949 }
1950
1951 //=============================================================================
1952 //  PositionShape:
1953 //=============================================================================
1954 GEOM::GEOM_Object_ptr GEOM_Superv_i::PositionShape (GEOM::GEOM_Object_ptr theObject,
1955                                                     GEOM::GEOM_Object_ptr theStartLCS,
1956                                                     GEOM::GEOM_Object_ptr theEndLCS)
1957 {
1958   beginService( " GEOM_Superv_i::PositionShape" );
1959   MESSAGE("GEOM_Superv_i::PositionShape");
1960   getTransfOp();
1961   GEOM::GEOM_Object_ptr anObj = myTransfOp->PositionShape(theObject, theStartLCS, theEndLCS);
1962   endService( " GEOM_Superv_i::PositionShape" );
1963   return anObj;
1964 }
1965
1966 //=============================================================================
1967 //  PositionShapeCopy:
1968 //=============================================================================
1969 GEOM::GEOM_Object_ptr GEOM_Superv_i::PositionShapeCopy (GEOM::GEOM_Object_ptr theObject,
1970                                                         GEOM::GEOM_Object_ptr theStartLCS,
1971                                                         GEOM::GEOM_Object_ptr theEndLCS)
1972 {
1973   beginService( " GEOM_Superv_i::PositionShapeCopy" );
1974   MESSAGE("GEOM_Superv_i::PositionShapeCopy");
1975   getTransfOp();
1976   GEOM::GEOM_Object_ptr anObj = myTransfOp->PositionShapeCopy(theObject, theStartLCS, theEndLCS);
1977   endService( " GEOM_Superv_i::PositionShapeCopy" );
1978   return anObj;
1979 }
1980
1981 //=============================================================================
1982 //  PositionAlongPath:
1983 //=============================================================================
1984 GEOM::GEOM_Object_ptr GEOM_Superv_i::PositionAlongPath (GEOM::GEOM_Object_ptr theObject,
1985                                                         GEOM::GEOM_Object_ptr thePath,
1986                                                         CORBA::Double         theDistance,
1987                                                         CORBA::Boolean        theCopy,
1988                                                         CORBA::Boolean        theReverse)
1989 {
1990   beginService( " GEOM_Superv_i::PositionAlongPath" );
1991   MESSAGE("GEOM_Superv_i::PositionAlongPath");
1992   getTransfOp();
1993   GEOM::GEOM_Object_ptr anObj = myTransfOp->PositionAlongPath(theObject, thePath, theDistance, theCopy, theReverse);
1994   endService( " GEOM_Superv_i::PositionAlongPath" );
1995   return anObj;
1996 }
1997
1998 //=============================== ShapesOperations ============================
1999 //=============================================================================
2000 //  Make:
2001 //=============================================================================
2002 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeEdge (GEOM::GEOM_Object_ptr thePnt1,
2003                                                GEOM::GEOM_Object_ptr thePnt2)
2004 {
2005   beginService( " GEOM_Superv_i::MakeEdge" );
2006   MESSAGE("GEOM_Superv_i::MakeEdge");
2007   getShapesOp();
2008   GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeEdge(thePnt1, thePnt2);
2009   endService( " GEOM_Superv_i::MakeEdge" );
2010   return anObj;
2011 }
2012
2013 //=============================================================================
2014 //  MakeWire:
2015 //=============================================================================
2016 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeWire (GEOM::GEOM_List_ptr theEdgesAndWires,
2017                                                CORBA::Double       theTolerance)
2018 {
2019   beginService( " GEOM_Superv_i::MakeWire" );
2020   MESSAGE("GEOM_Superv_i::MakeWire");
2021   if (GEOM_List_i<GEOM::ListOfGO>* aListImplEW =
2022       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theEdgesAndWires, myPOA).in())) {
2023     getShapesOp();
2024     GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeWire(aListImplEW->GetList(), theTolerance);
2025     endService( " GEOM_Superv_i::MakeWire" );
2026     return anObj;
2027   }
2028   endService( " GEOM_Superv_i::MakeWire" );
2029   return NULL;
2030 }
2031
2032 //=============================================================================
2033 //  MakeFace:
2034 //=============================================================================
2035 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFace (GEOM::GEOM_Object_ptr theWire,
2036                                                CORBA::Boolean isPlanarWanted)
2037 {
2038   beginService( " GEOM_Superv_i::MakeFace" );
2039   MESSAGE("GEOM_Superv_i::MakeFace");
2040   getShapesOp();
2041   GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeFace(theWire, isPlanarWanted);
2042   endService( " GEOM_Superv_i::MakeFace" );
2043   return anObj;
2044 }
2045
2046 //=============================================================================
2047 //  MakeFaceWires:
2048 //=============================================================================
2049 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFaceWires (GEOM::GEOM_List_ptr theWires,
2050                                                     CORBA::Boolean isPlanarWanted)
2051 {
2052   beginService( " GEOM_Superv_i::MakeFaceWires" );
2053   MESSAGE("GEOM_Superv_i::MakeFaceWires");
2054   if (GEOM_List_i<GEOM::ListOfGO>* aListImplW =
2055       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theWires, myPOA).in())) {
2056     getShapesOp();
2057     GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeFaceWires(aListImplW->GetList(), isPlanarWanted);
2058     endService( " GEOM_Superv_i::MakeFaceWires" );
2059     return anObj;
2060   }
2061   endService( " GEOM_Superv_i::MakeFaceWires" );
2062   return NULL;
2063 }
2064
2065 //=============================================================================
2066 //  MakeShell:
2067 //=============================================================================
2068 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeShell (GEOM::GEOM_List_ptr theFacesAndShells)
2069 {
2070   beginService( " GEOM_Superv_i::MakeShell" );
2071   MESSAGE("GEOM_Superv_i::MakeShell");
2072   if (GEOM_List_i<GEOM::ListOfGO>* aListImplFS =
2073       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theFacesAndShells, myPOA).in())) {
2074     getShapesOp();
2075     GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeShell(aListImplFS->GetList());
2076     endService( " GEOM_Superv_i::MakeShell" );
2077     return anObj;
2078   }
2079   endService( " GEOM_Superv_i::MakeShell" );
2080   return NULL;
2081 }
2082
2083 //=============================================================================
2084 //  MakeSolidShell:
2085 //=============================================================================
2086 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSolidShell (GEOM::GEOM_Object_ptr theShell)
2087 {
2088   beginService( " GEOM_Superv_i::MakeSolidShell" );
2089   MESSAGE("GEOM_Superv_i::MakeSolidShell");
2090   getShapesOp();
2091   GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeSolidShell(theShell);
2092   endService( " GEOM_Superv_i::MakeSolidShell" );
2093   return anObj;
2094 }
2095
2096 //=============================================================================
2097 //  MakeSolidShells:
2098 //=============================================================================
2099 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSolidShells (GEOM::GEOM_List_ptr theShells)
2100 {
2101   beginService( " GEOM_Superv_i::MakeSolidShells" );
2102   MESSAGE("GEOM_Superv_i::MakeSolidShells");
2103   if (GEOM_List_i<GEOM::ListOfGO>* aListImplS =
2104       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theShells, myPOA).in())) {
2105     getShapesOp();
2106     GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeSolidShells(aListImplS->GetList());
2107     endService( " GEOM_Superv_i::MakeSolidShells" );
2108     return anObj;
2109   }
2110   endService( " GEOM_Superv_i::MakeSolidShells" );
2111   return NULL;
2112 }
2113
2114 //=============================================================================
2115 //  MakeCompound:
2116 //=============================================================================
2117 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCompound (GEOM::GEOM_List_ptr theShapes)
2118 {
2119   beginService( " GEOM_Superv_i::MakeCompound" );
2120   MESSAGE("GEOM_Superv_i::MakeCompound");
2121   if (GEOM_List_i<GEOM::ListOfGO>* aListImpl =
2122       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theShapes, myPOA).in())) {
2123     getShapesOp();
2124     GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeCompound(aListImpl->GetList());
2125     endService( " GEOM_Superv_i::MakeCompound" );
2126     return anObj;
2127   }
2128   endService( " GEOM_Superv_i::MakeCompound" );
2129   return NULL;
2130 }
2131
2132 //=============================================================================
2133 //  MakeGlueFaces:
2134 //=============================================================================
2135 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeGlueFaces (GEOM::GEOM_Object_ptr theShape,
2136                                                     CORBA::Double   theTolerance,
2137                                                     CORBA::Boolean doKeepNonSolids)
2138 {
2139   beginService( " GEOM_Superv_i::MakeGlueFaces" );
2140   MESSAGE("GEOM_Superv_i::MakeGlueFaces");
2141   getShapesOp();
2142   GEOM::GEOM_Object_ptr anObj =
2143     myShapesOp->MakeGlueFaces(theShape, theTolerance, doKeepNonSolids);
2144   endService( " GEOM_Superv_i::MakeGlueFaces" );
2145   return anObj;
2146 }
2147
2148 //=============================================================================
2149 //  GetGlueFaces:
2150 //=============================================================================
2151 GEOM::GEOM_List_ptr GEOM_Superv_i::GetGlueFaces (GEOM::GEOM_Object_ptr theShape,
2152                                                  CORBA::Double theTolerance)
2153 {
2154   beginService( " GEOM_Superv_i::GetGlueFaces" );
2155   MESSAGE("GEOM_Superv_i::GetGlueFaces");
2156   getShapesOp();
2157   GEOM::ListOfGO* aList = myShapesOp->GetGlueFaces(theShape, theTolerance);
2158   GEOM_List_i<GEOM::ListOfGO>* aListPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aList));
2159   MESSAGE(" List of "<<aListPtr->GetList().length()<<" element(s)");
2160   endService( " GEOM_Superv_i::GetGlueFaces" );
2161   return aListPtr->_this();
2162 }
2163
2164 //=============================================================================
2165 //  MakeGlueFacesByList:
2166 //=============================================================================
2167 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeGlueFacesByList (GEOM::GEOM_Object_ptr theShape,
2168                                                           CORBA::Double theTolerance,
2169                                                           const GEOM::ListOfGO& theFaces,
2170                                                           CORBA::Boolean doKeepNonSolids)
2171 {
2172   beginService( " GEOM_Superv_i::MakeGlueFacesByList" );
2173   MESSAGE("GEOM_Superv_i::MakeGlueFacesByList");
2174   getShapesOp();
2175   GEOM::GEOM_Object_ptr anObj =
2176     myShapesOp->MakeGlueFacesByList(theShape, theTolerance, theFaces, doKeepNonSolids);
2177   endService( " GEOM_Superv_i::MakeGlueFacesByList" );
2178   return anObj;
2179 }
2180
2181 //=============================================================================
2182 //  MakeExplode:
2183 //=============================================================================
2184 GEOM::GEOM_List_ptr GEOM_Superv_i::MakeExplode (GEOM::GEOM_Object_ptr theShape,
2185                                                     CORBA::Long theShapeType,
2186                                                     CORBA::Boolean isSorted)
2187 {
2188   beginService( " GEOM_Superv_i::MakeExplode" );
2189   MESSAGE("GEOM_Superv_i::MakeExplode");
2190   getShapesOp();
2191
2192   GEOM::ListOfGO* aList = myShapesOp->MakeExplode(theShape, theShapeType, isSorted);
2193   GEOM_List_i<GEOM::ListOfGO>* aListPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aList));
2194   MESSAGE(" List of "<<aListPtr->GetList().length()<<" element(s)");
2195   endService( " GEOM_Superv_i::MakeExplode" );
2196   return aListPtr->_this();
2197 }
2198
2199 //=============================================================================
2200 //  NumberOfFaces:
2201 //=============================================================================
2202 CORBA::Long GEOM_Superv_i::NumberOfFaces (GEOM::GEOM_Object_ptr theShape)
2203 {
2204   beginService( " GEOM_Superv_i::NumberOfFaces" );
2205   MESSAGE("GEOM_Superv_i::NumberOfFaces");
2206   getShapesOp();
2207   CORBA::Long aRes = myShapesOp->NumberOfFaces(theShape);
2208   endService( " GEOM_Superv_i::NumberOfFaces" );
2209   return aRes;
2210 }
2211
2212 //=============================================================================
2213 //  NumberOfEdges:
2214 //=============================================================================
2215 CORBA::Long GEOM_Superv_i::NumberOfEdges (GEOM::GEOM_Object_ptr theShape)
2216 {
2217   beginService( " GEOM_Superv_i::NumberOfEdges" );
2218   MESSAGE("GEOM_Superv_i::NumberOfEdges");
2219   getShapesOp();
2220   CORBA::Long aRes = myShapesOp->NumberOfEdges(theShape);
2221   endService( " GEOM_Superv_i::NumberOfEdges" );
2222   return aRes;
2223 }
2224
2225
2226 //=============================================================================
2227 //  ChangeOrientation:
2228 //=============================================================================
2229 GEOM::GEOM_Object_ptr GEOM_Superv_i::ChangeOrientation (GEOM::GEOM_Object_ptr theShape)
2230 {
2231   beginService( " GEOM_Superv_i::ChangeOrientation" );
2232   MESSAGE("GEOM_Superv_i::ChangeOrientation");
2233   getShapesOp();
2234   GEOM::GEOM_Object_ptr anObj = myShapesOp->ChangeOrientation(theShape);
2235   endService( " GEOM_Superv_i::ChangeOrientation" );
2236   return anObj;
2237 }
2238
2239
2240 //=============================================================================
2241 //  GetShapesOnShape:
2242 //=============================================================================
2243 GEOM::GEOM_List_ptr GEOM_Superv_i::GetShapesOnShape
2244                                           (GEOM::GEOM_Object_ptr theCheckShape,
2245                                            GEOM::GEOM_Object_ptr theShape,
2246                                            CORBA::Short theShapeType,
2247                                            GEOM::shape_state theState)
2248 {
2249   beginService( " GEOM_Superv_i::GetShapesOnShape" );
2250   MESSAGE("GEOM_Superv_i::GetShapesOnShape");
2251   getShapesOp();
2252   GEOM::ListOfGO* aList =
2253     myShapesOp->GetShapesOnShape(theCheckShape, theShape, theShapeType, theState);
2254   GEOM_List_i<GEOM::ListOfGO>* aListPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aList));
2255   MESSAGE(" List of "<<aListPtr->GetList().length()<<" element(s)");
2256   endService( " GEOM_Superv_i::GetShapesOnShape" );
2257   return aListPtr->_this();
2258 }
2259
2260
2261 //=============================================================================
2262 //  GetShapesOnShapeAsCompound:
2263 //=============================================================================
2264 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetShapesOnShapeAsCompound
2265                                           (GEOM::GEOM_Object_ptr theCheckShape,
2266                                            GEOM::GEOM_Object_ptr theShape,
2267                                            CORBA::Short theShapeType,
2268                                            GEOM::shape_state theState)
2269 {
2270   beginService( " GEOM_Superv_i::GetShapesOnShapeAsCompound" );
2271   MESSAGE("GEOM_Superv_i::GetShapesOnShapeAsCompound");
2272   getShapesOp();
2273   GEOM::GEOM_Object_ptr anObj =
2274     myShapesOp->GetShapesOnShapeAsCompound(theCheckShape, theShape, theShapeType, theState);
2275   endService( " GEOM_Superv_i::GetShapesOnShapeAsCompound" );
2276   return anObj;
2277 }
2278
2279
2280 //=============================== BlocksOperations ============================
2281 //=============================================================================
2282 //  MakeQuad4Vertices:
2283 //=============================================================================
2284 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeQuad4Vertices (GEOM::GEOM_Object_ptr thePnt1,
2285                                                         GEOM::GEOM_Object_ptr thePnt2,
2286                                                         GEOM::GEOM_Object_ptr thePnt3,
2287                                                         GEOM::GEOM_Object_ptr thePnt4)
2288 {
2289   beginService( " GEOM_Superv_i::MakeQuad4Vertices" );
2290   MESSAGE("GEOM_Superv_i::MakeQuad4Vertices");
2291   getBlocksOp();
2292   GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeQuad4Vertices(thePnt1, thePnt2, thePnt3, thePnt4);
2293   endService( " GEOM_Superv_i::MakeQuad4Vertices" );
2294   return anObj;
2295 }
2296
2297 //=============================================================================
2298 //  MakeQuad:
2299 //=============================================================================
2300 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeQuad (GEOM::GEOM_Object_ptr theEdge1,
2301                                                GEOM::GEOM_Object_ptr theEdge2,
2302                                                GEOM::GEOM_Object_ptr theEdge3,
2303                                                GEOM::GEOM_Object_ptr theEdge4)
2304 {
2305   beginService( " GEOM_Superv_i::MakeQuad" );
2306   MESSAGE("GEOM_Superv_i::MakeQuad");
2307   getBlocksOp();
2308   GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeQuad(theEdge1, theEdge2, theEdge3, theEdge4);
2309   endService( " GEOM_Superv_i::MakeQuad" );
2310   return anObj;
2311 }
2312
2313 //=============================================================================
2314 //  MakeQuad2Edges:
2315 //=============================================================================
2316 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeQuad2Edges (GEOM::GEOM_Object_ptr theEdge1,
2317                                                      GEOM::GEOM_Object_ptr theEdge2)
2318 {
2319   beginService( " GEOM_Superv_i::MakeQuad2Edges" );
2320   MESSAGE("GEOM_Superv_i::MakeQuad2Edges");
2321   getBlocksOp();
2322   GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeQuad2Edges(theEdge1, theEdge2);
2323   endService( " GEOM_Superv_i::MakeQuad2Edges" );
2324   return anObj;
2325 }
2326
2327 //=============================================================================
2328 //  MakeHexa:
2329 //=============================================================================
2330 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeHexa (GEOM::GEOM_Object_ptr theFace1,
2331                                                GEOM::GEOM_Object_ptr theFace2,
2332                                                GEOM::GEOM_Object_ptr theFace3,
2333                                                GEOM::GEOM_Object_ptr theFace4,
2334                                                GEOM::GEOM_Object_ptr theFace5,
2335                                                GEOM::GEOM_Object_ptr theFace6)
2336 {
2337   beginService( " GEOM_Superv_i::MakeHexa" );
2338   MESSAGE("GEOM_Superv_i::MakeHexa");
2339   getBlocksOp();
2340   GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeHexa(theFace1, theFace2, theFace3, theFace4, theFace5, theFace6);
2341   endService( " GEOM_Superv_i::MakeHexa" );
2342   return anObj;
2343 }
2344
2345 //=============================================================================
2346 //  MakeHexa2Faces:
2347 //=============================================================================
2348 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeHexa2Faces (GEOM::GEOM_Object_ptr theFace1,
2349                                                      GEOM::GEOM_Object_ptr theFace2)
2350 {
2351   beginService( " GEOM_Superv_i::MakeHexa2Faces" );
2352   MESSAGE("GEOM_Superv_i::MakeHexa2Faces");
2353   getBlocksOp();
2354   GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeHexa2Faces(theFace1, theFace2);
2355   endService( " GEOM_Superv_i::MakeHexa2Faces" );
2356   return anObj;
2357 }
2358
2359 //=============================================================================
2360 //  GetPoint:
2361 //=============================================================================
2362 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetPoint (GEOM::GEOM_Object_ptr theShape,
2363                                                CORBA::Double   theX,
2364                                                CORBA::Double   theY,
2365                                                CORBA::Double   theZ,
2366                                                CORBA::Double   theEpsilon)
2367 {
2368   beginService( " GEOM_Superv_i::GetPoint" );
2369   MESSAGE("GEOM_Superv_i::GetPoint");
2370   getBlocksOp();
2371   GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetPoint(theShape, theX, theY, theZ, theEpsilon);
2372   endService( " GEOM_Superv_i::GetPoint" );
2373   return anObj;
2374 }
2375
2376 //=============================================================================
2377 //  GetEdge:
2378 //=============================================================================
2379 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetEdge (GEOM::GEOM_Object_ptr theShape,
2380                                               GEOM::GEOM_Object_ptr thePoint1,
2381                                               GEOM::GEOM_Object_ptr thePoint2)
2382 {
2383   beginService( " GEOM_Superv_i::GetEdge" );
2384   MESSAGE("GEOM_Superv_i::GetEdge");
2385   getBlocksOp();
2386   GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetEdge(theShape, thePoint1, thePoint2);
2387   endService( " GEOM_Superv_i::GetEdge" );
2388   return anObj;
2389 }
2390
2391 //=============================================================================
2392 //  GetEdgeNearPoint:
2393 //=============================================================================
2394 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetEdgeNearPoint (GEOM::GEOM_Object_ptr theShape,
2395                                                        GEOM::GEOM_Object_ptr thePoint)
2396 {
2397   beginService( " GEOM_Superv_i::GetEdgeNearPoint" );
2398   MESSAGE("GEOM_Superv_i::GetEdgeNearPoint");
2399   getBlocksOp();
2400   GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetEdgeNearPoint(theShape, thePoint);
2401   endService( " GEOM_Superv_i::GetEdgeNearPoint" );
2402   return anObj;
2403 }
2404
2405 //=============================================================================
2406 //  GetFaceByPoints:
2407 //=============================================================================
2408 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetFaceByPoints (GEOM::GEOM_Object_ptr theShape,
2409                                                       GEOM::GEOM_Object_ptr thePoint1,
2410                                                       GEOM::GEOM_Object_ptr thePoint2,
2411                                                       GEOM::GEOM_Object_ptr thePoint3,
2412                                                       GEOM::GEOM_Object_ptr thePoint4)
2413 {
2414   beginService( " GEOM_Superv_i::GetFaceByPoints" );
2415   MESSAGE("GEOM_Superv_i::GetFaceByPoints");
2416   getBlocksOp();
2417   GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetFaceByPoints(theShape, thePoint1, thePoint2, thePoint3, thePoint4);
2418   endService( " GEOM_Superv_i::GetFaceByPoints" );
2419   return anObj;
2420 }
2421
2422 //=============================================================================
2423 //  GetFaceByEdges:
2424 //=============================================================================
2425 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetFaceByEdges (GEOM::GEOM_Object_ptr theShape,
2426                                                      GEOM::GEOM_Object_ptr theEdge1,
2427                                                      GEOM::GEOM_Object_ptr theEdge2)
2428 {
2429   beginService( " GEOM_Superv_i::GetFaceByEdges" );
2430   MESSAGE("GEOM_Superv_i::GetFaceByEdges");
2431   getBlocksOp();
2432   GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetFaceByEdges(theShape, theEdge1, theEdge2);
2433   endService( " GEOM_Superv_i::GetFaceByEdges" );
2434   return anObj;
2435 }
2436
2437 //=============================================================================
2438 //  GetOppositeFace:
2439 //=============================================================================
2440 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetOppositeFace (GEOM::GEOM_Object_ptr theBlock,
2441                                                       GEOM::GEOM_Object_ptr theFace)
2442 {
2443   beginService( " GEOM_Superv_i::GetOppositeFace" );
2444   MESSAGE("GEOM_Superv_i::GetOppositeFace");
2445   getBlocksOp();
2446   GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetOppositeFace(theBlock, theFace);
2447   endService( " GEOM_Superv_i::GetOppositeFace" );
2448   return anObj;
2449 }
2450
2451 //=============================================================================
2452 //  GetFaceNearPoint:
2453 //=============================================================================
2454 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetFaceNearPoint (GEOM::GEOM_Object_ptr theShape,
2455                                                        GEOM::GEOM_Object_ptr thePoint)
2456 {
2457   beginService( " GEOM_Superv_i::GetFaceNearPoint" );
2458   MESSAGE("GEOM_Superv_i::GetFaceNearPoint");
2459   getBlocksOp();
2460   GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetFaceNearPoint(theShape, thePoint);
2461   endService( " GEOM_Superv_i::GetFaceNearPoint" );
2462   return anObj;
2463 }
2464
2465 //=============================================================================
2466 //  GetFaceByNormale:
2467 //=============================================================================
2468 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetFaceByNormale (GEOM::GEOM_Object_ptr theBlock,
2469                                                        GEOM::GEOM_Object_ptr theVector)
2470 {
2471   beginService( " GEOM_Superv_i::GetFaceByNormale" );
2472   MESSAGE("GEOM_Superv_i::GetFaceByNormale");
2473   getBlocksOp();
2474   GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetFaceByNormale(theBlock, theVector);
2475   endService( " GEOM_Superv_i::GetFaceByNormale" );
2476   return anObj;
2477 }
2478
2479 //=============================================================================
2480 //  IsCompoundOfBlocks:
2481 //=============================================================================
2482 CORBA::Boolean GEOM_Superv_i::IsCompoundOfBlocks (GEOM::GEOM_Object_ptr theCompound,
2483                                                   CORBA::Long     theMinNbFaces,
2484                                                   CORBA::Long     theMaxNbFaces,
2485                                                   CORBA::Long&          theNbBlocks)
2486 {
2487   beginService( " GEOM_Superv_i::IsCompoundOfBlocks" );
2488   MESSAGE("GEOM_Superv_i::IsCompoundOfBlocks");
2489   getBlocksOp();
2490   CORBA::Boolean aRes = myBlocksOp->IsCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces, theNbBlocks);
2491   endService( " GEOM_Superv_i::IsCompoundOfBlocks" );
2492   return aRes;
2493 }
2494
2495 //=============================================================================
2496 //  CheckCompoundOfBlocks:
2497 //=============================================================================
2498 CORBA::Boolean GEOM_Superv_i::CheckCompoundOfBlocks
2499 (GEOM::GEOM_Object_ptr theCompound,
2500  GEOM::GEOM_IBlocksOperations::BCErrors_out theErrors)
2501 {
2502   beginService( " GEOM_Superv_i::CheckCompoundOfBlocks" );
2503   MESSAGE("GEOM_Superv_i::CheckCompoundOfBlocks");
2504   getBlocksOp();
2505   CORBA::Boolean aRes = myBlocksOp->CheckCompoundOfBlocks(theCompound, theErrors);
2506   endService( " GEOM_Superv_i::CheckCompoundOfBlocks" );
2507   return aRes;
2508 }
2509
2510 //=============================================================================
2511 //  PrintBCErrors:
2512 //=============================================================================
2513 char* GEOM_Superv_i::PrintBCErrors (GEOM::GEOM_Object_ptr theCompound,
2514                                     const GEOM::GEOM_IBlocksOperations::BCErrors& theErrors)
2515 {
2516   beginService( " GEOM_Superv_i::PrintBCErrors" );
2517   MESSAGE("GEOM_Superv_i::PrintBCErrors");
2518   getBlocksOp();
2519   char* anErrors = myBlocksOp->PrintBCErrors(theCompound, theErrors);
2520   endService( " GEOM_Superv_i::PrintBCErrors" );
2521   return anErrors;
2522 }
2523
2524 //=============================================================================
2525 //  ExplodeCompoundOfBlocks:
2526 //=============================================================================
2527 GEOM::GEOM_List_ptr GEOM_Superv_i::ExplodeCompoundOfBlocks (GEOM::GEOM_Object_ptr theCompound,
2528                                                                 CORBA::Long     theMinNbFaces,
2529                                                                 CORBA::Long     theMaxNbFaces)
2530 {
2531   beginService( " GEOM_Superv_i::ExplodeCompoundOfBlocks" );
2532   MESSAGE("GEOM_Superv_i::ExplodeCompoundOfBlocks");
2533   getBlocksOp();
2534   GEOM::ListOfGO* aBlocks = myBlocksOp->ExplodeCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces);
2535   GEOM_List_i<GEOM::ListOfGO>* aListPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aBlocks));
2536   endService( " GEOM_Superv_i::ExplodeCompoundOfBlocks" );
2537   return aListPtr->_this();
2538 }
2539
2540 //=============================================================================
2541 //  GetBlockNearPoint:
2542 //=============================================================================
2543 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetBlockNearPoint (GEOM::GEOM_Object_ptr theCompound,
2544                                                         GEOM::GEOM_Object_ptr thePoint)
2545 {
2546   beginService( " GEOM_Superv_i::GetBlockNearPoint" );
2547   MESSAGE("GEOM_Superv_i::GetBlockNearPoint");
2548   getBlocksOp();
2549   GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetBlockNearPoint(theCompound, thePoint);
2550   endService( " GEOM_Superv_i::GetBlockNearPoint" );
2551   return anObj;
2552 }
2553
2554 //=============================================================================
2555 //  GetBlockByParts:
2556 //=============================================================================
2557 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetBlockByParts (GEOM::GEOM_Object_ptr theCompound,
2558                                                       GEOM::GEOM_List_ptr theParts)
2559 {
2560   beginService( " GEOM_Superv_i::GetBlockByParts" );
2561   MESSAGE("GEOM_Superv_i::GetBlockByParts");
2562   if (GEOM_List_i<GEOM::ListOfGO>* aListImplP =
2563       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theParts, myPOA).in())) {
2564     getBlocksOp();
2565     GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetBlockByParts(theCompound, aListImplP->GetList());
2566     endService( " GEOM_Superv_i::GetBlockByParts" );
2567     return anObj;
2568   }
2569   endService( " GEOM_Superv_i::GetBlockByParts" );
2570   return NULL;
2571 }
2572
2573 //=============================================================================
2574 //  GetBlocksByParts:
2575 //=============================================================================
2576 GEOM::GEOM_List_ptr GEOM_Superv_i::GetBlocksByParts (GEOM::GEOM_Object_ptr theCompound,
2577                                                          GEOM::GEOM_List_ptr theParts)
2578 {
2579   beginService( " GEOM_Superv_i::GetBlocksByParts" );
2580   MESSAGE("GEOM_Superv_i::GetBlocksByParts");
2581   if (GEOM_List_i<GEOM::ListOfGO>* aListImplP =
2582       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theParts, myPOA).in())) {
2583     getBlocksOp();
2584
2585     GEOM::ListOfGO* aBlocks = myBlocksOp->GetBlocksByParts(theCompound, aListImplP->GetList());
2586     GEOM_List_i<GEOM::ListOfGO>* aListPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aBlocks));
2587     endService( " GEOM_Superv_i::GetBlocksByParts" );
2588     return aListPtr->_this();
2589   }
2590   endService( " GEOM_Superv_i::GetBlocksByParts" );
2591   return NULL;
2592 }
2593
2594 //=============================================================================
2595 //  MakeMultiTransformation1D:
2596 //=============================================================================
2597 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeMultiTransformation1D (GEOM::GEOM_Object_ptr theBlock,
2598                                                                 CORBA::Long     theDirFace1,
2599                                                                 CORBA::Long     theDirFace2,
2600                                                                 CORBA::Long     theNbTimes)
2601 {
2602   beginService( " GEOM_Superv_i::MakeMultiTransformation1D" );
2603   MESSAGE("GEOM_Superv_i::MakeMultiTransformation1D");
2604   getBlocksOp();
2605   GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeMultiTransformation1D(theBlock, theDirFace1, theDirFace2, theNbTimes);
2606   endService( " GEOM_Superv_i::MakeMultiTransformation1D" );
2607   return anObj;
2608 }
2609
2610 //=============================================================================
2611 //  MakeMultiTransformation2D:
2612 //=============================================================================
2613 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeMultiTransformation2D
2614 (GEOM::GEOM_Object_ptr theBlock,
2615  CORBA::Long     theDirFace1U,
2616  CORBA::Long     theDirFace2U,
2617  CORBA::Long     theNbTimesU,
2618  CORBA::Long     theDirFace1V,
2619  CORBA::Long     theDirFace2V,
2620  CORBA::Long     theNbTimesV)
2621 {
2622   beginService( " GEOM_Superv_i::MakeMultiTransformation2D" );
2623   MESSAGE("GEOM_Superv_i::MakeMultiTransformation2D");
2624   getBlocksOp();
2625   GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeMultiTransformation2D(theBlock,
2626                                                                       theDirFace1U, theDirFace2U, theNbTimesU,
2627                                                                       theDirFace1V, theDirFace2V, theNbTimesV);
2628   endService( " GEOM_Superv_i::MakeMultiTransformation2D" );
2629   return anObj;
2630 }
2631
2632 //=============================== CurvesOperations ============================
2633 //=============================================================================
2634 //  MakeCirclePntVecR:
2635 //=============================================================================
2636 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCirclePntVecR (GEOM::GEOM_Object_ptr theCenter,
2637                                                         GEOM::GEOM_Object_ptr theVector,
2638                                                         CORBA::Double theR)
2639 {
2640   beginService( " GEOM_Superv_i::MakeCirclePntVecR" );
2641   MESSAGE("GEOM_Superv_i::MakeCirclePntVecR");
2642   getCurvesOp();
2643   GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeCirclePntVecR(theCenter, theVector, theR);
2644   endService( " GEOM_Superv_i::MakeCirclePntVecR" );
2645   return anObj;
2646 }
2647
2648 //=============================================================================
2649 //  MakeCircleThreePnt:
2650 //=============================================================================
2651 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCircleThreePnt (GEOM::GEOM_Object_ptr thePnt1,
2652                                                          GEOM::GEOM_Object_ptr thePnt2,
2653                                                          GEOM::GEOM_Object_ptr thePnt3)
2654 {
2655   beginService( " GEOM_Superv_i::MakeCircleThreePnt" );
2656   MESSAGE("GEOM_Superv_i::MakeCircleThreePnt");
2657   getCurvesOp();
2658   GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeCircleThreePnt(thePnt1, thePnt2, thePnt3);
2659   endService( " GEOM_Superv_i::MakeCircleThreePnt" );
2660   return anObj;
2661 }
2662 //=============================================================================
2663 //  MakeCircleCenter2Pnt:
2664 //=============================================================================
2665 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCircleCenter2Pnt (GEOM::GEOM_Object_ptr thePnt1,
2666                                                              GEOM::GEOM_Object_ptr thePnt2,
2667                                                            GEOM::GEOM_Object_ptr thePnt3)
2668 {
2669   beginService( " GEOM_Superv_i::MakeCircleCenter2Pnt" );
2670   MESSAGE("GEOM_Superv_i::MakeCircleCenter2Pnt");
2671   getCurvesOp();
2672   GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeCircleCenter2Pnt(thePnt1, thePnt2, thePnt3);
2673   endService( " GEOM_Superv_i::MakeCircleCenter2Pnt" );
2674   return anObj;
2675 }
2676
2677 //=============================================================================
2678 //  MakeEllipse:
2679 //=============================================================================
2680 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeEllipse (GEOM::GEOM_Object_ptr theCenter,
2681                                                   GEOM::GEOM_Object_ptr theVector,
2682                                                   CORBA::Double theRMajor,
2683                                                   CORBA::Double theRMinor)
2684 {
2685   beginService( " GEOM_Superv_i::MakeEllipse" );
2686   MESSAGE("GEOM_Superv_i::MakeEllipse");
2687   getCurvesOp();
2688   GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeEllipse(theCenter, theVector, theRMajor, theRMinor);
2689   endService( " GEOM_Superv_i::MakeEllipse" );
2690   return anObj;
2691 }
2692
2693 //=============================================================================
2694 //  MakeEllipseVec:
2695 //=============================================================================
2696 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeEllipseVec (GEOM::GEOM_Object_ptr theCenter,
2697                                                      GEOM::GEOM_Object_ptr theVector,
2698                                                      CORBA::Double theRMajor,
2699                                                      CORBA::Double theRMinor,
2700                                                      GEOM::GEOM_Object_ptr theVectorMajor)
2701 {
2702   beginService( " GEOM_Superv_i::MakeEllipseVec" );
2703   MESSAGE("GEOM_Superv_i::MakeEllipseVec");
2704   getCurvesOp();
2705   GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeEllipseVec(theCenter, theVector, theRMajor, theRMinor, theVectorMajor);
2706   endService( " GEOM_Superv_i::MakeEllipseVec" );
2707   return anObj;
2708 }
2709
2710 //=============================================================================
2711 //  MakeArc:
2712 //=============================================================================
2713 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeArc (GEOM::GEOM_Object_ptr thePnt1,
2714                                               GEOM::GEOM_Object_ptr thePnt2,
2715                                               GEOM::GEOM_Object_ptr thePnt3)
2716 {
2717   beginService( " GEOM_Superv_i::MakeArc" );
2718   MESSAGE("GEOM_Superv_i::MakeArc");
2719   getCurvesOp();
2720   GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeArc(thePnt1, thePnt2, thePnt3);
2721   endService( " GEOM_Superv_i::MakeArc" );
2722   return anObj;
2723 }
2724
2725 //=============================================================================
2726 //  MakeArcCenter:
2727 //=============================================================================
2728 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeArcCenter (GEOM::GEOM_Object_ptr theCenter,
2729                                                     GEOM::GEOM_Object_ptr thePnt1,
2730                                                     GEOM::GEOM_Object_ptr thePnt2,
2731                                                     CORBA::Boolean theSense)
2732 {
2733   beginService( " GEOM_Superv_i::MakeArcCenter" );
2734   MESSAGE("GEOM_Superv_i::MakeArcCenter");
2735   getCurvesOp();
2736   GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeArcCenter(theCenter, thePnt1, thePnt2,theSense);
2737   endService( " GEOM_Superv_i::MakeArcCenter" );
2738   return anObj;
2739 }
2740
2741 //=============================================================================
2742 //  MakeArcOfEllipse:
2743 //=============================================================================
2744 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeArcOfEllipse (GEOM::GEOM_Object_ptr thePnt1,
2745                                                        GEOM::GEOM_Object_ptr thePnt2,
2746                                                        GEOM::GEOM_Object_ptr thePnt3)
2747 {
2748   beginService( " GEOM_Superv_i::MakeArcOfEllipse" );
2749   MESSAGE("GEOM_Superv_i::MakeArcOfEllipse");
2750   getCurvesOp();
2751   GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeArcOfEllipse(thePnt1, thePnt2, thePnt3);
2752   endService( " GEOM_Superv_i::MakeArcOfEllipse" );
2753   return anObj;
2754 }
2755
2756 //=============================================================================
2757 //  MakePolyline:
2758 //=============================================================================
2759 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePolyline (GEOM::GEOM_List_ptr thePoints)
2760 {
2761   beginService( " GEOM_Superv_i::MakePolyline" );
2762   MESSAGE("GEOM_Superv_i::MakePolyline");
2763   if (GEOM_List_i<GEOM::ListOfGO>* aListImplP =
2764       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(thePoints, myPOA).in())) {
2765     getCurvesOp();
2766     GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakePolyline(aListImplP->GetList());
2767     endService( " GEOM_Superv_i::MakePolyline" );
2768     return anObj;
2769   }
2770   endService( " GEOM_Superv_i::MakePolyline" );
2771   return NULL;
2772 }
2773
2774 //=============================================================================
2775 //  MakeSplineBezier:
2776 //=============================================================================
2777 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSplineBezier (GEOM::GEOM_List_ptr thePoints)
2778 {
2779   beginService( " GEOM_Superv_i::MakeSplineBezier" );
2780   MESSAGE("GEOM_Superv_i::MakeSplineBezier");
2781   if (GEOM_List_i<GEOM::ListOfGO>* aListImplP =
2782       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(thePoints, myPOA).in())) {
2783     getCurvesOp();
2784     GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeSplineBezier(aListImplP->GetList());
2785     endService( " GEOM_Superv_i::MakeSplineBezier" );
2786     return anObj;
2787   }
2788   endService( " GEOM_Superv_i::MakeSplineBezier" );
2789   return NULL;
2790 }
2791
2792 //=============================================================================
2793 //  MakeSplineInterpolation:
2794 //=============================================================================
2795 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSplineInterpolation (GEOM::GEOM_List_ptr thePoints,
2796                                                               CORBA::Boolean      theIsClosed)
2797 {
2798   beginService( " GEOM_Superv_i::MakeSplineInterpolation" );
2799   MESSAGE("GEOM_Superv_i::MakeSplineInterpolation");
2800   if (GEOM_List_i<GEOM::ListOfGO>* aListImplP =
2801       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(thePoints, myPOA).in())) {
2802     getCurvesOp();
2803     GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeSplineInterpolation(aListImplP->GetList(), theIsClosed);
2804     endService( " GEOM_Superv_i::MakeSplineInterpolation" );
2805     return anObj;
2806   }
2807   endService( " GEOM_Superv_i::MakeSplineInterpolation" );
2808   return NULL;
2809 }
2810
2811 //=============================================================================
2812 //  MakeSketcher:
2813 //=============================================================================
2814 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSketcher (const char* theCommand,
2815                                                    GEOM::GEOM_List_ptr theWorkingPlane)
2816 {
2817   beginService( " GEOM_Superv_i::MakeSketcher" );
2818   MESSAGE("GEOM_Superv_i::MakeSketcher");
2819   if (GEOM_List_i<GEOM::ListOfDouble>* aListImplWP =
2820       dynamic_cast<GEOM_List_i<GEOM::ListOfDouble>*>(GetServant(theWorkingPlane, myPOA).in())) {
2821     getCurvesOp();
2822     GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeSketcher(theCommand, aListImplWP->GetList());
2823     endService( " GEOM_Superv_i::MakeSketcher" );
2824     return anObj;
2825   }
2826   endService( " GEOM_Superv_i::MakeSketcher" );
2827   return NULL;
2828 }
2829
2830 //=============================================================================
2831 //  Make3DSketcher:
2832 //=============================================================================
2833 GEOM::GEOM_Object_ptr GEOM_Superv_i::Make3DSketcher ( GEOM::GEOM_List_ptr theCoordinates)
2834 {
2835   beginService( " GEOM_Superv_i::Make3DSketcher" );
2836   MESSAGE("GEOM_Superv_i::Make3DSketcher");
2837   if (GEOM_List_i<GEOM::ListOfDouble>* aListImpl =
2838       dynamic_cast<GEOM_List_i<GEOM::ListOfDouble>*>(GetServant(theCoordinates, myPOA).in())) {
2839     getCurvesOp();
2840     GEOM::GEOM_Object_ptr anObj = myCurvesOp->Make3DSketcher(aListImpl->GetList());
2841     endService( " GEOM_Superv_i::Make3DSketcher" );
2842     return anObj;
2843   }
2844   endService( " GEOM_Superv_i::Make3DSketcher" );
2845   return NULL;
2846 }
2847
2848 //=============================== LocalOperations =============================
2849 //=============================================================================
2850 //  MakeFilletAll:
2851 //=============================================================================
2852 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletAll (GEOM::GEOM_Object_ptr theShape,
2853                                                     CORBA::Double theR)
2854 {
2855   beginService( " GEOM_Superv_i::MakeFilletAll" );
2856   MESSAGE("GEOM_Superv_i::MakeFilletAllMakeSketcher");
2857   getLocalOp();
2858   GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFilletAll(theShape, theR);
2859   endService( " GEOM_Superv_i::MakeFilletAll" );
2860   return anObj;
2861 }
2862
2863 //=============================================================================
2864 //  MakeFilletEdges:
2865 //=============================================================================
2866 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletEdges (GEOM::GEOM_Object_ptr theShape,
2867                                                       CORBA::Double theR,
2868                                                       GEOM::GEOM_List_ptr theEdges)
2869 {
2870   beginService( " GEOM_Superv_i::MakeFilletEdges" );
2871   MESSAGE("GEOM_Superv_i::MakeFilletEdges");
2872   if (GEOM_List_i<GEOM::ListOfLong>* aListImplE =
2873       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theEdges, myPOA).in())) {
2874     getLocalOp();
2875     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFilletEdges(theShape, theR, aListImplE->GetList());
2876     endService( " GEOM_Superv_i::MakeFilletEdges" );
2877     return anObj;
2878   }
2879   endService( " GEOM_Superv_i::MakeFilletEdges" );
2880   return NULL;
2881 }
2882
2883 //=============================================================================
2884 //  MakeFilletEdges R1 R2:
2885 //=============================================================================
2886 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletEdgesR1R2 (GEOM::GEOM_Object_ptr theShape,
2887                                                           CORBA::Double theR1,
2888                                                           CORBA::Double theR2,
2889                                                           GEOM::GEOM_List_ptr theEdges)
2890 {
2891   beginService( " GEOM_Superv_i::MakeFilletEdgesR1R2" );
2892   MESSAGE("GEOM_Superv_i::MakeFilletEdgesR1R2");
2893   if (GEOM_List_i<GEOM::ListOfLong>* aListImplE =
2894       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theEdges, myPOA).in())) {
2895     getLocalOp();
2896     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFilletEdgesR1R2(theShape, theR1,
2897                                                                  theR2, aListImplE->GetList());
2898     endService( " GEOM_Superv_i::MakeFilletEdgesR1R2" );
2899     return anObj;
2900   }
2901   endService( " GEOM_Superv_i::MakeFilletEdgesR1R2" );
2902   return NULL;
2903 }
2904
2905 //=============================================================================
2906 //  MakeFilletFaces:
2907 //=============================================================================
2908 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletFaces (GEOM::GEOM_Object_ptr theShape,
2909                                                       CORBA::Double theR,
2910                                                       GEOM::GEOM_List_ptr theFaces)
2911 {
2912   beginService( " GEOM_Superv_i::MakeFilletFaces" );
2913   MESSAGE("GEOM_Superv_i::MakeFilletFaces");
2914   if (GEOM_List_i<GEOM::ListOfLong>* aListImplF =
2915       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theFaces, myPOA).in())) {
2916     getLocalOp();
2917     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFilletFaces(theShape, theR, aListImplF->GetList());
2918     endService( " GEOM_Superv_i::MakeFilletFaces" );
2919     return anObj;
2920   }
2921   endService( " GEOM_Superv_i::MakeFilletFaces" );
2922   return NULL;
2923 }
2924
2925 //=============================================================================
2926 //  MakeFilletFaces R1 R2:
2927 //=============================================================================
2928 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletFacesR1R2 (GEOM::GEOM_Object_ptr theShape,
2929                                                           CORBA::Double theR1,
2930                                                           CORBA::Double theR2,
2931                                                           GEOM::GEOM_List_ptr theFaces)
2932 {
2933   beginService( " GEOM_Superv_i::MakeFilletFacesR1R2" );
2934   MESSAGE("GEOM_Superv_i::MakeFilletFacesR1R2");
2935   if (GEOM_List_i<GEOM::ListOfLong>* aListImplF =
2936       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theFaces, myPOA).in())) {
2937     getLocalOp();
2938     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFilletFacesR1R2(theShape, theR1, theR2,
2939                                                                  aListImplF->GetList());
2940     endService( " GEOM_Superv_i::MakeFilletFacesR1R2" );
2941     return anObj;
2942   }
2943   endService( " GEOM_Superv_i::MakeFilletFacesR1R2" );
2944   return NULL;
2945 }
2946
2947 //=============================================================================
2948 //  MakeFillet2D:
2949 //=============================================================================
2950 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFillet2D (GEOM::GEOM_Object_ptr theShape,
2951                                                    CORBA::Double theR,
2952                                                    GEOM::GEOM_List_ptr theVertexes)
2953 {
2954   beginService( " GEOM_Superv_i::MakeFillet2D" );
2955   MESSAGE("GEOM_Superv_i::MakeFillet2D");
2956   if (GEOM_List_i<GEOM::ListOfLong>* aListImplV =
2957       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theVertexes, myPOA).in())) {
2958     getLocalOp();
2959     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFillet2D(theShape, theR, aListImplV->GetList());
2960     endService( " GEOM_Superv_i::MakeFillet2D" );
2961     return anObj;
2962   }
2963   endService( " GEOM_Superv_i::MakeFillet2D" );
2964   return NULL;
2965 }
2966
2967 //=============================================================================
2968 //  MakeFillet1D:
2969 //=============================================================================
2970 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFillet1D (GEOM::GEOM_Object_ptr theShape,
2971                                                    CORBA::Double theR,
2972                                                    GEOM::GEOM_List_ptr theVertexes)
2973 {
2974   beginService( " GEOM_Superv_i::MakeFillet1D" );
2975   MESSAGE("GEOM_Superv_i::MakeFillet1D");
2976   if (GEOM_List_i<GEOM::ListOfLong>* aListImplV =
2977       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theVertexes, myPOA).in())) {
2978     getLocalOp();
2979     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFillet1D(theShape, theR, aListImplV->GetList());
2980     endService( " GEOM_Superv_i::MakeFillet1D" );
2981     return anObj;
2982   }
2983   endService( " GEOM_Superv_i::MakeFillet1D" );
2984   return NULL;
2985 }
2986
2987 //=============================================================================
2988 //  MakeChamferAll:
2989 //=============================================================================
2990 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferAll (GEOM::GEOM_Object_ptr theShape, CORBA::Double theD)
2991 {
2992   beginService( " GEOM_Superv_i::MakeChamferAll" );
2993   MESSAGE("GEOM_Superv_i::MakeChamferAll");
2994   getLocalOp();
2995   GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferAll(theShape, theD);
2996   endService( " GEOM_Superv_i::MakeChamferAll" );
2997   return anObj;
2998 }
2999
3000 //=============================================================================
3001 //  MakeChamferEdge:
3002 //=============================================================================
3003 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferEdge (GEOM::GEOM_Object_ptr theShape,
3004                                                       CORBA::Double theD1, CORBA::Double theD2,
3005                                                       CORBA::Long theFace1, CORBA::Long theFace2)
3006 {
3007   beginService( " GEOM_Superv_i::MakeChamferEdge" );
3008   MESSAGE("GEOM_Superv_i::MakeChamferEdge");
3009   getLocalOp();
3010   GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferEdge(theShape, theD1, theD2, theFace1, theFace2);
3011   endService( " GEOM_Superv_i::MakeChamferEdge" );
3012   return anObj;
3013 }
3014
3015 //=============================================================================
3016 //  MakeChamferEdgeAD:
3017 //=============================================================================
3018 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferEdgeAD (GEOM::GEOM_Object_ptr theShape,
3019                                                         CORBA::Double theD, CORBA::Double theAngle,
3020                                                         CORBA::Long theFace1, CORBA::Long theFace2)
3021 {
3022   beginService( " GEOM_Superv_i::MakeChamferEdgeAD" );
3023   MESSAGE("GEOM_Superv_i::MakeChamferEdgeAD");
3024   getLocalOp();
3025   GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferEdgeAD(theShape, theD, theAngle, theFace1, theFace2);
3026   endService( " GEOM_Superv_i::MakeChamferEdgeAD" );
3027   return anObj;
3028 }
3029
3030 //=============================================================================
3031 //  MakeChamferFaces:
3032 //=============================================================================
3033 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferFaces (GEOM::GEOM_Object_ptr theShape,
3034                                                        CORBA::Double theD1, CORBA::Double theD2,
3035                                                        GEOM::GEOM_List_ptr theFaces)
3036 {
3037   beginService( " GEOM_Superv_i::MakeChamferFaces" );
3038   MESSAGE("GEOM_Superv_i::MakeChamferFaces");
3039   if (GEOM_List_i<GEOM::ListOfLong>* aListImplF =
3040       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theFaces, myPOA).in())) {
3041     getLocalOp();
3042     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferFaces(theShape, theD1, theD2, aListImplF->GetList());
3043     endService( " GEOM_Superv_i::MakeChamferFaces" );
3044     return anObj;
3045   }
3046   endService( " GEOM_Superv_i::MakeChamferFaces" );
3047   return NULL;
3048 }
3049
3050 //=============================================================================
3051 //  MakeChamferFacesAD:
3052 //=============================================================================
3053 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferFacesAD (GEOM::GEOM_Object_ptr theShape,
3054                                                          CORBA::Double theD, CORBA::Double theAngle,
3055                                                          GEOM::GEOM_List_ptr theFaces)
3056 {
3057   beginService( " GEOM_Superv_i::MakeChamferFacesAD" );
3058   MESSAGE("GEOM_Superv_i::MakeChamferFacesAD");
3059   if (GEOM_List_i<GEOM::ListOfLong>* aListImplF =
3060       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theFaces, myPOA).in())) {
3061     getLocalOp();
3062     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferFacesAD(theShape, theD, theAngle, aListImplF->GetList());
3063     endService( " GEOM_Superv_i::MakeChamferFacesAD" );
3064     return anObj;
3065   }
3066   endService( " GEOM_Superv_i::MakeChamferFacesAD" );
3067   return NULL;
3068 }
3069
3070 //=============================================================================
3071 //  MakeChamferEdges:
3072 //=============================================================================
3073 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferEdges (GEOM::GEOM_Object_ptr theShape,
3074                                                        CORBA::Double theD1, CORBA::Double theD2,
3075                                                        GEOM::GEOM_List_ptr theEdges)
3076 {
3077   beginService( " GEOM_Superv_i::MakeChamferEdges" );
3078   MESSAGE("GEOM_Superv_i::MakeChamferEdges");
3079   if (GEOM_List_i<GEOM::ListOfLong>* aListImplF =
3080       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theEdges, myPOA).in())) {
3081     getLocalOp();
3082     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferEdges(theShape, theD1, theD2, aListImplF->GetList());
3083     endService( " GEOM_Superv_i::MakeChamferEdges" );
3084     return anObj;
3085   }
3086   endService( " GEOM_Superv_i::MakeChamferEdges" );
3087   return NULL;
3088 }
3089
3090 //=============================================================================
3091 //  MakeChamferEdgesAD:
3092 //=============================================================================
3093 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferEdgesAD (GEOM::GEOM_Object_ptr theShape,
3094                                                          CORBA::Double theD, CORBA::Double theAngle,
3095                                                          GEOM::GEOM_List_ptr theEdges)
3096 {
3097   beginService( " GEOM_Superv_i::MakeChamferEdgesAD" );
3098   MESSAGE("GEOM_Superv_i::MakeChamferEdgesAD");
3099   if (GEOM_List_i<GEOM::ListOfLong>* aListImplF =
3100       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theEdges, myPOA).in())) {
3101     getLocalOp();
3102     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferEdgesAD(theShape, theD, theAngle, aListImplF->GetList());
3103     endService( " GEOM_Superv_i::MakeChamferEdgesAD" );
3104     return anObj;
3105   }
3106   endService( " GEOM_Superv_i::MakeChamferEdgesAD" );
3107   return NULL;
3108 }
3109
3110 //=============================================================================
3111 //  MakeArchimede:
3112 //=============================================================================
3113 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeArchimede (GEOM::GEOM_Object_ptr theShape,
3114                                                     CORBA::Double theWeight,
3115                                                     CORBA::Double theWaterDensity,
3116                                                     CORBA::Double theMeshingDeflection)
3117 {
3118   beginService( " GEOM_Superv_i::MakeArchimede" );
3119   MESSAGE("GEOM_Superv_i::MakeArchimede");
3120   getLocalOp();
3121   GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeArchimede(theShape, theWeight, theWaterDensity, theMeshingDeflection);
3122   endService( " GEOM_Superv_i::MakeArchimede" );
3123   return anObj;
3124 }
3125
3126 //=============================================================================
3127 //  GetSubShapeIndexMakeFilletAll:
3128 //=============================================================================
3129 CORBA::Long GEOM_Superv_i::GetSubShapeIndex (GEOM::GEOM_Object_ptr theShape,
3130                                              GEOM::GEOM_Object_ptr theSubShape)
3131 {
3132   beginService( " GEOM_Superv_i::GetSubShapeIndex" );
3133   MESSAGE("GEOM_Superv_i::GetSubShapeIndexMakeArchimede");
3134   getLocalOp();
3135   CORBA::Long aRes = myLocalOp->GetSubShapeIndex(theShape, theSubShape);
3136   endService( " GEOM_Superv_i::GetSubShapeIndex" );
3137   return aRes;
3138 }
3139
3140 //=============================== GroupOperations =============================
3141 //=============================================================================
3142 //  CreateGroup:
3143 //=============================================================================
3144 GEOM::GEOM_Object_ptr GEOM_Superv_i::CreateGroup (GEOM::GEOM_Object_ptr theMainShape,
3145                                                   CORBA::Long theShapeType)
3146 {
3147   beginService( " GEOM_Superv_i::CreateGroup" );
3148   MESSAGE("GEOM_Superv_i::CreateGroup");
3149   getGroupOp();
3150   GEOM::GEOM_Object_ptr anObj = myGroupOp->CreateGroup(theMainShape, theShapeType);
3151   endService( " GEOM_Superv_i::CreateGroup" );
3152   return anObj;
3153 }
3154
3155 //=============================================================================
3156 //  AddObject:
3157 //=============================================================================
3158 void GEOM_Superv_i::AddObject (GEOM::GEOM_Object_ptr theGroup,
3159                                CORBA::Long theSubShapeId)
3160 {
3161   beginService( " GEOM_Superv_i::AddObject" );
3162   MESSAGE("GEOM_Superv_i::AddObject");
3163   getGroupOp();
3164   myGroupOp->AddObject(theGroup, theSubShapeId);
3165   endService( " GEOM_Superv_i::AddObject" );
3166 }
3167
3168 //=============================================================================
3169 //  RemoveObject:
3170 //=============================================================================
3171 void GEOM_Superv_i::RemoveObject (GEOM::GEOM_Object_ptr theGroup,
3172                                   CORBA::Long theSubShapeId)
3173 {
3174   beginService( " GEOM_Superv_i::RemoveObject" );
3175   MESSAGE("GEOM_Superv_i::RemoveObject");
3176   getGroupOp();
3177   myGroupOp->RemoveObject(theGroup, theSubShapeId);
3178   endService( " GEOM_Superv_i::RemoveObject" );
3179 }
3180
3181 //=============================================================================
3182 //  GetType:
3183 //=============================================================================
3184 CORBA::Long GEOM_Superv_i::GetType (GEOM::GEOM_Object_ptr theGroup)
3185 {
3186   beginService( " GEOM_Superv_i::GetType" );
3187   MESSAGE("GEOM_Superv_i::GetType");
3188   getGroupOp();
3189   CORBA::Long aResult = myGroupOp->GetType(theGroup);
3190   endService( " GEOM_Superv_i::GetType" );
3191   return aResult;
3192 }
3193
3194 //=============================================================================
3195 //  GetMainShape:
3196 //=============================================================================
3197 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetMainShape (GEOM::GEOM_Object_ptr theGroup)
3198 {
3199   beginService( " GEOM_Superv_i::GetMainShape" );
3200   MESSAGE("GEOM_Superv_i::GetMainShape");
3201   getGroupOp();
3202   GEOM::GEOM_Object_ptr anObj = myGroupOp->GetMainShape(theGroup);
3203   endService( " GEOM_Superv_i::GetMainShape" );
3204   return anObj;
3205 }
3206
3207 //=============================================================================
3208 //  GetObjects:
3209 //=============================================================================
3210 GEOM::GEOM_List_ptr GEOM_Superv_i::GetObjects (GEOM::GEOM_Object_ptr theGroup)
3211 {
3212   beginService( " GEOM_Superv_i::GetObjects" );
3213   MESSAGE("GEOM_Superv_i::GetObjects");
3214   getGroupOp();
3215
3216   GEOM::ListOfLong* aList = myGroupOp->GetObjects(theGroup);
3217   GEOM_List_i<GEOM::ListOfLong>* aListPtr = new GEOM_List_i<GEOM::ListOfLong>(*(aList));
3218   MESSAGE(" List of "<<aListPtr->GetList().length()<<" element(s)");
3219   endService( " GEOM_Superv_i::GetObjects" );
3220   return aListPtr->_this();
3221 }
3222
3223 //=============================== Advanced Operations =============================
3224 //=============================================================================
3225 //  MakePipeTShape
3226 //=============================================================================
3227 GEOM::GEOM_List_ptr GEOM_Superv_i::MakePipeTShape
3228                     (CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
3229                      CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
3230                      CORBA::Boolean theHexMesh)
3231 {
3232   beginService( " GEOM_Superv_i::MakePipeTShape" );
3233   MESSAGE("GEOM_Superv_i::MakePipeTShape");
3234   getAdvancedOp();
3235
3236   GEOM::ListOfGO* aSeq = myAdvancedOp->MakePipeTShape(theR1, theW1, theL1, theR2, theW2, theL2, theHexMesh);
3237   GEOM_List_i<GEOM::ListOfGO>* aSeqPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aSeq));
3238   MESSAGE(" List of "<<aSeqPtr->GetList().length()<<" element(s)");
3239   endService( " GEOM_Superv_i::MakePipeTShape" );
3240   return aSeqPtr->_this();
3241 }
3242
3243 //=============================================================================
3244 //  MakePipeTShapeWithPosition
3245 //=============================================================================
3246 GEOM::GEOM_List_ptr GEOM_Superv_i::MakePipeTShapeWithPosition
3247                     (CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
3248                      CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2, CORBA::Boolean theHexMesh,
3249                      GEOM::GEOM_Object_ptr theP1, GEOM::GEOM_Object_ptr theP2, GEOM::GEOM_Object_ptr theP3)
3250 {
3251   beginService( " GEOM_Superv_i::MakePipeTShapeWithPosition" );
3252   MESSAGE("GEOM_Superv_i::MakePipeTShapeWithPosition");
3253   getAdvancedOp();
3254
3255   GEOM::ListOfGO* aSeq = myAdvancedOp->MakePipeTShapeWithPosition(theR1, theW1, theL1, theR2, theW2, theL2, theHexMesh, theP1, theP2, theP3);
3256   GEOM_List_i<GEOM::ListOfGO>* aSeqPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aSeq));
3257   MESSAGE(" List of "<<aSeqPtr->GetList().length()<<" element(s)");
3258   endService( " GEOM_Superv_i::MakePipeTShapeWithPosition" );
3259   return aSeqPtr->_this();
3260 }
3261
3262 //=============================================================================
3263 //  MakePipeTShapeChamfer
3264 //=============================================================================
3265 GEOM::GEOM_List_ptr GEOM_Superv_i::MakePipeTShapeChamfer
3266                     (CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
3267                      CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
3268                      CORBA::Double theH, CORBA::Double theW, CORBA::Boolean theHexMesh)
3269 {
3270   beginService( " GEOM_Superv_i::MakePipeTShapeChamfer" );
3271   MESSAGE("GEOM_Superv_i::MakePipeTShapeChamfer");
3272   getAdvancedOp();
3273
3274   GEOM::ListOfGO* aSeq = myAdvancedOp->MakePipeTShapeChamfer(theR1, theW1, theL1, theR2, theW2, theL2, theH, theW, theHexMesh);
3275   GEOM_List_i<GEOM::ListOfGO>* aSeqPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aSeq));
3276   MESSAGE(" List of "<<aSeqPtr->GetList().length()<<" element(s)");
3277   endService( " GEOM_Superv_i::MakePipeTShapeChamfer" );
3278   return aSeqPtr->_this();
3279 }
3280
3281 //=============================================================================
3282 //  MakePipeTShapeChamferWithPosition
3283 //=============================================================================
3284 GEOM::GEOM_List_ptr GEOM_Superv_i::MakePipeTShapeChamferWithPosition
3285                     (CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
3286                      CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
3287                      CORBA::Double theH, CORBA::Double theW, CORBA::Boolean theHexMesh,
3288                      GEOM::GEOM_Object_ptr theP1, GEOM::GEOM_Object_ptr theP2, GEOM::GEOM_Object_ptr theP3)
3289 {
3290   beginService( " GEOM_Superv_i::MakePipeTShapeChamferWithPosition" );
3291   MESSAGE("GEOM_Superv_i::MakePipeTShapeChamferWithPosition");
3292   getAdvancedOp();
3293
3294   GEOM::ListOfGO* aSeq = myAdvancedOp->MakePipeTShapeChamferWithPosition(theR1, theW1, theL1, theR2, theW2, theL2, theH, theW, theHexMesh, theP1, theP2, theP3);
3295   GEOM_List_i<GEOM::ListOfGO>* aSeqPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aSeq));
3296   MESSAGE(" List of "<<aSeqPtr->GetList().length()<<" element(s)");
3297   endService( " GEOM_Superv_i::MakePipeTShapeChamferWithPosition" );
3298   return aSeqPtr->_this();
3299 }
3300
3301 //=============================================================================
3302 //  MakePipeTShapeFillet
3303 //=============================================================================
3304 GEOM::GEOM_List_ptr GEOM_Superv_i::MakePipeTShapeFillet
3305                     (CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
3306                      CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
3307                      CORBA::Double theRF, CORBA::Boolean theHexMesh)
3308 {
3309   beginService( " GEOM_Superv_i::MakePipeTShapeFillet" );
3310   MESSAGE("GEOM_Superv_i::MakePipeTShapeFillet");
3311   getAdvancedOp();
3312
3313   GEOM::ListOfGO* aSeq = myAdvancedOp->MakePipeTShapeFillet(theR1, theW1, theL1, theR2, theW2, theL2, theRF, theHexMesh);
3314   GEOM_List_i<GEOM::ListOfGO>* aSeqPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aSeq));
3315   MESSAGE(" List of "<<aSeqPtr->GetList().length()<<" element(s)");
3316   endService( " GEOM_Superv_i::MakePipeTShapeFillet" );
3317   return aSeqPtr->_this();
3318 }
3319
3320 //=============================================================================
3321 //  MakePipeTShapeFilletWithPosition
3322 //=============================================================================
3323 GEOM::GEOM_List_ptr GEOM_Superv_i::MakePipeTShapeFilletWithPosition
3324                     (CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
3325                      CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
3326                      CORBA::Double theRF, CORBA::Boolean theHexMesh,
3327                      GEOM::GEOM_Object_ptr theP1, GEOM::GEOM_Object_ptr theP2, GEOM::GEOM_Object_ptr theP3)
3328 {
3329   beginService( " GEOM_Superv_i::MakePipeTShapeFilletWithPosition" );
3330   MESSAGE("GEOM_Superv_i::MakePipeTShapeFilletWithPosition");
3331   getAdvancedOp();
3332
3333   GEOM::ListOfGO* aSeq = myAdvancedOp->MakePipeTShapeFilletWithPosition(theR1, theW1, theL1, theR2, theW2, theL2, theRF, theHexMesh, theP1, theP2, theP3);
3334   GEOM_List_i<GEOM::ListOfGO>* aSeqPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aSeq));
3335   MESSAGE(" List of "<<aSeqPtr->GetList().length()<<" element(s)");
3336   endService( " GEOM_Superv_i::MakePipeTShapeFilletWithPosition" );
3337   return aSeqPtr->_this();
3338 }
3339
3340 /*@@ insert new functions before this line @@ do not remove this line @@*/
3341
3342 //=====================================================================================
3343 // EXPORTED METHODS
3344 //=====================================================================================
3345 extern "C"
3346 {
3347   PortableServer::ObjectId * GEOM_SupervEngine_factory(CORBA::ORB_ptr orb,
3348                                                        PortableServer::POA_ptr poa,
3349                                                        PortableServer::ObjectId * contId,
3350                                                        const char *instanceName,
3351                                                        const char * interfaceName)
3352   {
3353     GEOM_Superv_i * myGEOM_Superv_i = new GEOM_Superv_i(orb, poa, contId, instanceName, interfaceName);
3354     //Don't understand the reason why this component is registered ???
3355 //    myGEOM_Superv_i->register_name("/myGEOM_Superv");
3356     return myGEOM_Superv_i->getId() ;
3357   }
3358 }