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