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