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