Back to index

salome-geom  6.5.0
GEOM_Superv_i.cc
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 // This library is free software; you can redistribute it and/or
00007 // modify it under the terms of the GNU Lesser General Public
00008 // License as published by the Free Software Foundation; either
00009 // version 2.1 of the License.
00010 //
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 //
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 
00023 #include "GEOM_Superv_i.hh"
00024 #include "SALOME_LifeCycleCORBA.hxx"
00025 
00026 #include CORBA_SERVER_HEADER(SALOME_Session)
00027 #include "SALOMEDSClient_ClientFactory.hxx"
00028 
00029 #define isNewStudy(a,b) (a > 0 && a != b)
00030 
00031 //=============================================================================
00032 //  constructor:
00033 //=============================================================================
00034 GEOM_Superv_i::GEOM_Superv_i(CORBA::ORB_ptr orb,
00035                              PortableServer::POA_ptr poa,
00036                              PortableServer::ObjectId * contId,
00037                              const char *instanceName,
00038                              const char *interfaceName) :
00039   Engines_Component_i(orb, poa, contId, instanceName, interfaceName)
00040 {
00041   MESSAGE("GEOM_Superv_i::GEOM_Superv_i");
00042 
00043   _thisObj = this ;
00044   _id = _poa->activate_object(_thisObj);
00045   name_service = new SALOME_NamingService(_orb);
00046   //get RootPOA (the default)
00047   //myPOA = PortableServer::RefCountServantBase::_default_POA();
00048   CORBA::Object_var anObj = _orb->resolve_initial_references("RootPOA");
00049   myPOA = PortableServer::POA::_narrow(anObj);
00050 
00051   setGeomEngine();
00052 
00053   myStudyID = -1;
00054   myLastStudyID = -1;
00055 
00056   myBasicOp = GEOM::GEOM_IBasicOperations::_nil();
00057   my3DPrimOp = GEOM::GEOM_I3DPrimOperations::_nil();
00058   myBoolOp = GEOM::GEOM_IBooleanOperations::_nil();
00059   myInsOp = GEOM::GEOM_IInsertOperations::_nil();
00060   myTransfOp = GEOM::GEOM_ITransformOperations::_nil();
00061   myShapesOp = GEOM::GEOM_IShapesOperations::_nil();
00062   myBlocksOp = GEOM::GEOM_IBlocksOperations::_nil();
00063   myCurvesOp = GEOM::GEOM_ICurvesOperations::_nil();
00064   myLocalOp = GEOM::GEOM_ILocalOperations::_nil();
00065   myGroupOp = GEOM::GEOM_IGroupOperations::_nil();
00066 }
00067 
00068 //=============================================================================
00069 //  destructor
00070 //=============================================================================
00071 GEOM_Superv_i::~GEOM_Superv_i()
00072 {
00073   MESSAGE("GEOM_Superv_i::~GEOM_Superv_i");
00074   if (!CORBA::is_nil(myBasicOp))
00075     myBasicOp->UnRegister();
00076   if (!CORBA::is_nil(myBoolOp))
00077     myBoolOp->UnRegister();
00078   if (!CORBA::is_nil(my3DPrimOp))
00079     my3DPrimOp->UnRegister();
00080   delete name_service;
00081 }
00082 
00083 //============================================================================
00084 // function : register()
00085 // purpose  : register 'name' in 'name_service'
00086 //============================================================================
00087 void GEOM_Superv_i::register_name(char * name)
00088 {
00089   GEOM::GEOM_Superv_var g = _this();
00090   name_service->Register(g, name);
00091 }
00092 
00093 //=============================================================================
00094 //  setGEOMEngine:
00095 //=============================================================================
00096 void GEOM_Superv_i::setGeomEngine()
00097 {
00098   if ( !CORBA::is_nil(myGeomEngine) )
00099     return;
00100 
00101   // get GEOM_Gen engine
00102   Engines::Container_var cont=GetContainerRef();
00103   CORBA::String_var container_name=cont->name();
00104   std::string shortName=container_name.in();
00105   shortName=shortName.substr(12); // substract "/Containers/"
00106   SALOME_LifeCycleCORBA* lcc = new SALOME_LifeCycleCORBA( name_service );
00107   Engines::EngineComponent_var comp = lcc->FindOrLoad_Component( shortName.c_str(), "GEOM" );
00108   delete lcc;
00109 
00110   myGeomEngine = GEOM::GEOM_Gen::_narrow(comp);
00111 }
00112 
00113 //=============================================================================
00114 //  SetStudyID:
00115 //=============================================================================
00116 void GEOM_Superv_i::SetStudyID( CORBA::Long theId )
00117 {
00118   // mkr : PAL10770 -->
00119   myLastStudyID = myStudyID;
00120 
00121   CORBA::Object_ptr anObject = name_service->Resolve("/Kernel/Session");
00122   if ( !CORBA::is_nil(anObject) ) {
00123     SALOME::Session_var aSession = SALOME::Session::_narrow(anObject);
00124     if ( !CORBA::is_nil(aSession) ) {
00125       int aStudyID = aSession->GetActiveStudyId();
00126       if ( theId != aStudyID && aStudyID > 0) { // mkr : IPAL12128
00127         MESSAGE("Warning : given study ID theId="<<theId<<" is wrong and will be replaced by the value "<<aStudyID);
00128         myStudyID = aStudyID;
00129       }
00130       else
00131         myStudyID = theId; // mkr : IPAL12128
00132     }
00133   }
00134 
00135   if ( isNewStudy(myLastStudyID,myStudyID) ) {
00136     if (CORBA::is_nil(myGeomEngine)) setGeomEngine();
00137     std::string anEngine = _orb->object_to_string( myGeomEngine );
00138 
00139     CORBA::Object_var anObj = name_service->Resolve("/myStudyManager");
00140     if ( !CORBA::is_nil(anObj) ) {
00141       SALOMEDS::StudyManager_var aStudyManager = SALOMEDS::StudyManager::_narrow(anObj);
00142       if ( !CORBA::is_nil(aStudyManager) ) {
00143         _PTR(Study) aDSStudy = ClientFactory::Study(aStudyManager->GetStudyByID(myStudyID));
00144         if ( aDSStudy ) {
00145           _PTR(SComponent) aSCO = aDSStudy->FindComponent(myGeomEngine->ComponentDataType());
00146           if ( aSCO ) {
00147             _PTR(StudyBuilder) aBuilder = aDSStudy->NewBuilder();
00148             if ( aBuilder ) aBuilder->LoadWith( aSCO, anEngine );
00149           }
00150         }
00151       }
00152     }
00153   }
00154   // mkr : PAL10770 <--
00155 }
00156 
00157 //=============================================================================
00158 //  CreateListOfGO:
00159 //=============================================================================
00160 GEOM::GEOM_List_ptr GEOM_Superv_i::CreateListOfGO()
00161 {
00162   MESSAGE("GEOM_Superv_i::CreateListOfGO()");
00163   GEOM_List_i<GEOM::ListOfGO>* aListPtr = new GEOM_List_i<GEOM::ListOfGO>();
00164   return aListPtr->_this();
00165 }
00166 
00167 //=============================================================================
00168 //  AddItemToListOfGO:
00169 //=============================================================================
00170 void GEOM_Superv_i::AddItemToListOfGO(GEOM::GEOM_List_ptr& theList,
00171                                       GEOM::GEOM_Object_ptr theObject)
00172 {
00173   MESSAGE("GEOM_Superv_i::AddItemToListOfGO(...)");
00174   GEOM::GEOM_Object_var anObj =  GEOM::GEOM_Object::_duplicate(theObject);
00175   if (GEOM_List_i<GEOM::ListOfGO>* aList =
00176       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theList, myPOA).in())) {
00177     aList->AddObject(anObj);
00178     MESSAGE(" NewLength = "<<aList->GetList().length());
00179   }
00180 }
00181 
00182 //=============================================================================
00183 //  CreateListOfLong:
00184 //=============================================================================
00185 GEOM::GEOM_List_ptr GEOM_Superv_i::CreateListOfLong()
00186 {
00187   MESSAGE("GEOM_Superv_i::CreateListOfLong()");
00188   GEOM_List_i<GEOM::ListOfLong>* aListPtr = new GEOM_List_i<GEOM::ListOfLong>();
00189   return aListPtr->_this();
00190 }
00191 
00192 //=============================================================================
00193 //  AddItemToListOfLong:
00194 //=============================================================================
00195 void GEOM_Superv_i::AddItemToListOfLong(GEOM::GEOM_List_ptr& theList,
00196                                         CORBA::Long theObject)
00197 {
00198   MESSAGE("GEOM_Superv_i::AddItemToListOfLong(...)");
00199   if (GEOM_List_i<GEOM::ListOfLong>* aList =
00200       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theList, myPOA).in())) {
00201     aList->AddObject(theObject);
00202     MESSAGE(" NewLength = "<<aList->GetList().length());
00203   }
00204 }
00205 
00206 //=============================================================================
00207 //  CreateListOfDouble:
00208 //=============================================================================
00209 GEOM::GEOM_List_ptr GEOM_Superv_i::CreateListOfDouble()
00210 {
00211   MESSAGE("GEOM_Superv_i::CreateListOfDouble()");
00212   GEOM_List_i<GEOM::ListOfDouble>* aListPtr = new GEOM_List_i<GEOM::ListOfDouble>();
00213   return aListPtr->_this();
00214 }
00215 
00216 //=============================================================================
00217 //  AddItemToListOfDouble:
00218 //=============================================================================
00219 void GEOM_Superv_i::AddItemToListOfDouble(GEOM::GEOM_List_ptr& theList,
00220                                           CORBA::Double theObject)
00221 {
00222   MESSAGE("GEOM_Superv_i::AddItemToListOfDouble(...)");
00223   if (GEOM_List_i<GEOM::ListOfDouble>* aList =
00224       dynamic_cast<GEOM_List_i<GEOM::ListOfDouble>*>(GetServant(theList, myPOA).in())) {
00225     aList->AddObject(theObject);
00226     MESSAGE(" NewLength = "<<aList->GetList().length());
00227   }
00228 }
00229 
00230 //=============================================================================
00231 //  getBasicOp:
00232 //=============================================================================
00233 void GEOM_Superv_i::getBasicOp()
00234 {
00235   if (CORBA::is_nil(myGeomEngine))
00236     setGeomEngine();
00237   // get GEOM_IBasicOperations interface
00238   if (CORBA::is_nil(myBasicOp) || isNewStudy(myLastStudyID,myStudyID)) {
00239     //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
00240     //     Try to get id of the study from the SALOME Session
00241     if(myStudyID < 0 ) SetStudyID(-1);
00242     myBasicOp = myGeomEngine->GetIBasicOperations(myStudyID);
00243   }
00244 }
00245 
00246 //=============================================================================
00247 //  get3DPrimOp:
00248 //=============================================================================
00249 void GEOM_Superv_i::get3DPrimOp()
00250 {
00251   if (CORBA::is_nil(myGeomEngine))
00252     setGeomEngine();
00253   // get GEOM_I3DPrimOperations interface
00254   if (CORBA::is_nil(my3DPrimOp) || isNewStudy(myLastStudyID,myStudyID)) {
00255     //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
00256     //     Try to get id of the study from the SALOME Session
00257     if(myStudyID < 0 ) SetStudyID(-1);
00258     my3DPrimOp = myGeomEngine->GetI3DPrimOperations(myStudyID);
00259   }
00260 }
00261 
00262 //=============================================================================
00263 //  getBoolOp:
00264 //=============================================================================
00265 void GEOM_Superv_i::getBoolOp()
00266 {
00267   if (CORBA::is_nil(myGeomEngine))
00268     setGeomEngine();
00269   // get GEOM_IBooleanOperations interface
00270   if (CORBA::is_nil(myBoolOp) || isNewStudy(myLastStudyID,myStudyID)) {
00271     //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
00272     //     Try to get id of the study from the SALOME Session
00273     if(myStudyID < 0 ) SetStudyID(-1);
00274     myBoolOp = myGeomEngine->GetIBooleanOperations(myStudyID);
00275   }
00276 }
00277 
00278 //=============================================================================
00279 //  getInsOp:
00280 //=============================================================================
00281 void GEOM_Superv_i::getInsOp()
00282 {
00283   if (CORBA::is_nil(myGeomEngine))
00284     setGeomEngine();
00285   // get GEOM_IInsertOperations interface
00286   if (CORBA::is_nil(myInsOp) || isNewStudy(myLastStudyID,myStudyID)) {
00287     //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
00288     //     Try to get id of the study from the SALOME Session
00289     if(myStudyID < 0 ) SetStudyID(-1);
00290     myInsOp = myGeomEngine->GetIInsertOperations(myStudyID);
00291   }
00292 }
00293 
00294 //=============================================================================
00295 //  getTransfOp:
00296 //=============================================================================
00297 void GEOM_Superv_i::getTransfOp()
00298 {
00299   if (CORBA::is_nil(myGeomEngine))
00300     setGeomEngine();
00301   // get GEOM_ITransformOperations interface
00302   if (CORBA::is_nil(myTransfOp) || isNewStudy(myLastStudyID,myStudyID)) {
00303     //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
00304     //     Try to get id of the study from the SALOME Session
00305     if(myStudyID < 0 ) SetStudyID(-1);
00306     myTransfOp = myGeomEngine->GetITransformOperations(myStudyID);
00307   }
00308 }
00309 
00310 //=============================================================================
00311 //  getShapesOp:
00312 //=============================================================================
00313 void GEOM_Superv_i::getShapesOp()
00314 {
00315   if (CORBA::is_nil(myGeomEngine))
00316     setGeomEngine();
00317   // get GEOM_IShapesOperations interface
00318   if (CORBA::is_nil(myShapesOp) || isNewStudy(myLastStudyID,myStudyID)) {
00319     //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
00320     //     Try to get id of the study from the SALOME Session
00321     if(myStudyID < 0 ) SetStudyID(-1);
00322     myShapesOp = myGeomEngine->GetIShapesOperations(myStudyID);
00323   }
00324 }
00325 
00326 //=============================================================================
00327 //  getBlocksOp:
00328 //=============================================================================
00329 void GEOM_Superv_i::getBlocksOp()
00330 {
00331   if (CORBA::is_nil(myGeomEngine))
00332     setGeomEngine();
00333   // get GEOM_IBlocksOperations interface
00334   if (CORBA::is_nil(myBlocksOp) || isNewStudy(myLastStudyID,myStudyID)) {
00335     //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
00336     //     Try to get id of the study from the SALOME Session
00337     if(myStudyID < 0 ) SetStudyID(-1);
00338     myBlocksOp = myGeomEngine->GetIBlocksOperations(myStudyID);
00339   }
00340 }
00341 
00342 //=============================================================================
00343 //  getCurvesOp:
00344 //=============================================================================
00345 void GEOM_Superv_i::getCurvesOp()
00346 {
00347   if (CORBA::is_nil(myGeomEngine))
00348     setGeomEngine();
00349   // get GEOM_ICurvesOperations interface
00350   if (CORBA::is_nil(myCurvesOp) || isNewStudy(myLastStudyID,myStudyID)) {
00351     //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
00352     //     Try to get id of the study from the SALOME Session
00353     if(myStudyID < 0 ) SetStudyID(-1);
00354     myCurvesOp = myGeomEngine->GetICurvesOperations(myStudyID);
00355   }
00356 }
00357 
00358 //=============================================================================
00359 //  getLocalOp:
00360 //=============================================================================
00361 void GEOM_Superv_i::getLocalOp()
00362 {
00363   if (CORBA::is_nil(myGeomEngine))
00364     setGeomEngine();
00365   // get GEOM_ILocalOperations interface
00366   if (CORBA::is_nil(myLocalOp) || isNewStudy(myLastStudyID,myStudyID)) {
00367     //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
00368     //     Try to get id of the study from the SALOME Session
00369     if(myStudyID < 0 ) SetStudyID(-1);
00370     myLocalOp = myGeomEngine->GetILocalOperations(myStudyID);
00371   }
00372 }
00373 
00374 //=============================================================================
00375 //  getGroupOp:
00376 //=============================================================================
00377 void GEOM_Superv_i::getGroupOp()
00378 {
00379   if (CORBA::is_nil(myGeomEngine))
00380     setGeomEngine();
00381   // get GEOM_IGroupOperations interface
00382   if (CORBA::is_nil(myGroupOp) || isNewStudy(myLastStudyID,myStudyID)) {
00383     //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
00384     //     Try to get id of the study from the SALOME Session
00385     if(myStudyID < 0 ) SetStudyID(-1);
00386     myGroupOp = myGeomEngine->GetIGroupOperations(myStudyID);
00387   }
00388 }
00389 
00390 //=============================================================================
00391 //  getAdvancedOp:
00392 //=============================================================================
00393 void GEOM_Superv_i::getAdvancedOp()
00394 {
00395   if (CORBA::is_nil(myGeomEngine))
00396     setGeomEngine();
00397   // get GEOM_IAdvancedOperations interface
00398   if (CORBA::is_nil(myAdvancedOp) || isNewStudy(myLastStudyID,myStudyID)) {
00399     //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
00400     //     Try to get id of the study from the SALOME Session
00401     if(myStudyID < 0 ) SetStudyID(-1);    
00402     myAdvancedOp = myGeomEngine->GetIAdvancedOperations(myStudyID);
00403   }
00404 }
00405 
00406 //=============================================================================
00407 //  GetServant:
00408 //=============================================================================
00409 PortableServer::ServantBase_var GEOM_Superv_i::GetServant(CORBA::Object_ptr       theObject,
00410                                                           PortableServer::POA_ptr thePOA)
00411 {
00412   if(CORBA::is_nil(theObject))  return NULL;
00413   PortableServer::Servant aServant = thePOA->reference_to_servant(theObject);
00414   return aServant;
00415 }
00416 
00417 //============================================================================
00418 // function : Save()
00419 // purpose  : save OCAF/Geom document
00420 //============================================================================
00421 SALOMEDS::TMPFile* GEOM_Superv_i::Save(SALOMEDS::SComponent_ptr theComponent,
00422                                        const char* theURL,
00423                                        CORBA::Boolean isMultiFile)
00424 {
00425   SALOMEDS::TMPFile_var aStreamFile;
00426   return aStreamFile._retn();
00427 }
00428 
00429 //============================================================================
00430 // function : SaveASCII()
00431 // purpose  :
00432 //============================================================================
00433 SALOMEDS::TMPFile* GEOM_Superv_i::SaveASCII(SALOMEDS::SComponent_ptr theComponent,
00434                                             const char* theURL,
00435                                             CORBA::Boolean isMultiFile)
00436 {
00437   SALOMEDS::TMPFile_var aStreamFile;
00438   return aStreamFile._retn();
00439 }
00440 
00441 //============================================================================
00442 // function : Load()
00443 // purpose  :
00444 //============================================================================
00445 CORBA::Boolean GEOM_Superv_i::Load(SALOMEDS::SComponent_ptr theComponent,
00446                                    const SALOMEDS::TMPFile& theStream,
00447                                    const char* theURL,
00448                                    CORBA::Boolean isMultiFile)
00449 {
00450   return false;
00451 }
00452 
00453 //============================================================================
00454 // function : LoadASCII()
00455 // purpose  :
00456 //============================================================================
00457 CORBA::Boolean GEOM_Superv_i::LoadASCII(SALOMEDS::SComponent_ptr theComponent,
00458                                         const SALOMEDS::TMPFile& theStream,
00459                                         const char* theURL,
00460                                         CORBA::Boolean isMultiFile)
00461 {
00462   return false;
00463 }
00464 
00465 //============================================================================
00466 // function : Close()
00467 // purpose  :
00468 //============================================================================
00469 void GEOM_Superv_i::Close(SALOMEDS::SComponent_ptr theComponent)
00470 {
00471 }
00472 
00473 //============================================================================
00474 // function : ComponentDataType()
00475 // purpose  :
00476 //============================================================================
00477 char* GEOM_Superv_i::ComponentDataType()
00478 {
00479   return 0;
00480 }
00481 
00482 //============================================================================
00483 // function : IORToLocalPersistentID()
00484 // purpose  :
00485 //============================================================================
00486 char* GEOM_Superv_i::IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject,
00487                                             const char* IORString,
00488                                             CORBA::Boolean isMultiFile,
00489                                             CORBA::Boolean isASCII)
00490 {
00491   return 0;
00492 }
00493 
00494 //============================================================================
00495 // function : LocalPersistentIDToIOR()
00496 // purpose  : Create/Load CORBA object from a persistent ref (an entry)
00497 //          : Used when a study is loaded
00498 //          : The IOR (IORName) of object created is returned
00499 //============================================================================
00500 char* GEOM_Superv_i::LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject,
00501                                             const char* aLocalPersistentID,
00502                                             CORBA::Boolean isMultiFile,
00503                                             CORBA::Boolean isASCII)
00504 {
00505   return 0;
00506 }
00507 
00508 //============================================================================
00509 // function : CanPublishInStudy
00510 // purpose  :
00511 //============================================================================
00512 CORBA::Boolean GEOM_Superv_i::CanPublishInStudy(CORBA::Object_ptr theIOR)
00513 {
00514   if (CORBA::is_nil(myGeomEngine))
00515     setGeomEngine();
00516   return myGeomEngine->CanPublishInStudy(theIOR);
00517 }
00518 
00519 //============================================================================
00520 // function : PublishInStudy
00521 // purpose  :
00522 //============================================================================
00523 SALOMEDS::SObject_ptr GEOM_Superv_i::PublishInStudy(SALOMEDS::Study_ptr theStudy,
00524                                                     SALOMEDS::SObject_ptr theSObject,
00525                                                     CORBA::Object_ptr theObject,
00526                                                     const char* theName) throw (SALOME::SALOME_Exception)
00527 {
00528   if (CORBA::is_nil(myGeomEngine))
00529     setGeomEngine();
00530   return myGeomEngine->PublishInStudy(theStudy, theSObject, theObject, theName);
00531 }
00532 
00533 //============================================================================
00534 // function : PublishNamedShapesInStudy
00535 // purpose  :
00536 //============================================================================
00537 GEOM::ListOfGO*
00538 GEOM_Superv_i::PublishNamedShapesInStudy(SALOMEDS::Study_ptr theStudy,
00539                                          //SALOMEDS::SObject_ptr theSObject,
00540                                          CORBA::Object_ptr theObject)
00541 {
00542   if (CORBA::is_nil(myGeomEngine))
00543     setGeomEngine();
00544   return myGeomEngine->PublishNamedShapesInStudy(theStudy, theObject);
00545 }
00546 
00547 //============================================================================
00548 // function : CanCopy()
00549 // purpose  :
00550 //============================================================================
00551 CORBA::Boolean GEOM_Superv_i::CanCopy(SALOMEDS::SObject_ptr theObject)
00552 {
00553   return false;
00554 }
00555 
00556 //============================================================================
00557 // function : CopyFrom()
00558 // purpose  :
00559 //============================================================================
00560 SALOMEDS::TMPFile* GEOM_Superv_i::CopyFrom(SALOMEDS::SObject_ptr theObject, CORBA::Long& theObjectID)
00561 {
00562   SALOMEDS::TMPFile_var aStreamFile;
00563   return aStreamFile._retn();
00564 }
00565 
00566 //============================================================================
00567 // function : CanPaste()
00568 // purpose  :
00569 //============================================================================
00570 CORBA::Boolean GEOM_Superv_i::CanPaste(const char* theComponentName, CORBA::Long theObjectID)
00571 {
00572   return false;
00573 }
00574 
00575 //============================================================================
00576 // function : PasteInto()
00577 // purpose  :
00578 //============================================================================
00579 SALOMEDS::SObject_ptr GEOM_Superv_i::PasteInto(const SALOMEDS::TMPFile& theStream,
00580                                                CORBA::Long theObjectID,
00581                                                SALOMEDS::SObject_ptr theObject)
00582 {
00583   SALOMEDS::SObject_var aNewSO;
00584   return aNewSO._retn();
00585 }
00586 
00587 //================= Primitives Construction : BasicOperations =================
00588 //=============================================================================
00589 //  MakePointXYZ:
00590 //=============================================================================
00591 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointXYZ(CORBA::Double theX,
00592                                                   CORBA::Double theY,
00593                                                   CORBA::Double theZ)
00594 {
00595   beginService( " GEOM_Superv_i::MakePointXYZ" );
00596   MESSAGE("GEOM_Superv_i::MakePointXYZ");
00597   getBasicOp();
00598   // make vertex and return
00599   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePointXYZ(theX, theY, theZ);
00600   endService( " GEOM_Superv_i::MakePointXYZ" );
00601   return anObj;
00602 }
00603 
00604 //=============================================================================
00605 //  MakePointWithReference:
00606 //=============================================================================
00607 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointWithReference (GEOM::GEOM_Object_ptr theReference,
00608                                                              CORBA::Double theX,
00609                                                              CORBA::Double theY,
00610                                                              CORBA::Double theZ)
00611 {
00612   beginService( " GEOM_Superv_i::MakePointWithReference" );
00613   MESSAGE("GEOM_Superv_i::MakePointWithReference");
00614   getBasicOp();
00615   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePointWithReference(theReference, theX, theY, theZ);
00616   endService( " GEOM_Superv_i::MakePointWithReference" );
00617   return anObj;
00618 }
00619 
00620 //=============================================================================
00621 //  MakePointOnCurve:
00622 //=============================================================================
00623 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointOnCurve (GEOM::GEOM_Object_ptr theRefCurve,
00624                                                        CORBA::Double theParameter)
00625 {
00626   beginService( " GEOM_Superv_i::MakePointOnCurve" );
00627   MESSAGE("GEOM_Superv_i::MakePointOnCurve");
00628   getBasicOp();
00629   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePointOnCurve(theRefCurve, theParameter);
00630   endService( " GEOM_Superv_i::MakePointOnCurve" );
00631   return anObj;
00632 }
00633 
00634 //=============================================================================
00635 //  MakePointOnCurveByLength:
00636 //=============================================================================
00637 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointOnCurveByLength (GEOM::GEOM_Object_ptr theRefCurve,
00638                                                                CORBA::Double theLength,
00639                                                                GEOM::GEOM_Object_ptr theStartPoint)
00640 {
00641   beginService( " GEOM_Superv_i::MakePointOnCurveByLength" );
00642   MESSAGE("GEOM_Superv_i::MakePointOnCurveByLength");
00643   getBasicOp();
00644   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePointOnCurveByLength(theRefCurve, theLength, theStartPoint);
00645   endService( " GEOM_Superv_i::MakePointOnCurveByLength" );
00646   return anObj;
00647 }
00648 
00649 //=============================================================================
00650 //  MakePointOnCurveByCoord
00651 //=============================================================================
00652 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointOnCurveByCoord (GEOM::GEOM_Object_ptr theRefCurve,
00653                                                               CORBA::Double theXParameter,
00654                                                               CORBA::Double theYParameter,
00655                                                               CORBA::Double theZParameter)
00656 {
00657   beginService( " GEOM_Superv_i::MakePointOnCurveByCoord" );
00658   MESSAGE("GEOM_Superv_i::MakePointOnCurveByCoord");
00659   getBasicOp();
00660   GEOM::GEOM_Object_ptr anObj =
00661     myBasicOp->MakePointOnCurveByCoord(theRefCurve, theXParameter,
00662                                 theYParameter, theZParameter);
00663   endService( " GEOM_Superv_i::MakePointOnCurveByCoord" );
00664   return anObj;
00665 }
00666 
00667 //=============================================================================
00668 //  MakePointOnSurface:
00669 //=============================================================================
00670 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointOnSurface (GEOM::GEOM_Object_ptr theRefSurface,
00671                                                          CORBA::Double theUParameter,
00672                                                          CORBA::Double theVParameter)
00673 {
00674   beginService( " GEOM_Superv_i::MakePointOnSurface" );
00675   MESSAGE("GEOM_Superv_i::MakePointOnSurface");
00676   getBasicOp();
00677   GEOM::GEOM_Object_ptr anObj =
00678     myBasicOp->MakePointOnSurface(theRefSurface, theUParameter, theVParameter);
00679   endService( " GEOM_Superv_i::MakePointOnSurface" );
00680   return anObj;
00681 }
00682 
00683 //=============================================================================
00684 //  MakePointOnSurfaceByCoord
00685 //=============================================================================
00686 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointOnSurfaceByCoord (GEOM::GEOM_Object_ptr theRefSurface,
00687                                                                 CORBA::Double theXParameter,
00688                                                                 CORBA::Double theYParameter,
00689                                                                 CORBA::Double theZParameter)
00690 {
00691   beginService( " GEOM_Superv_i::MakePointOnSurfaceByCoord" );
00692   MESSAGE("GEOM_Superv_i::MakePointOnSurfaceByCoord");
00693   getBasicOp();
00694   GEOM::GEOM_Object_ptr anObj =
00695     myBasicOp->MakePointOnSurfaceByCoord(theRefSurface, theXParameter,
00696                                 theYParameter, theZParameter);
00697   endService( " GEOM_Superv_i::MakePointOnSurfaceByCoord" );
00698   return anObj;
00699 }
00700 
00701 //=============================================================================
00702 //  MakePointOnLinesIntersection:
00703 //=============================================================================
00704 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointOnLinesIntersection (GEOM::GEOM_Object_ptr theRefLine1,
00705                                                                    GEOM::GEOM_Object_ptr theRefLine2)
00706 {
00707   beginService( " GEOM_Superv_i::MakePointOnLinesIntersection" );
00708   MESSAGE("GEOM_Superv_i::MakePointOnLinesIntersection");
00709   getBasicOp();
00710   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePointOnLinesIntersection(theRefLine1, theRefLine2);
00711   endService( " GEOM_Superv_i::MakePointOnLinesIntersection" );
00712   return anObj;
00713 }
00714 
00715 //=============================================================================
00716 //  MakeTangentOnCurve:
00717 //=============================================================================
00718 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeTangentOnCurve (GEOM::GEOM_Object_ptr theRefCurve,
00719                                                          CORBA::Double theParameter)
00720 {
00721   beginService( " GEOM_Superv_i::MakeTangentOnCurve" );
00722   MESSAGE("GEOM_Superv_i::MakeTangentOnCurve");
00723   getBasicOp();
00724   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeTangentOnCurve(theRefCurve, theParameter);
00725   endService( " GEOM_Superv_i::MakeTangentOnCurve" );
00726   return anObj;
00727 }
00728 
00729 //=============================================================================
00730 //  MakeVectorDXDYDZ:
00731 //=============================================================================
00732 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeVectorDXDYDZ (CORBA::Double theDX,
00733                                                        CORBA::Double theDY,
00734                                                        CORBA::Double theDZ)
00735 {
00736   beginService( " GEOM_Superv_i::MakeVectorDXDYDZ" );
00737   MESSAGE("GEOM_Superv_i::MakeVectorDXDYDZ");
00738   getBasicOp();
00739   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeVectorDXDYDZ(theDX, theDY, theDZ);
00740   endService( " GEOM_Superv_i::MakeVectorDXDYDZ" );
00741   return anObj;
00742 }
00743 
00744 //=============================================================================
00745 //  MakeVectorTwoPnt:
00746 //=============================================================================
00747 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeVectorTwoPnt (GEOM::GEOM_Object_ptr thePnt1,
00748                                                        GEOM::GEOM_Object_ptr thePnt2)
00749 {
00750   beginService( " GEOM_Superv_i::MakeVectorTwoPnt" );
00751   MESSAGE("GEOM_Superv_i::MakeVector");
00752   getBasicOp();
00753   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeVectorTwoPnt(thePnt1, thePnt2);
00754   endService( " GEOM_Superv_i::MakeVectorTwoPnt" );
00755   return anObj;
00756 }
00757 
00758 //=============================================================================
00759 //  MakeLineTwoPnt:
00760 //=============================================================================
00761 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeLineTwoPnt (GEOM::GEOM_Object_ptr thePnt1,
00762                                                      GEOM::GEOM_Object_ptr thePnt2)
00763 {
00764   beginService( " GEOM_Superv_i::MakeLineTwoPnt");
00765   MESSAGE("GEOM_Superv_i::MakeLineTwoPnt");
00766   getBasicOp();
00767   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeLineTwoPnt(thePnt1, thePnt2);
00768   endService( " GEOM_Superv_i::MakeLineTwoPnt");
00769   return anObj;
00770 }
00771 
00772 //=============================================================================
00773 //  MakeLineTwoFaces:
00774 //=============================================================================
00775 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeLineTwoFaces (GEOM::GEOM_Object_ptr theFace1,
00776                                                        GEOM::GEOM_Object_ptr theFace2)
00777 {
00778   beginService( " GEOM_Superv_i::MakeLineTwoFaces");
00779   MESSAGE("GEOM_Superv_i::MakeLineTwoFaces");
00780   getBasicOp();
00781   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeLineTwoFaces(theFace1, theFace2);
00782   endService( " GEOM_Superv_i::MakeLineTwoFaces");
00783   return anObj;
00784 }
00785 
00786 //=============================================================================
00787 //  MakePlaneThreePnt:
00788 //=============================================================================
00789 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePlaneThreePnt (GEOM::GEOM_Object_ptr thePnt1,
00790                                                         GEOM::GEOM_Object_ptr thePnt2,
00791                                                         GEOM::GEOM_Object_ptr thePnt3,
00792                                                         CORBA::Double theTrimSize)
00793 {
00794   beginService( " GEOM_Superv_i::MakePlaneThreePnt");
00795   MESSAGE("GEOM_Superv_i::MakePlaneThreePnt");
00796   getBasicOp();
00797   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePlaneThreePnt(thePnt1, thePnt2, thePnt3, theTrimSize);
00798   endService( " GEOM_Superv_i::MakePlaneThreePnt");
00799   return anObj;
00800 }
00801 
00802 //=============================================================================
00803 //  MakePlanePntVec:
00804 //=============================================================================
00805 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePlanePntVec (GEOM::GEOM_Object_ptr thePnt,
00806                                                       GEOM::GEOM_Object_ptr theVec,
00807                                                       CORBA::Double theTrimSize)
00808 {
00809   beginService( " GEOM_Superv_i::MakePlanePntVec" );
00810   MESSAGE("GEOM_Superv_i::MakePlanePntVec");
00811   getBasicOp();
00812   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePlanePntVec(thePnt, theVec, theTrimSize);
00813   endService( " GEOM_Superv_i::MakePlanePntVec" );
00814   return anObj;
00815 }
00816 
00817 //=============================================================================
00818 //  MakePlaneFace:
00819 //=============================================================================
00820 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePlaneFace (GEOM::GEOM_Object_ptr theFace,
00821                                                     CORBA::Double theTrimSize)
00822 {
00823   beginService( " GEOM_Superv_i::MakePlaneFace" );
00824   MESSAGE("GEOM_Superv_i::MakePlaneFace");
00825   getBasicOp();
00826   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePlaneFace(theFace, theTrimSize);
00827   endService( " GEOM_Superv_i::MakePlaneFace" );
00828   return anObj;
00829 }
00830 
00831 //=============================================================================
00832 //  MakePlane2Vec:
00833 //=============================================================================
00834 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePlane2Vec (GEOM::GEOM_Object_ptr theVec1,
00835                                                     GEOM::GEOM_Object_ptr theVec2,
00836                                                     CORBA::Double theTrimSize)
00837 {
00838   beginService( " GEOM_Superv_i::MakePlane2Vec" );
00839   MESSAGE("GEOM_Superv_i::MakePlane2Vec");
00840   getBasicOp();
00841   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePlane2Vec(theVec1, theVec2, theTrimSize);
00842   endService( " GEOM_Superv_i::MakePlane2Vec" );
00843   return anObj;
00844 }
00845 
00846 //=============================================================================
00847 //  MakePlaneLCS:
00848 //=============================================================================
00849 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePlaneLCS (GEOM::GEOM_Object_ptr theLCS,
00850                                                    CORBA::Double theTrimSize,
00851                                                    CORBA::Double theOrientation)
00852 {
00853   beginService( " GEOM_Superv_i::MakePlaneLCS" );
00854   MESSAGE("GEOM_Superv_i::MakePlaneLCS");
00855   getBasicOp();
00856   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePlaneLCS(theLCS, theTrimSize, theOrientation);
00857   endService( " GEOM_Superv_i::MakePlaneLCS" );
00858   return anObj;
00859 }
00860 
00861 //=============================================================================
00862 //  MakeMarker:
00863 //=============================================================================
00864 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeMarker
00865 (CORBA::Double theOX , CORBA::Double theOY , CORBA::Double theOZ,
00866  CORBA::Double theXDX, CORBA::Double theXDY, CORBA::Double theXDZ,
00867  CORBA::Double theYDX, CORBA::Double theYDY, CORBA::Double theYDZ)
00868 {
00869   beginService( " GEOM_Superv_i::MakeMarker" );
00870   MESSAGE("GEOM_Superv_i::MakeMarker");
00871   getBasicOp();
00872   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeMarker(theOX, theOY, theOZ, theXDX, theXDY, theXDZ, theYDX, theYDY, theYDZ);
00873   endService( " GEOM_Superv_i::MakeMarker" );
00874   return anObj;
00875 }
00876 
00877 //=============================================================================
00878 //  MakeMarkerFromShape:
00879 //=============================================================================
00880 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeMarkerFromShape (GEOM::GEOM_Object_ptr theShape)
00881 {
00882   beginService( " GEOM_Superv_i::MakeMarkerFromShape" );
00883   MESSAGE("GEOM_Superv_i::MakeMarkerFromShape");
00884   getBasicOp();
00885   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeMarkerFromShape(theShape);
00886   endService( " GEOM_Superv_i::MakeMarkerFromShape" );
00887   return anObj;
00888 }
00889 
00890 //=============================================================================
00891 //  MakeMarkerPntTwoVec:
00892 //=============================================================================
00893 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeMarkerPntTwoVec (GEOM::GEOM_Object_ptr theOrigin,
00894                                                           GEOM::GEOM_Object_ptr theXVec,
00895                                                           GEOM::GEOM_Object_ptr theYVec)
00896 {
00897   beginService( " GEOM_Superv_i::MakeMarkerPntTwoVec" );
00898   MESSAGE("GEOM_Superv_i::MakeMarkerPntTwoVec");
00899   getBasicOp();
00900   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeMarkerPntTwoVec(theOrigin, theXVec, theYVec);
00901   endService( " GEOM_Superv_i::MakeMarkerPntTwoVec" );
00902   return anObj;
00903 }
00904 
00905 //=============================================================================
00906 //  MakeTangentPlaneOnFace:
00907 //=============================================================================
00908 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeTangentPlaneOnFace (GEOM::GEOM_Object_ptr theFace,
00909                                                  CORBA::Double theParameterU,
00910                                                  CORBA::Double theParameterV,
00911                                                  CORBA::Double theTrimSize)
00912 {
00913   beginService( " GEOM_Superv_i::MakeTangentPlaneOnFace" );
00914   MESSAGE("GEOM_Superv_i::MakeTangentPlaneOnFace");
00915   getBasicOp();
00916   GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeTangentPlaneOnFace(theFace, theParameterU,theParameterV,theTrimSize);
00917   endService( " GEOM_Superv_i::MakeTangentPlaneOnFace" );
00918   return anObj;
00919 }
00920 
00921 //================= Primitives Construction : 3DPrimOperations ================
00922 //=============================================================================
00923 //  MakeBox:
00924 //=============================================================================
00925 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeBox (CORBA::Double theX1,
00926                                               CORBA::Double theY1,
00927                                               CORBA::Double theZ1,
00928                                               CORBA::Double theX2,
00929                                               CORBA::Double theY2,
00930                                               CORBA::Double theZ2)
00931 {
00932   beginService( " GEOM_Superv_i::MakeBox" );
00933   MESSAGE("GEOM_Superv_i::MakeBox");
00934   getBasicOp();
00935   get3DPrimOp();
00936   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeBoxTwoPnt(myBasicOp->MakePointXYZ(theX1, theY1, theZ1),
00937                                                           myBasicOp->MakePointXYZ(theX2, theY2, theZ2));
00938   endService( " GEOM_Superv_i::MakeBox" );
00939   return anObj;
00940 }
00941 
00942 //=============================================================================
00943 //  MakeBoxDXDYDZ:
00944 //=============================================================================
00945 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeBoxDXDYDZ (CORBA::Double theDX,
00946                                                     CORBA::Double theDY,
00947                                                     CORBA::Double theDZ)
00948 {
00949   beginService( " GEOM_Superv_i::MakeBoxDXDYDZ" );
00950   MESSAGE("GEOM_Superv_i::MakeBoxDXDYDZ");
00951   get3DPrimOp();
00952   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeBoxDXDYDZ(theDX, theDY, theDZ);
00953   endService( " GEOM_Superv_i::MakeBoxDXDYDZ" );
00954   return anObj;
00955 }
00956 
00957 //=============================================================================
00958 //  MakeBoxTwoPnt:
00959 //=============================================================================
00960 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeBoxTwoPnt (GEOM::GEOM_Object_ptr thePnt1,
00961                                                     GEOM::GEOM_Object_ptr thePnt2)
00962 {
00963   beginService( " GEOM_Superv_i::MakeBoxTwoPnt" );
00964   MESSAGE("GEOM_Superv_i::MakeBoxTwoPnt");
00965   get3DPrimOp();
00966   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeBoxTwoPnt(thePnt1, thePnt2);
00967   endService( " GEOM_Superv_i::MakeBoxTwoPnt" );
00968   return anObj;
00969 }
00970 
00971 //=============================================================================
00972 //  MakeFaceHW:
00973 //=============================================================================
00974 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFaceHW (CORBA::Double theH,
00975                                                  CORBA::Double theW,
00976                                                  CORBA::Short  theOrientation)
00977 {
00978   beginService( " GEOM_Superv_i::MakeFaceHW" );
00979   MESSAGE("GEOM_Superv_i::MakeFaceHW");
00980   get3DPrimOp();
00981   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeFaceHW(theH, theW, theOrientation);
00982   endService( " GEOM_Superv_i::MakeFaceHW" );
00983   return anObj;
00984 }
00985 
00986 //=============================================================================
00987 //  MakeFaceObjHW:
00988 //=============================================================================
00989 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFaceObjHW (GEOM::GEOM_Object_ptr theObj,
00990                                                     CORBA::Double theH,
00991                                                     CORBA::Double theW)
00992 {
00993   beginService( " GEOM_Superv_i::MakeFaceObjHW" );
00994   MESSAGE("GEOM_Superv_i::MakeFaceObjHW");
00995   get3DPrimOp();
00996   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeFaceObjHW(theObj, theH, theW);
00997   endService( " GEOM_Superv_i::MakeFaceObjHW" );
00998   return anObj;
00999 }
01000 
01001 //=============================================================================
01002 //  MakeDiskPntVecR:
01003 //=============================================================================
01004 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeDiskPntVecR (GEOM::GEOM_Object_ptr theCenter,
01005                                                       GEOM::GEOM_Object_ptr theVector,
01006                                                       CORBA::Double theR)
01007 {
01008   beginService( " GEOM_Superv_i::MakeDiskPntVecR" );
01009   MESSAGE("GEOM_Superv_i::MakeDiskPntVecR");
01010   get3DPrimOp();
01011   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeDiskPntVecR(theCenter, theVector, theR);
01012   endService( " GEOM_Superv_i::MakeDiskPntVecR" );
01013   return anObj;
01014 }
01015 
01016 //=============================================================================
01017 //  MakeDiskThreePnt:
01018 //=============================================================================
01019 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeDiskThreePnt (GEOM::GEOM_Object_ptr thePnt1,
01020                                                        GEOM::GEOM_Object_ptr thePnt2,
01021                                                        GEOM::GEOM_Object_ptr thePnt3)
01022 {
01023   beginService( " GEOM_Superv_i::MakeDiskThreePnt" );
01024   MESSAGE("GEOM_Superv_i::MakeDiskThreePnt");
01025   get3DPrimOp();
01026   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeDiskThreePnt(thePnt1, thePnt2, thePnt3);
01027   endService( " GEOM_Superv_i::MakeDiskThreePnt" );
01028   return anObj;
01029 }
01030 
01031 //=============================================================================
01032 //  MakeDiskR:
01033 //=============================================================================
01034 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeDiskR (CORBA::Double theR,
01035                                                 CORBA::Short  theOrientation)
01036 {
01037   beginService( " GEOM_Superv_i::MakeDiskR" );
01038   MESSAGE("GEOM_Superv_i::MakeDiskR");
01039   get3DPrimOp();
01040   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeDiskR(theR, theOrientation);
01041   endService( " GEOM_Superv_i::MakeDiskR" );
01042   return anObj;
01043 }
01044 
01045 //=============================================================================
01046 //  MakeCylinderPntVecRH:
01047 //=============================================================================
01048 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCylinderPntVecRH (GEOM::GEOM_Object_ptr thePnt,
01049                                                            GEOM::GEOM_Object_ptr theAxis,
01050                                                            CORBA::Double theRadius,
01051                                                            CORBA::Double theHeight)
01052 {
01053   beginService( " GEOM_Superv_i::MakeCylinderPntVecRH" );
01054   MESSAGE("GEOM_Superv_i::MakeCylinderPntVecRH");
01055   get3DPrimOp();
01056   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeCylinderPntVecRH(thePnt, theAxis, theRadius, theHeight);
01057   endService( " GEOM_Superv_i::MakeCylinderPntVecRH" );
01058   return anObj;
01059 }
01060 
01061 //=============================================================================
01062 //  MakeCylinderRH:
01063 //=============================================================================
01064 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCylinderRH (CORBA::Double theR,
01065                                                      CORBA::Double theH)
01066 {
01067   beginService( " GEOM_Superv_i::MakeCylinderRH" );
01068   MESSAGE("GEOM_Superv_i::MakeCylinderRH");
01069   get3DPrimOp();
01070   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeCylinderRH(theR, theH);
01071   endService( " GEOM_Superv_i::MakeCylinderRH" );
01072   return anObj;
01073 }
01074 
01075 //=============================================================================
01076 //  MakeSphere:
01077 //=============================================================================
01078 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSphere  (CORBA::Double theX,
01079                                                   CORBA::Double theY,
01080                                                   CORBA::Double theZ,
01081                                                   CORBA::Double theRadius)
01082 {
01083   beginService( " GEOM_Superv_i::MakeSphepe" );
01084   MESSAGE("GEOM_Superv_i::MakeSphepe");
01085   getBasicOp();
01086   get3DPrimOp();
01087   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeSpherePntR(myBasicOp->MakePointXYZ(theX, theY, theZ), theRadius);
01088   endService( " GEOM_Superv_i::MakeSphepe" );
01089   return anObj;
01090 }
01091 
01092 //=============================================================================
01093 //  MakeSphereR:
01094 //=============================================================================
01095 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSphereR (CORBA::Double theR)
01096 {
01097   beginService( " GEOM_Superv_i::MakeSphereR" );
01098   MESSAGE("GEOM_Superv_i::MakeSphereR");
01099   get3DPrimOp();
01100   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeSphereR(theR);
01101   endService( " GEOM_Superv_i::MakeSphereR" );
01102   return anObj;
01103 }
01104 
01105 //=============================================================================
01106 //  MakeSpherePntR:
01107 //=============================================================================
01108 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSpherePntR (GEOM::GEOM_Object_ptr thePnt,
01109                                                      CORBA::Double theR)
01110 {
01111   beginService( " GEOM_Superv_i::MakeSpherePntR" );
01112   MESSAGE("GEOM_Superv_i::MakeSpherePntR");
01113   get3DPrimOp();
01114   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeSpherePntR(thePnt, theR);
01115   endService( " GEOM_Superv_i::MakeSpherePntR" );
01116   return anObj;
01117 }
01118 
01119 //=============================================================================
01120 //  MakeTorusPntVecRR:
01121 //=============================================================================
01122 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeTorusPntVecRR (GEOM::GEOM_Object_ptr thePnt,
01123                                                         GEOM::GEOM_Object_ptr theVec,
01124                                                         CORBA::Double theRMajor,
01125                                                         CORBA::Double theRMinor)
01126 {
01127   beginService( " GEOM_Superv_i::MakeTorusPntVecRR" );
01128   MESSAGE("GEOM_Superv_i::MakeTorusPntVecRR");
01129   get3DPrimOp();
01130   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeTorusPntVecRR(thePnt, theVec, theRMajor, theRMinor);
01131   endService( " GEOM_Superv_i::MakeTorusPntVecRR" );
01132   return anObj;
01133 }
01134 
01135 //=============================================================================
01136 //  MakeTorusRR:
01137 //=============================================================================
01138 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeTorusRR (CORBA::Double theRMajor,
01139                                                   CORBA::Double theRMinor)
01140 {
01141   beginService( " GEOM_Superv_i::MakeTorusRR" );
01142   MESSAGE("GEOM_Superv_i::MakeTorusRR");
01143   get3DPrimOp();
01144   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeTorusRR(theRMajor, theRMinor);
01145   endService( " GEOM_Superv_i::MakeTorusRR" );
01146   return anObj;
01147 }
01148 
01149 //=============================================================================
01150 //  MakeConePntVecR1R2H:
01151 //=============================================================================
01152 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeConePntVecR1R2H (GEOM::GEOM_Object_ptr thePnt,
01153                                                           GEOM::GEOM_Object_ptr theAxis,
01154                                                           CORBA::Double theR1,
01155                                                           CORBA::Double theR2,
01156                                                           CORBA::Double theHeight)
01157 {
01158   beginService( " GEOM_Superv_i::MakeConePntVecR1R2H" );
01159   MESSAGE("GEOM_Superv_i::MakeConePntVecR1R2H");
01160   get3DPrimOp();
01161   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeConePntVecR1R2H(thePnt, theAxis, theR1, theR2, theHeight);
01162   endService( " GEOM_Superv_i::MakeConePntVecR1R2H" );
01163   return anObj;
01164 }
01165 
01166 //=============================================================================
01167 //  MakeConeR1R2H:
01168 //=============================================================================
01169 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeConeR1R2H (CORBA::Double theR1,
01170                                                     CORBA::Double theR2,
01171                                                     CORBA::Double theHeight)
01172 {
01173   beginService( " GEOM_Superv_i::MakeConeR1R2H" );
01174   MESSAGE("GEOM_Superv_i::MakeConeR1R2H");
01175   get3DPrimOp();
01176   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeConeR1R2H(theR1, theR2, theHeight);
01177   endService( " GEOM_Superv_i::MakeConeR1R2H" );
01178   return anObj;
01179 }
01180 
01181 //=============================================================================
01182 //  MakePrismVecH:
01183 //=============================================================================
01184 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismVecH (GEOM::GEOM_Object_ptr theBase,
01185                                                     GEOM::GEOM_Object_ptr theVec,
01186                                                     CORBA::Double         theH)
01187 {
01188   beginService( " GEOM_Superv_i::MakePrismVecH" );
01189   MESSAGE("GEOM_Superv_i::MakePrismVecH");
01190   get3DPrimOp();
01191   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePrismVecH(theBase, theVec, theH);
01192   endService( " GEOM_Superv_i::MakePrismVecH" );
01193   return anObj;
01194 }
01195 
01196 //=============================================================================
01197 //  MakePrismVecH2Ways:
01198 //=============================================================================
01199 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismVecH2Ways (GEOM::GEOM_Object_ptr theBase,
01200                                                          GEOM::GEOM_Object_ptr theVec,
01201                                                          CORBA::Double         theH)
01202 {
01203   beginService( " GEOM_Superv_i::MakePrismVecH2Ways" );
01204   MESSAGE("GEOM_Superv_i::MakePrismVecH2Ways");
01205   get3DPrimOp();
01206   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePrismVecH2Ways(theBase, theVec, theH);
01207   endService( " GEOM_Superv_i::MakePrismVecH2Ways" );
01208   return anObj;
01209 }
01210 
01211 //=============================================================================
01212 //  MakePrismTwoPnt:
01213 //=============================================================================
01214 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismTwoPnt (GEOM::GEOM_Object_ptr theBase,
01215                                                       GEOM::GEOM_Object_ptr thePoint1,
01216                                                       GEOM::GEOM_Object_ptr thePoint2)
01217 {
01218   beginService( " GEOM_Superv_i::MakePrismTwoPnt" );
01219   MESSAGE("GEOM_Superv_i::MakePrismTwoPnt");
01220   get3DPrimOp();
01221   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePrismTwoPnt(theBase, thePoint1, thePoint2);
01222   endService( " GEOM_Superv_i::MakePrismTwoPnt" );
01223   return anObj;
01224 }
01225 
01226 //=============================================================================
01227 //  MakePrismTwoPnt2Ways:
01228 //=============================================================================
01229 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismTwoPnt2Ways (GEOM::GEOM_Object_ptr theBase,
01230                                                            GEOM::GEOM_Object_ptr thePoint1,
01231                                                            GEOM::GEOM_Object_ptr thePoint2)
01232 {
01233   beginService( " GEOM_Superv_i::MakePrismTwoPnt2Ways" );
01234   MESSAGE("GEOM_Superv_i::MakePrismTwoPnt2Ways");
01235   get3DPrimOp();
01236   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePrismTwoPnt2Ways(theBase, thePoint1, thePoint2);
01237   endService( " GEOM_Superv_i::MakePrismTwoPnt2Ways" );
01238   return anObj;
01239 }
01240 
01241 //=============================================================================
01242 //  MakePrismDXDYDZ:
01243 //=============================================================================
01244 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismDXDYDZ (GEOM::GEOM_Object_ptr theBase,
01245                       CORBA::Double theDX, CORBA::Double theDY, CORBA::Double theDZ)
01246 {
01247   beginService( " GEOM_Superv_i::MakePrismDXDYDZ" );
01248   MESSAGE("GEOM_Superv_i::MakePrismDXDYDZ");
01249   get3DPrimOp();
01250   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePrismDXDYDZ(theBase, theDX, theDY, theDZ);
01251   endService( " GEOM_Superv_i::MakePrismDXDYDZ" );
01252   return anObj;
01253 }
01254 
01255 //=============================================================================
01256 //  MakePrismDXDYDZ:
01257 //=============================================================================
01258 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismDXDYDZ2Ways (GEOM::GEOM_Object_ptr theBase,
01259                       CORBA::Double theDX, CORBA::Double theDY, CORBA::Double theDZ)
01260 {
01261   beginService( " GEOM_Superv_i::MakePrismDXDYDZ2Ways" );
01262   MESSAGE("GEOM_Superv_i::MakePrismDXDYDZ2Ways");
01263   get3DPrimOp();
01264   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePrismDXDYDZ2Ways(theBase, theDX, theDY, theDZ);
01265   endService( " GEOM_Superv_i::MakePrismDXDYDZ2Ways" );
01266   return anObj;
01267 }
01268 
01269 //=============================================================================
01270 //  MakePipe:
01271 //=============================================================================
01272 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePipe (GEOM::GEOM_Object_ptr theBase,
01273                                                GEOM::GEOM_Object_ptr thePath)
01274 {
01275   beginService( " GEOM_Superv_i::MakePipe" );
01276   MESSAGE("GEOM_Superv_i::MakePipe");
01277   get3DPrimOp();
01278   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePipe(theBase, thePath);
01279   endService( " GEOM_Superv_i::MakePipe" );
01280   return anObj;
01281 }
01282 
01283 //=============================================================================
01284 //  MakeRevolutionAxisAngle:
01285 //=============================================================================
01286 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeRevolutionAxisAngle (GEOM::GEOM_Object_ptr theBase,
01287                                                               GEOM::GEOM_Object_ptr theAxis,
01288                                                               CORBA::Double theAngle)
01289 {
01290   beginService( " GEOM_Superv_i::MakeRevolutionAxisAngle" );
01291   MESSAGE("GEOM_Superv_i::MakeRevolutionAxisAngle");
01292   get3DPrimOp();
01293   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeRevolutionAxisAngle(theBase, theAxis, theAngle);
01294   endService( " GEOM_Superv_i::MakeRevolutionAxisAngle" );
01295   return anObj;
01296 }
01297 
01298 //=============================================================================
01299 //  MakeRevolutionAxisAngle:
01300 //=============================================================================
01301 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeRevolutionAxisAngle2Ways (GEOM::GEOM_Object_ptr theBase,
01302                                                                    GEOM::GEOM_Object_ptr theAxis,
01303                                                                    CORBA::Double theAngle)
01304 {
01305   beginService( " GEOM_Superv_i::MakeRevolutionAxisAngle2Ways" );
01306   MESSAGE("GEOM_Superv_i::MakeRevolutionAxisAngle2Ways");
01307   get3DPrimOp();
01308   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeRevolutionAxisAngle2Ways(theBase, theAxis, theAngle);
01309   endService( " GEOM_Superv_i::MakeRevolutionAxisAngle2Ways" );
01310   return anObj;
01311 }
01312 
01313 //=============================================================================
01314 //  MakeFilling:
01315 //=============================================================================
01316 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilling (GEOM::GEOM_Object_ptr theShape,
01317                                                   CORBA::Long theMinDeg,
01318                                                   CORBA::Long theMaxDeg,
01319                                                   CORBA::Double theTol2D,
01320                                                   CORBA::Double theTol3D,
01321                                                   CORBA::Long theNbIter,
01322                                                   GEOM::filling_oper_method theMethod,
01323                                                   CORBA::Boolean theApprox)
01324 {
01325   beginService( " GEOM_Superv_i::MakeFilling" );
01326   MESSAGE("GEOM_Superv_i::MakeFilling");
01327   get3DPrimOp();
01328   GEOM::GEOM_Object_ptr anObj =
01329     my3DPrimOp->MakeFilling(theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D,
01330                             theNbIter, theMethod, theApprox);
01331   endService( " GEOM_Superv_i::MakeFilling" );
01332   return anObj;
01333 }
01334 
01335 //============================= BooleanOperations =============================
01336 //=============================================================================
01337 //  MakeBoolean:
01338 //=============================================================================
01339 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeBoolean (GEOM::GEOM_Object_ptr theShape1,
01340                                                   GEOM::GEOM_Object_ptr theShape2,
01341                                                   CORBA::Long theOperation)
01342 {
01343   beginService( " GEOM_Superv_i::MakeBoolean" );
01344   // theOperation indicates the operation to be done:
01345   // 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section
01346   MESSAGE("GEOM_Superv_i::MakeBoolean");
01347   getBoolOp();
01348   GEOM::GEOM_Object_ptr anObj = myBoolOp->MakeBoolean(theShape1, theShape2, theOperation);
01349   endService( " GEOM_Superv_i::MakeBoolean" );
01350   return anObj;
01351 }
01352 
01353 //=============================================================================
01354 //  MakeThruSections:
01355 //=============================================================================
01356 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeThruSections(const GEOM::ListOfGO& theSeqSections,
01357                                          CORBA::Boolean theModeSolid,
01358                                          CORBA::Double thePreci,
01359                                          CORBA::Boolean theRuled)
01360 {
01361   beginService( " GEOM_Superv_i::MakeThruSections" );
01362   MESSAGE("GEOM_Superv_i::MakeThruSections");
01363   get3DPrimOp();
01364   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeThruSections(theSeqSections, theModeSolid,thePreci,theRuled);
01365   endService( " GEOM_Superv_i::MakeThruSections" );
01366   return anObj;
01367 }
01368 
01369 //=============================================================================
01370 //  MakePipe:
01371 //=============================================================================
01372 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePipeWithDifferentSections
01373                      (const GEOM::ListOfGO& theBases,
01374                       const GEOM::ListOfGO& theLocations,
01375                       GEOM::GEOM_Object_ptr thePath,
01376                       CORBA::Boolean theWithContact,
01377                       CORBA::Boolean theWithCorrections)
01378 {
01379   beginService( " GEOM_Superv_i::MakePipeWithDifferentSections" );
01380   MESSAGE("GEOM_Superv_i::MakePipeWithDifferentSections");
01381   get3DPrimOp();
01382   GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePipeWithDifferentSections(theBases,theLocations, thePath,theWithContact,theWithCorrections);
01383   endService( " GEOM_Superv_i::MakePipeWithDifferentSections" );
01384   return anObj;
01385 }
01386 
01387 
01388 //=============================================================================
01389 //  MakePipe:
01390 //=============================================================================
01391 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePipeWithShellSections
01392                    (const GEOM::ListOfGO& theBases,
01393                     const GEOM::ListOfGO& theSubBases,
01394                     const GEOM::ListOfGO& theLocations,
01395                     GEOM::GEOM_Object_ptr thePath,
01396                     CORBA::Boolean theWithContact,
01397                     CORBA::Boolean theWithCorrections)
01398 {
01399   beginService( " GEOM_Superv_i::MakePipeWithShellSections" );
01400   MESSAGE("GEOM_Superv_i::MakePipeWithShellSections");
01401   get3DPrimOp();
01402   GEOM::GEOM_Object_ptr anObj =
01403     my3DPrimOp->MakePipeWithShellSections(theBases, theSubBases,
01404                                           theLocations, thePath,
01405                                           theWithContact, theWithCorrections);
01406   endService( " GEOM_Superv_i::MakePipeWithShellSections" );
01407   return anObj;
01408 }
01409 
01410 
01411 //=============================================================================
01412 //  MakePipe:
01413 //=============================================================================
01414 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePipeShellsWithoutPath
01415                    (const GEOM::ListOfGO& theBases,
01416                     const GEOM::ListOfGO& theLocations)
01417 {
01418   beginService( " GEOM_Superv_i::MakePipeShellsWithoutPath" );
01419   MESSAGE("GEOM_Superv_i::MakePipeShellsWithoutPath");
01420   get3DPrimOp();
01421   GEOM::GEOM_Object_ptr anObj =
01422     my3DPrimOp->MakePipeShellsWithoutPath(theBases,theLocations);
01423   endService( " GEOM_Superv_i::MakePipeShellsWithoutPath" );
01424   return anObj;
01425 }
01426 
01427 
01428 //=============================================================================
01429 //  MakePipe:
01430 //=============================================================================
01431 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePipeBiNormalAlongVector
01432                                                 (GEOM::GEOM_Object_ptr theBase,
01433                                                  GEOM::GEOM_Object_ptr thePath,
01434                                                  GEOM::GEOM_Object_ptr theVec)
01435 {
01436   beginService( " GEOM_Superv_i::MakePipeBiNormalAlongVector" );
01437   MESSAGE("GEOM_Superv_i::MakePipeBiNormalAlongVector");
01438   get3DPrimOp();
01439   GEOM::GEOM_Object_ptr anObj =
01440     my3DPrimOp->MakePipeBiNormalAlongVector(theBase, thePath, theVec);
01441   endService( " GEOM_Superv_i::MakePipeBiNormalAlongVector" );
01442   return anObj;
01443 }
01444 
01445 
01446 //=============================================================================
01447 //  MakeFuse:
01448 //=============================================================================
01449 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFuse (GEOM::GEOM_Object_ptr theShape1,
01450                                                GEOM::GEOM_Object_ptr theShape2)
01451 {
01452   beginService( " GEOM_Superv_i::MakeFuse" );
01453   MESSAGE("GEOM_Superv_i::MakeFuse");
01454   getBoolOp();
01455   GEOM::GEOM_Object_ptr anObj = myBoolOp->MakeBoolean(theShape1, theShape2, 3);
01456   endService( " GEOM_Superv_i::MakeFuse" );
01457   return anObj;
01458 }
01459 
01460 //=============================================================================
01461 //  MakePartition:
01462 //=============================================================================
01463 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePartition (GEOM::GEOM_List_ptr   theShapes,
01464                                                     GEOM::GEOM_List_ptr   theTools,
01465                                                     GEOM::GEOM_List_ptr   theKeepInside,
01466                                                     GEOM::GEOM_List_ptr   theRemoveInside,
01467                                                     CORBA::Short      theLimit,
01468                                                     CORBA::Boolean    theRemoveWebs,
01469                                                     GEOM::GEOM_List_ptr theMaterials,
01470                                                     CORBA::Short theKeepNonlimitShapes)
01471 {
01472   beginService( " GEOM_Superv_i::MakePartition" );
01473   MESSAGE("GEOM_Superv_i::MakePartition");
01474   GEOM_List_i<GEOM::ListOfGO>* aListImplS =
01475     dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theShapes, myPOA).in());
01476   GEOM_List_i<GEOM::ListOfGO>* aListImplT =
01477     dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theTools, myPOA).in());
01478   GEOM_List_i<GEOM::ListOfGO>* aListImplKI =
01479     dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theKeepInside, myPOA).in());
01480   GEOM_List_i<GEOM::ListOfGO>* aListImplRI =
01481     dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theRemoveInside, myPOA).in());
01482   GEOM_List_i<GEOM::ListOfLong>* aListImplM =
01483     dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theMaterials, myPOA).in());
01484   if (aListImplS && aListImplT && aListImplKI && aListImplRI && aListImplM) {
01485     getBoolOp();
01486     GEOM::GEOM_Object_ptr anObj =
01487       myBoolOp->MakePartition(aListImplS->GetList(), aListImplT->GetList(),
01488                               aListImplKI->GetList(), aListImplRI->GetList(),
01489                               theLimit, theRemoveWebs, aListImplM->GetList(),
01490                               theKeepNonlimitShapes);
01491     endService( " GEOM_Superv_i::MakePartition" );
01492     return anObj;
01493   }
01494   endService( " GEOM_Superv_i::MakePartition" );
01495   return NULL;
01496 }
01497 
01498 //=============================================================================
01499 //  MakeHalfPartition:
01500 //=============================================================================
01501 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeHalfPartition (GEOM::GEOM_Object_ptr theShape,
01502                                                         GEOM::GEOM_Object_ptr thePlane)
01503 {
01504   beginService( " GEOM_Superv_i::MakeHalfPartition" );
01505   MESSAGE("GEOM_Superv_i::MakeHalfPartition");
01506   getBoolOp();
01507   GEOM::GEOM_Object_ptr anObj = myBoolOp->MakeHalfPartition(theShape, thePlane);
01508   endService( " GEOM_Superv_i::MakeHalfPartition" );
01509   return anObj;
01510 }
01511 
01512 //============================== InsertOperations =============================
01513 //=============================================================================
01514 //  MakeCopy:
01515 //=============================================================================
01516 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCopy (GEOM::GEOM_Object_ptr theOriginal)
01517 {
01518   beginService( " GEOM_Superv_i::MakeCopy" );
01519   MESSAGE("GEOM_Superv_i::MakeCopy");
01520   getInsOp();
01521   GEOM::GEOM_Object_ptr anObj = myInsOp->MakeCopy(theOriginal);
01522   endService( " GEOM_Superv_i::MakeCopy" );
01523   return anObj;
01524 }
01525 
01526 //=============================================================================
01527 //  Export:
01528 //=============================================================================
01529 void GEOM_Superv_i::Export (GEOM::GEOM_Object_ptr theObject,
01530                             const char*           theFileName,
01531                             const char*           theFormatName)
01532 {
01533   beginService( " GEOM_Superv_i::Export" );
01534   MESSAGE("GEOM_Superv_i::Export");
01535   getInsOp();
01536   myInsOp->Export(theObject, theFileName, theFormatName);
01537   endService( " GEOM_Superv_i::Export" );
01538 }
01539 
01540 //=============================================================================
01541 //  Import:
01542 //=============================================================================
01543 GEOM::GEOM_Object_ptr GEOM_Superv_i::ImportFile (const char* theFileName,
01544                                                  const char* theFormatName)
01545 {
01546   beginService( " GEOM_Superv_i::ImportFile" );
01547   MESSAGE("GEOM_Superv_i::ImportFile");
01548   getInsOp();
01549   GEOM::GEOM_Object_ptr anObj = myInsOp->ImportFile(theFileName, theFormatName);
01550   endService( " GEOM_Superv_i::ImportFile" );
01551   return anObj;
01552 }
01553 
01554 //=============================================================================
01555 //  ImportTranslators:
01556 //=============================================================================
01557 void GEOM_Superv_i::ImportTranslators (GEOM::string_array_out theFormats,
01558                                        GEOM::string_array_out thePatterns)
01559 {
01560   beginService( " GEOM_Superv_i::ImportTranslators" );
01561   MESSAGE("GEOM_Superv_i::ImportTranslators");
01562   getInsOp();
01563   myInsOp->ImportTranslators(theFormats, thePatterns);
01564   endService( " GEOM_Superv_i::ImportTranslators" );
01565 }
01566 
01567 //=============================================================================
01568 //  ExportTranslators:
01569 //=============================================================================
01570 void GEOM_Superv_i::ExportTranslators (GEOM::string_array_out theFormats,
01571                                        GEOM::string_array_out thePatterns)
01572 {
01573   beginService( " GEOM_Superv_i::ExportTranslators" );
01574   MESSAGE("GEOM_Superv_i::ExportTranslators");
01575   getInsOp();
01576   myInsOp->ExportTranslators(theFormats, thePatterns);
01577   endService( " GEOM_Superv_i::ExportTranslators" );
01578 }
01579 
01580 //============================= TransformOperations ===========================
01581 //=============================================================================
01582 //  TranslateTwoPoints:
01583 //=============================================================================
01584 GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateTwoPoints (GEOM::GEOM_Object_ptr theObject,
01585                                                          GEOM::GEOM_Object_ptr thePoint1,
01586                                                          GEOM::GEOM_Object_ptr thePoint2)
01587 {
01588   beginService( " GEOM_Superv_i::TranslateTwoPoints" );
01589   MESSAGE("GEOM_Superv_i::TranslateTwoPoints");
01590   getTransfOp();
01591   GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateTwoPoints(theObject, thePoint1, thePoint2);
01592   endService( " GEOM_Superv_i::TranslateTwoPoints" );
01593   return anObj;
01594 }
01595 
01596 //=============================================================================
01597 //  TranslateTwoPointsCopy:
01598 //=============================================================================
01599 GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateTwoPointsCopy (GEOM::GEOM_Object_ptr theObject,
01600                                                              GEOM::GEOM_Object_ptr thePoint1,
01601                                                              GEOM::GEOM_Object_ptr thePoint2)
01602 {
01603   beginService( " GEOM_Superv_i::TranslateTwoPointsCopy" );
01604   MESSAGE("GEOM_Superv_i::TranslateTwoPointsCopy");
01605   getTransfOp();
01606   GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateTwoPointsCopy(theObject, thePoint1, thePoint2);
01607   endService( " GEOM_Superv_i::TranslateTwoPointsCopy" );
01608   return anObj;
01609 }
01610 
01611 //=============================================================================
01612 //  TranslateDXDYDZ:
01613 //=============================================================================
01614 GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateDXDYDZ (GEOM::GEOM_Object_ptr theObject,
01615                                                       CORBA::Double theDX,
01616                                                       CORBA::Double theDY,
01617                                                       CORBA::Double theDZ)
01618 {
01619   beginService( " GEOM_Superv_i::TranslateDXDYDZ" );
01620   MESSAGE("GEOM_Superv_i::TranslateDXDYDZ");
01621   getTransfOp();
01622   GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateDXDYDZ(theObject, theDX, theDY, theDZ);
01623   endService( " GEOM_Superv_i::TranslateDXDYDZ" );
01624   return anObj;
01625 }
01626 
01627 //=============================================================================
01628 //  TranslateDXDYDZCopy:
01629 //=============================================================================
01630 GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateDXDYDZCopy (GEOM::GEOM_Object_ptr theObject,
01631                                                           CORBA::Double theDX,
01632                                                           CORBA::Double theDY,
01633                                                           CORBA::Double theDZ)
01634 {
01635   beginService( " GEOM_Superv_i::TranslateDXDYDZCopy" );
01636   MESSAGE("GEOM_Superv_i::TranslateDXDYDZCopy");
01637   getTransfOp();
01638   GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ);
01639   endService( " GEOM_Superv_i::TranslateDXDYDZCopy" );
01640   return anObj;
01641 }
01642 
01643 //=============================================================================
01644 //  TranslateVector:
01645 //=============================================================================
01646 GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateVector (GEOM::GEOM_Object_ptr theObject,
01647                                                       GEOM::GEOM_Object_ptr theVector)
01648 {
01649   beginService( " GEOM_Superv_i::TranslateVector" );
01650   MESSAGE("GEOM_Superv_i::TranslateVector");
01651   getTransfOp();
01652   GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateVector(theObject, theVector);
01653   endService( " GEOM_Superv_i::TranslateVector" );
01654   return anObj;
01655 }
01656 
01657 //=============================================================================
01658 //  TranslateVectorCopy:
01659 //=============================================================================
01660 GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateVectorCopy (GEOM::GEOM_Object_ptr theObject,
01661                                                           GEOM::GEOM_Object_ptr theVector)
01662 {
01663   beginService( " GEOM_Superv_i::TranslateVectorCopy" );
01664   MESSAGE("GEOM_Superv_i::TranslateVectorCopy");
01665   getTransfOp();
01666   GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateVectorCopy(theObject, theVector);
01667   endService( " GEOM_Superv_i::TranslateVectorCopy" );
01668   return anObj;
01669 }
01670 
01671 //=============================================================================
01672 //  TranslateVectorDistance:
01673 //=============================================================================
01674 GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateVectorDistance (GEOM::GEOM_Object_ptr theObject,
01675                                                               GEOM::GEOM_Object_ptr theVector,
01676                                                               CORBA::Double theDistance,
01677                                                               CORBA::Boolean theCopy)
01678 {
01679   beginService( " GEOM_Superv_i::TranslateVectorDistance" );
01680   MESSAGE("GEOM_Superv_i::TranslateVectorDistance");
01681   getTransfOp();
01682   GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateVectorDistance(theObject,
01683                                                                     theVector, theDistance, theCopy);
01684   endService( " GEOM_Superv_i::TranslateVectorDistance" );
01685   return anObj;
01686 }
01687 
01688 //=============================================================================
01689 //  MultiTranslate1D:
01690 //=============================================================================
01691 GEOM::GEOM_Object_ptr GEOM_Superv_i::MultiTranslate1D (GEOM::GEOM_Object_ptr theObject,
01692                                                        GEOM::GEOM_Object_ptr theVector,
01693                                                        CORBA::Double theStep,
01694                                                        CORBA::Long theNbTimes)
01695 {
01696   beginService( " GEOM_Superv_i::MultiTranslate1D" );
01697   MESSAGE("GEOM_Superv_i::MultiTranslate1D");
01698   getTransfOp();
01699   GEOM::GEOM_Object_ptr anObj = myTransfOp->MultiTranslate1D(theObject, theVector, theStep, theNbTimes);
01700   endService( " GEOM_Superv_i::MultiTranslate1D" );
01701   return anObj;
01702 }
01703 
01704 //=============================================================================
01705 //  MultiTranslate2D:
01706 //=============================================================================
01707 GEOM::GEOM_Object_ptr GEOM_Superv_i::MultiTranslate2D (GEOM::GEOM_Object_ptr theObject,
01708                                                        GEOM::GEOM_Object_ptr theVector1,
01709                                                        CORBA::Double theStep1,
01710                                                        CORBA::Long theNbTimes1,
01711                                                        GEOM::GEOM_Object_ptr theVector2,
01712                                                        CORBA::Double theStep2,
01713                                                        CORBA::Long theNbTimes2)
01714 {
01715   beginService( " GEOM_Superv_i::MultiTranslate2D" );
01716   MESSAGE("GEOM_Superv_i::MultiTranslate2D");
01717   getTransfOp();
01718   GEOM::GEOM_Object_ptr anObj = myTransfOp->MultiTranslate2D(theObject, theVector1, theStep1, theNbTimes1,
01719                                                              theVector2, theStep2, theNbTimes2);
01720   endService( " GEOM_Superv_i::MultiTranslate2D" );
01721   return anObj;
01722 }
01723 
01724 //=============================================================================
01725 //  Rotate:
01726 //=============================================================================
01727 GEOM::GEOM_Object_ptr GEOM_Superv_i::Rotate (GEOM::GEOM_Object_ptr theObject,
01728                                              GEOM::GEOM_Object_ptr theAxis,
01729                                              CORBA::Double theAngle)
01730 {
01731   beginService( " GEOM_Superv_i::Rotate" );
01732   MESSAGE("GEOM_Superv_i::Rotate");
01733   getTransfOp();
01734   GEOM::GEOM_Object_ptr anObj = myTransfOp->Rotate(theObject, theAxis, theAngle);
01735   endService( " GEOM_Superv_i::Rotate" );
01736   return anObj;
01737 }
01738 
01739 //=============================================================================
01740 //  RotateCopy:
01741 //=============================================================================
01742 GEOM::GEOM_Object_ptr GEOM_Superv_i::RotateCopy (GEOM::GEOM_Object_ptr theObject,
01743                                                  GEOM::GEOM_Object_ptr theAxis,
01744                                                  CORBA::Double theAngle)
01745 {
01746   beginService( " GEOM_Superv_i::RotateCopy" );
01747   MESSAGE("GEOM_Superv_i::RotateCopy");
01748   getTransfOp();
01749   GEOM::GEOM_Object_ptr anObj = myTransfOp->RotateCopy(theObject, theAxis, theAngle);
01750   endService( " GEOM_Superv_i::RotateCopy" );
01751   return anObj;
01752 }
01753 //=============================================================================
01754 //  RotateThreePoints:
01755 //=============================================================================
01756 GEOM::GEOM_Object_ptr GEOM_Superv_i::RotateThreePoints (GEOM::GEOM_Object_ptr theObject,
01757                                                         GEOM::GEOM_Object_ptr theCentPoint,
01758                                                         GEOM::GEOM_Object_ptr thePoint1,
01759                                                         GEOM::GEOM_Object_ptr thePoint2)
01760 {
01761   beginService( " GEOM_Superv_i::RotateThreePoints" );
01762   MESSAGE("GEOM_Superv_i::RotateThreePoints");
01763   getTransfOp();
01764   GEOM::GEOM_Object_ptr anObj = myTransfOp->RotateThreePoints(theObject, theCentPoint, thePoint1, thePoint2);
01765   endService( " GEOM_Superv_i::RotateThreePoints" );
01766   return anObj;
01767 }
01768 
01769 //=============================================================================
01770 //  RotateThreePointsCopy:
01771 //=============================================================================
01772 GEOM::GEOM_Object_ptr GEOM_Superv_i::RotateThreePointsCopy (GEOM::GEOM_Object_ptr theObject,
01773                                                             GEOM::GEOM_Object_ptr theCentPoint,
01774                                                             GEOM::GEOM_Object_ptr thePoint1,
01775                                                             GEOM::GEOM_Object_ptr thePoint2)
01776 {
01777   beginService( " GEOM_Superv_i::RotateThreePointsCopy" );
01778   MESSAGE("GEOM_Superv_i::RotateThreePointsCopy");
01779   getTransfOp();
01780   GEOM::GEOM_Object_ptr anObj = myTransfOp->RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2);
01781   endService( " GEOM_Superv_i::RotateThreePointsCopy" );
01782   return anObj;
01783 }
01784 
01785 //=============================================================================
01786 //  MultiRotate1D:
01787 //=============================================================================
01788 GEOM::GEOM_Object_ptr GEOM_Superv_i::MultiRotate1D (GEOM::GEOM_Object_ptr theObject,
01789                                                     GEOM::GEOM_Object_ptr theAxis,
01790                                                     CORBA::Long theNbTimes)
01791 {
01792   beginService( " GEOM_Superv_i::MultiRotate1D" );
01793   MESSAGE("GEOM_Superv_i::MultiRotate1D");
01794   getTransfOp();
01795   GEOM::GEOM_Object_ptr anObj = myTransfOp->MultiRotate1D(theObject, theAxis, theNbTimes);
01796   endService( " GEOM_Superv_i::MultiRotate1D" );
01797   return anObj;
01798 }
01799 
01800 //=============================================================================
01801 //  MultiRotate2D:
01802 //=============================================================================
01803 GEOM::GEOM_Object_ptr GEOM_Superv_i::MultiRotate2D (GEOM::GEOM_Object_ptr theObject,
01804                                                     GEOM::GEOM_Object_ptr theAxis,
01805                                                     CORBA::Double theAngle,
01806                                                     CORBA::Long theNbTimes1,
01807                                                     CORBA::Double theStep,
01808                                                     CORBA::Long theNbTimes2)
01809 {
01810   beginService( " GEOM_Superv_i::MultiRotate2D" );
01811   MESSAGE("GEOM_Superv_i::MultiRotate2D");
01812   getTransfOp();
01813   GEOM::GEOM_Object_ptr anObj = myTransfOp->MultiRotate2D(theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2);
01814   endService( " GEOM_Superv_i::MultiRotate2D" );
01815   return anObj;
01816 }
01817 
01818 //=============================================================================
01819 //  MirrorPlane:
01820 //=============================================================================
01821 GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPlane (GEOM::GEOM_Object_ptr theObject,
01822                                                   GEOM::GEOM_Object_ptr thePlane)
01823 {
01824   beginService( " GEOM_Superv_i::MirrorPlane" );
01825   MESSAGE("GEOM_Superv_i::MirrorPlane");
01826   getTransfOp();
01827   GEOM::GEOM_Object_ptr anObj = myTransfOp->MirrorPlane(theObject, thePlane);
01828   endService( " GEOM_Superv_i::MirrorPlane" );
01829   return anObj;
01830 }
01831 
01832 //=============================================================================
01833 //  MirrorPlaneCopy:
01834 //=============================================================================
01835 GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPlaneCopy (GEOM::GEOM_Object_ptr theObject,
01836                                                       GEOM::GEOM_Object_ptr thePlane)
01837 {
01838   beginService( " GEOM_Superv_i::MirrorPlaneCopy" );
01839   MESSAGE("GEOM_Superv_i::MirrorPlaneCopy");
01840   getTransfOp();
01841   GEOM::GEOM_Object_ptr anObj = myTransfOp->MirrorPlaneCopy(theObject, thePlane);
01842   endService( " GEOM_Superv_i::MirrorPlaneCopy" );
01843   return anObj;
01844 }
01845 
01846 //=============================================================================
01847 //  MirrorAxis:
01848 //=============================================================================
01849 GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorAxis (GEOM::GEOM_Object_ptr theObject,
01850                                                  GEOM::GEOM_Object_ptr theAxis)
01851 {
01852   beginService( " GEOM_Superv_i::MirrorAxis" );
01853   MESSAGE("GEOM_Superv_i::MirrorAxis");
01854   getTransfOp();
01855   GEOM::GEOM_Object_ptr anObj = myTransfOp->MirrorAxis(theObject, theAxis);
01856   endService( " GEOM_Superv_i::MirrorAxis" );
01857   return anObj;
01858 }
01859 
01860 //=============================================================================
01861 //  MirrorAxisCopy:
01862 //=============================================================================
01863 GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorAxisCopy (GEOM::GEOM_Object_ptr theObject,
01864                                                      GEOM::GEOM_Object_ptr theAxis)
01865 {
01866   beginService( " GEOM_Superv_i::MirrorAxisCopy" );
01867   MESSAGE("GEOM_Superv_i::MirrorAxisCopy");
01868   getTransfOp();
01869   GEOM::GEOM_Object_ptr anObj = myTransfOp->MirrorAxisCopy(theObject, theAxis);
01870   endService( " GEOM_Superv_i::MirrorAxisCopy" );
01871   return anObj;
01872 }
01873 
01874 //=============================================================================
01875 //  MirrorPoint:
01876 //=============================================================================
01877 GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPoint (GEOM::GEOM_Object_ptr theObject,
01878                                                   GEOM::GEOM_Object_ptr thePoint)
01879 {
01880   beginService( " GEOM_Superv_i::MirrorPoint" );
01881   MESSAGE("GEOM_Superv_i::MirrorPoint");
01882   getTransfOp();
01883   GEOM::GEOM_Object_ptr anObj = myTransfOp->MirrorPoint(theObject, thePoint);
01884   endService( " GEOM_Superv_i::MirrorPoint" );
01885   return anObj;
01886 }
01887 
01888 //=============================================================================
01889 //  MirrorPointCopy:
01890 //=============================================================================
01891 GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPointCopy (GEOM::GEOM_Object_ptr theObject,
01892                                                       GEOM::GEOM_Object_ptr thePoint)
01893 {
01894   beginService( " GEOM_Superv_i::MirrorPoint" );
01895   MESSAGE("GEOM_Superv_i::MirrorPointCopy");
01896   getTransfOp();
01897   GEOM::GEOM_Object_ptr anObj = myTransfOp->MirrorPointCopy(theObject, thePoint);
01898   endService( " GEOM_Superv_i::MirrorPoint" );
01899   return anObj;
01900 }
01901 
01902 //=============================================================================
01903 //  OffsetShape:
01904 //=============================================================================
01905 GEOM::GEOM_Object_ptr GEOM_Superv_i::OffsetShape (GEOM::GEOM_Object_ptr theObject,
01906                                                   CORBA::Double theOffset)
01907 {
01908   beginService( " GEOM_Superv_i::OffsetShape" );
01909   MESSAGE("GEOM_Superv_i::OffsetShape");
01910   getTransfOp();
01911   GEOM::GEOM_Object_ptr anObj = myTransfOp->OffsetShape(theObject, theOffset);
01912   endService( " GEOM_Superv_i::OffsetShape" );
01913   return anObj;
01914 }
01915 
01916 //=============================================================================
01917 //  OffsetShapeCopy:
01918 //=============================================================================
01919 GEOM::GEOM_Object_ptr GEOM_Superv_i::OffsetShapeCopy (GEOM::GEOM_Object_ptr theObject,
01920                                                       CORBA::Double theOffset)
01921 {
01922   beginService( " GEOM_Superv_i::OffsetShapeCopy" );
01923   MESSAGE("GEOM_Superv_i::OffsetShapeCopy");
01924   getTransfOp();
01925   GEOM::GEOM_Object_ptr anObj = myTransfOp->OffsetShapeCopy(theObject, theOffset);
01926   endService( " GEOM_Superv_i::OffsetShapeCopy" );
01927   return anObj;
01928 }
01929 
01930 //=============================================================================
01931 //  ScaleShape:
01932 //=============================================================================
01933 GEOM::GEOM_Object_ptr GEOM_Superv_i::ScaleShape (GEOM::GEOM_Object_ptr theObject,
01934                                                  GEOM::GEOM_Object_ptr thePoint,
01935                                                  CORBA::Double theFactor)
01936 {
01937   beginService( " GEOM_Superv_i::ScaleShape" );
01938   MESSAGE("GEOM_Superv_i::ScaleShape");
01939   getTransfOp();
01940   GEOM::GEOM_Object_ptr anObj = myTransfOp->ScaleShape(theObject, thePoint, theFactor);
01941   endService( " GEOM_Superv_i::ScaleShape" );
01942   return anObj;
01943 }
01944 
01945 //=============================================================================
01946 //  ScaleShapeCopy:
01947 //=============================================================================
01948 GEOM::GEOM_Object_ptr GEOM_Superv_i::ScaleShapeCopy (GEOM::GEOM_Object_ptr theObject,
01949                                                      GEOM::GEOM_Object_ptr thePoint,
01950                                                      CORBA::Double theFactor)
01951 {
01952   beginService( " GEOM_Superv_i::ScaleShapeCopy" );
01953   MESSAGE("GEOM_Superv_i::ScaleShapeCopy");
01954   getTransfOp();
01955   GEOM::GEOM_Object_ptr anObj = myTransfOp->ScaleShapeCopy(theObject, thePoint, theFactor);
01956   endService( " GEOM_Superv_i::ScaleShapeCopy" );
01957   return anObj;
01958 }
01959 
01960 //=============================================================================
01961 //  ScaleShapeAlongAxes:
01962 //=============================================================================
01963 GEOM::GEOM_Object_ptr GEOM_Superv_i::ScaleShapeAlongAxes (GEOM::GEOM_Object_ptr theObject,
01964                                                           GEOM::GEOM_Object_ptr thePoint,
01965                                                           CORBA::Double theFactorX,
01966                                                           CORBA::Double theFactorY,
01967                                                           CORBA::Double theFactorZ)
01968 {
01969   beginService( " GEOM_Superv_i::ScaleShapeAlongAxes" );
01970   MESSAGE("GEOM_Superv_i::ScaleShapeAlongAxes");
01971   getTransfOp();
01972   GEOM::GEOM_Object_ptr anObj = myTransfOp->ScaleShapeAlongAxes
01973     (theObject, thePoint, theFactorX, theFactorY, theFactorZ);
01974   endService( " GEOM_Superv_i::ScaleShapeAlongAxes" );
01975   return anObj;
01976 }
01977 
01978 //=============================================================================
01979 //  ScaleShapeAlongAxesCopy:
01980 //=============================================================================
01981 GEOM::GEOM_Object_ptr GEOM_Superv_i::ScaleShapeAlongAxesCopy (GEOM::GEOM_Object_ptr theObject,
01982                                                               GEOM::GEOM_Object_ptr thePoint,
01983                                                               CORBA::Double theFactorX,
01984                                                               CORBA::Double theFactorY,
01985                                                               CORBA::Double theFactorZ)
01986 {
01987   beginService( " GEOM_Superv_i::ScaleShapeAlongAxesCopy" );
01988   MESSAGE("GEOM_Superv_i::ScaleShapeAlongAxesCopy");
01989   getTransfOp();
01990   GEOM::GEOM_Object_ptr anObj = myTransfOp->ScaleShapeAlongAxesCopy
01991     (theObject, thePoint, theFactorX, theFactorY, theFactorZ);
01992   endService( " GEOM_Superv_i::ScaleShapeAlongAxesCopy" );
01993   return anObj;
01994 }
01995 
01996 //=============================================================================
01997 //  PositionShape:
01998 //=============================================================================
01999 GEOM::GEOM_Object_ptr GEOM_Superv_i::PositionShape (GEOM::GEOM_Object_ptr theObject,
02000                                                     GEOM::GEOM_Object_ptr theStartLCS,
02001                                                     GEOM::GEOM_Object_ptr theEndLCS)
02002 {
02003   beginService( " GEOM_Superv_i::PositionShape" );
02004   MESSAGE("GEOM_Superv_i::PositionShape");
02005   getTransfOp();
02006   GEOM::GEOM_Object_ptr anObj = myTransfOp->PositionShape(theObject, theStartLCS, theEndLCS);
02007   endService( " GEOM_Superv_i::PositionShape" );
02008   return anObj;
02009 }
02010 
02011 //=============================================================================
02012 //  PositionShapeCopy:
02013 //=============================================================================
02014 GEOM::GEOM_Object_ptr GEOM_Superv_i::PositionShapeCopy (GEOM::GEOM_Object_ptr theObject,
02015                                                         GEOM::GEOM_Object_ptr theStartLCS,
02016                                                         GEOM::GEOM_Object_ptr theEndLCS)
02017 {
02018   beginService( " GEOM_Superv_i::PositionShapeCopy" );
02019   MESSAGE("GEOM_Superv_i::PositionShapeCopy");
02020   getTransfOp();
02021   GEOM::GEOM_Object_ptr anObj = myTransfOp->PositionShapeCopy(theObject, theStartLCS, theEndLCS);
02022   endService( " GEOM_Superv_i::PositionShapeCopy" );
02023   return anObj;
02024 }
02025 
02026 //=============================================================================
02027 //  PositionAlongPath:
02028 //=============================================================================
02029 GEOM::GEOM_Object_ptr GEOM_Superv_i::PositionAlongPath (GEOM::GEOM_Object_ptr theObject,
02030                                                         GEOM::GEOM_Object_ptr thePath,
02031                                                         CORBA::Double         theDistance,
02032                                                         CORBA::Boolean        theCopy,
02033                                                         CORBA::Boolean        theReverse)
02034 {
02035   beginService( " GEOM_Superv_i::PositionAlongPath" );
02036   MESSAGE("GEOM_Superv_i::PositionAlongPath");
02037   getTransfOp();
02038   GEOM::GEOM_Object_ptr anObj = myTransfOp->PositionAlongPath(theObject, thePath, theDistance, theCopy, theReverse);
02039   endService( " GEOM_Superv_i::PositionAlongPath" );
02040   return anObj;
02041 }
02042 
02043 //=============================== ShapesOperations ============================
02044 //=============================================================================
02045 //  Make:
02046 //=============================================================================
02047 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeEdge (GEOM::GEOM_Object_ptr thePnt1,
02048                                                GEOM::GEOM_Object_ptr thePnt2)
02049 {
02050   beginService( " GEOM_Superv_i::MakeEdge" );
02051   MESSAGE("GEOM_Superv_i::MakeEdge");
02052   getShapesOp();
02053   GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeEdge(thePnt1, thePnt2);
02054   endService( " GEOM_Superv_i::MakeEdge" );
02055   return anObj;
02056 }
02057 
02058 //=============================================================================
02059 //  MakeEdgeOnCurveByLength:
02060 //=============================================================================
02061 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeEdgeOnCurveByLength (GEOM::GEOM_Object_ptr theRefCurve,
02062                                                               CORBA::Double theLength,
02063                                                               GEOM::GEOM_Object_ptr theStartPoint)
02064 {
02065   beginService( " GEOM_Superv_i::MakeEdgeOnCurveByLength" );
02066   MESSAGE("GEOM_Superv_i::MakeEdgeOnCurveByLength");
02067   getShapesOp();
02068   GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeEdgeOnCurveByLength(theRefCurve, theLength, theStartPoint);
02069   endService( " GEOM_Superv_i::MakeEdgeOnCurveByLength" );
02070   return anObj;
02071 }
02072 
02073 //=============================================================================
02074 //  MakeWire:
02075 //=============================================================================
02076 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeWire (GEOM::GEOM_List_ptr theEdgesAndWires,
02077                                                CORBA::Double       theTolerance)
02078 {
02079   beginService( " GEOM_Superv_i::MakeWire" );
02080   MESSAGE("GEOM_Superv_i::MakeWire");
02081   if (GEOM_List_i<GEOM::ListOfGO>* aListImplEW =
02082       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theEdgesAndWires, myPOA).in())) {
02083     getShapesOp();
02084     GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeWire(aListImplEW->GetList(), theTolerance);
02085     endService( " GEOM_Superv_i::MakeWire" );
02086     return anObj;
02087   }
02088   endService( " GEOM_Superv_i::MakeWire" );
02089   return NULL;
02090 }
02091 
02092 //=============================================================================
02093 //  MakeFace:
02094 //=============================================================================
02095 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFace (GEOM::GEOM_Object_ptr theWire,
02096                                                CORBA::Boolean isPlanarWanted)
02097 {
02098   beginService( " GEOM_Superv_i::MakeFace" );
02099   MESSAGE("GEOM_Superv_i::MakeFace");
02100   getShapesOp();
02101   GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeFace(theWire, isPlanarWanted);
02102   endService( " GEOM_Superv_i::MakeFace" );
02103   return anObj;
02104 }
02105 
02106 //=============================================================================
02107 //  MakeFaceWires:
02108 //=============================================================================
02109 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFaceWires (GEOM::GEOM_List_ptr theWires,
02110                                                     CORBA::Boolean isPlanarWanted)
02111 {
02112   beginService( " GEOM_Superv_i::MakeFaceWires" );
02113   MESSAGE("GEOM_Superv_i::MakeFaceWires");
02114   if (GEOM_List_i<GEOM::ListOfGO>* aListImplW =
02115       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theWires, myPOA).in())) {
02116     getShapesOp();
02117     GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeFaceWires(aListImplW->GetList(), isPlanarWanted);
02118     endService( " GEOM_Superv_i::MakeFaceWires" );
02119     return anObj;
02120   }
02121   endService( " GEOM_Superv_i::MakeFaceWires" );
02122   return NULL;
02123 }
02124 
02125 //=============================================================================
02126 //  MakeShell:
02127 //=============================================================================
02128 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeShell (GEOM::GEOM_List_ptr theFacesAndShells)
02129 {
02130   beginService( " GEOM_Superv_i::MakeShell" );
02131   MESSAGE("GEOM_Superv_i::MakeShell");
02132   if (GEOM_List_i<GEOM::ListOfGO>* aListImplFS =
02133       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theFacesAndShells, myPOA).in())) {
02134     getShapesOp();
02135     GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeShell(aListImplFS->GetList());
02136     endService( " GEOM_Superv_i::MakeShell" );
02137     return anObj;
02138   }
02139   endService( " GEOM_Superv_i::MakeShell" );
02140   return NULL;
02141 }
02142 
02143 //=============================================================================
02144 //  MakeSolidShell:
02145 //=============================================================================
02146 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSolidShell (GEOM::GEOM_Object_ptr theShell)
02147 {
02148   beginService( " GEOM_Superv_i::MakeSolidShell" );
02149   MESSAGE("GEOM_Superv_i::MakeSolidShell");
02150   getShapesOp();
02151   GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeSolidShell(theShell);
02152   endService( " GEOM_Superv_i::MakeSolidShell" );
02153   return anObj;
02154 }
02155 
02156 //=============================================================================
02157 //  MakeSolidShells:
02158 //=============================================================================
02159 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSolidShells (GEOM::GEOM_List_ptr theShells)
02160 {
02161   beginService( " GEOM_Superv_i::MakeSolidShells" );
02162   MESSAGE("GEOM_Superv_i::MakeSolidShells");
02163   if (GEOM_List_i<GEOM::ListOfGO>* aListImplS =
02164       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theShells, myPOA).in())) {
02165     getShapesOp();
02166     GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeSolidShells(aListImplS->GetList());
02167     endService( " GEOM_Superv_i::MakeSolidShells" );
02168     return anObj;
02169   }
02170   endService( " GEOM_Superv_i::MakeSolidShells" );
02171   return NULL;
02172 }
02173 
02174 //=============================================================================
02175 //  MakeCompound:
02176 //=============================================================================
02177 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCompound (GEOM::GEOM_List_ptr theShapes)
02178 {
02179   beginService( " GEOM_Superv_i::MakeCompound" );
02180   MESSAGE("GEOM_Superv_i::MakeCompound");
02181   if (GEOM_List_i<GEOM::ListOfGO>* aListImpl =
02182       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theShapes, myPOA).in())) {
02183     getShapesOp();
02184     GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeCompound(aListImpl->GetList());
02185     endService( " GEOM_Superv_i::MakeCompound" );
02186     return anObj;
02187   }
02188   endService( " GEOM_Superv_i::MakeCompound" );
02189   return NULL;
02190 }
02191 
02192 //=============================================================================
02193 //  MakeGlueFaces:
02194 //=============================================================================
02195 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeGlueFaces (GEOM::GEOM_Object_ptr theShape,
02196                                                     CORBA::Double   theTolerance,
02197                                                     CORBA::Boolean doKeepNonSolids)
02198 {
02199   beginService( " GEOM_Superv_i::MakeGlueFaces" );
02200   MESSAGE("GEOM_Superv_i::MakeGlueFaces");
02201   getShapesOp();
02202   GEOM::GEOM_Object_ptr anObj =
02203     myShapesOp->MakeGlueFaces(theShape, theTolerance, doKeepNonSolids);
02204   endService( " GEOM_Superv_i::MakeGlueFaces" );
02205   return anObj;
02206 }
02207 
02208 //=============================================================================
02209 //  GetGlueFaces:
02210 //=============================================================================
02211 GEOM::GEOM_List_ptr GEOM_Superv_i::GetGlueFaces (GEOM::GEOM_Object_ptr theShape,
02212                                                  CORBA::Double theTolerance)
02213 {
02214   beginService( " GEOM_Superv_i::GetGlueFaces" );
02215   MESSAGE("GEOM_Superv_i::GetGlueFaces");
02216   getShapesOp();
02217   GEOM::ListOfGO* aList = myShapesOp->GetGlueFaces(theShape, theTolerance);
02218   GEOM_List_i<GEOM::ListOfGO>* aListPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aList));
02219   MESSAGE(" List of "<<aListPtr->GetList().length()<<" element(s)");
02220   endService( " GEOM_Superv_i::GetGlueFaces" );
02221   return aListPtr->_this();
02222 }
02223 
02224 //=============================================================================
02225 //  MakeGlueFacesByList:
02226 //=============================================================================
02227 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeGlueFacesByList (GEOM::GEOM_Object_ptr theShape,
02228                                                           CORBA::Double theTolerance,
02229                                                           const GEOM::ListOfGO& theFaces,
02230                                                           CORBA::Boolean doKeepNonSolids,
02231                                                           CORBA::Boolean doGlueAllEdges)
02232 {
02233   beginService( " GEOM_Superv_i::MakeGlueFacesByList" );
02234   MESSAGE("GEOM_Superv_i::MakeGlueFacesByList");
02235   getShapesOp();
02236   GEOM::GEOM_Object_ptr anObj =
02237     myShapesOp->MakeGlueFacesByList(theShape, theTolerance, theFaces,
02238                                     doKeepNonSolids, doGlueAllEdges);
02239   endService( " GEOM_Superv_i::MakeGlueFacesByList" );
02240   return anObj;
02241 }
02242 
02243 //=============================================================================
02244 //  MakeExplode:
02245 //=============================================================================
02246 GEOM::GEOM_List_ptr GEOM_Superv_i::MakeExplode (GEOM::GEOM_Object_ptr theShape,
02247                                                     CORBA::Long theShapeType,
02248                                                     CORBA::Boolean isSorted)
02249 {
02250   beginService( " GEOM_Superv_i::MakeExplode" );
02251   MESSAGE("GEOM_Superv_i::MakeExplode");
02252   getShapesOp();
02253 
02254   GEOM::ListOfGO* aList = myShapesOp->MakeExplode(theShape, theShapeType, isSorted);
02255   GEOM_List_i<GEOM::ListOfGO>* aListPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aList));
02256   MESSAGE(" List of "<<aListPtr->GetList().length()<<" element(s)");
02257   endService( " GEOM_Superv_i::MakeExplode" );
02258   return aListPtr->_this();
02259 }
02260 
02261 //=============================================================================
02262 //  NumberOfFaces:
02263 //=============================================================================
02264 CORBA::Long GEOM_Superv_i::NumberOfFaces (GEOM::GEOM_Object_ptr theShape)
02265 {
02266   beginService( " GEOM_Superv_i::NumberOfFaces" );
02267   MESSAGE("GEOM_Superv_i::NumberOfFaces");
02268   getShapesOp();
02269   CORBA::Long aRes = myShapesOp->NumberOfFaces(theShape);
02270   endService( " GEOM_Superv_i::NumberOfFaces" );
02271   return aRes;
02272 }
02273 
02274 //=============================================================================
02275 //  NumberOfEdges:
02276 //=============================================================================
02277 CORBA::Long GEOM_Superv_i::NumberOfEdges (GEOM::GEOM_Object_ptr theShape)
02278 {
02279   beginService( " GEOM_Superv_i::NumberOfEdges" );
02280   MESSAGE("GEOM_Superv_i::NumberOfEdges");
02281   getShapesOp();
02282   CORBA::Long aRes = myShapesOp->NumberOfEdges(theShape);
02283   endService( " GEOM_Superv_i::NumberOfEdges" );
02284   return aRes;
02285 }
02286 
02287 
02288 //=============================================================================
02289 //  ChangeOrientation:
02290 //=============================================================================
02291 GEOM::GEOM_Object_ptr GEOM_Superv_i::ChangeOrientation (GEOM::GEOM_Object_ptr theShape)
02292 {
02293   beginService( " GEOM_Superv_i::ChangeOrientation" );
02294   MESSAGE("GEOM_Superv_i::ChangeOrientation");
02295   getShapesOp();
02296   GEOM::GEOM_Object_ptr anObj = myShapesOp->ChangeOrientation(theShape);
02297   endService( " GEOM_Superv_i::ChangeOrientation" );
02298   return anObj;
02299 }
02300 
02301 
02302 //=============================================================================
02303 //  GetShapesOnShape:
02304 //=============================================================================
02305 GEOM::GEOM_List_ptr GEOM_Superv_i::GetShapesOnShape
02306                                           (GEOM::GEOM_Object_ptr theCheckShape,
02307                                            GEOM::GEOM_Object_ptr theShape,
02308                                            CORBA::Short theShapeType,
02309                                            GEOM::shape_state theState)
02310 {
02311   beginService( " GEOM_Superv_i::GetShapesOnShape" );
02312   MESSAGE("GEOM_Superv_i::GetShapesOnShape");
02313   getShapesOp();
02314   GEOM::ListOfGO* aList =
02315     myShapesOp->GetShapesOnShape(theCheckShape, theShape, theShapeType, theState);
02316   GEOM_List_i<GEOM::ListOfGO>* aListPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aList));
02317   MESSAGE(" List of "<<aListPtr->GetList().length()<<" element(s)");
02318   endService( " GEOM_Superv_i::GetShapesOnShape" );
02319   return aListPtr->_this();
02320 }
02321 
02322 
02323 //=============================================================================
02324 //  GetShapesOnShapeAsCompound:
02325 //=============================================================================
02326 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetShapesOnShapeAsCompound
02327                                           (GEOM::GEOM_Object_ptr theCheckShape,
02328                                            GEOM::GEOM_Object_ptr theShape,
02329                                            CORBA::Short theShapeType,
02330                                            GEOM::shape_state theState)
02331 {
02332   beginService( " GEOM_Superv_i::GetShapesOnShapeAsCompound" );
02333   MESSAGE("GEOM_Superv_i::GetShapesOnShapeAsCompound");
02334   getShapesOp();
02335   GEOM::GEOM_Object_ptr anObj =
02336     myShapesOp->GetShapesOnShapeAsCompound(theCheckShape, theShape, theShapeType, theState);
02337   endService( " GEOM_Superv_i::GetShapesOnShapeAsCompound" );
02338   return anObj;
02339 }
02340 
02341 
02342 //=============================== BlocksOperations ============================
02343 //=============================================================================
02344 //  MakeQuad4Vertices:
02345 //=============================================================================
02346 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeQuad4Vertices (GEOM::GEOM_Object_ptr thePnt1,
02347                                                         GEOM::GEOM_Object_ptr thePnt2,
02348                                                         GEOM::GEOM_Object_ptr thePnt3,
02349                                                         GEOM::GEOM_Object_ptr thePnt4)
02350 {
02351   beginService( " GEOM_Superv_i::MakeQuad4Vertices" );
02352   MESSAGE("GEOM_Superv_i::MakeQuad4Vertices");
02353   getBlocksOp();
02354   GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeQuad4Vertices(thePnt1, thePnt2, thePnt3, thePnt4);
02355   endService( " GEOM_Superv_i::MakeQuad4Vertices" );
02356   return anObj;
02357 }
02358 
02359 //=============================================================================
02360 //  MakeQuad:
02361 //=============================================================================
02362 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeQuad (GEOM::GEOM_Object_ptr theEdge1,
02363                                                GEOM::GEOM_Object_ptr theEdge2,
02364                                                GEOM::GEOM_Object_ptr theEdge3,
02365                                                GEOM::GEOM_Object_ptr theEdge4)
02366 {
02367   beginService( " GEOM_Superv_i::MakeQuad" );
02368   MESSAGE("GEOM_Superv_i::MakeQuad");
02369   getBlocksOp();
02370   GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeQuad(theEdge1, theEdge2, theEdge3, theEdge4);
02371   endService( " GEOM_Superv_i::MakeQuad" );
02372   return anObj;
02373 }
02374 
02375 //=============================================================================
02376 //  MakeQuad2Edges:
02377 //=============================================================================
02378 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeQuad2Edges (GEOM::GEOM_Object_ptr theEdge1,
02379                                                      GEOM::GEOM_Object_ptr theEdge2)
02380 {
02381   beginService( " GEOM_Superv_i::MakeQuad2Edges" );
02382   MESSAGE("GEOM_Superv_i::MakeQuad2Edges");
02383   getBlocksOp();
02384   GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeQuad2Edges(theEdge1, theEdge2);
02385   endService( " GEOM_Superv_i::MakeQuad2Edges" );
02386   return anObj;
02387 }
02388 
02389 //=============================================================================
02390 //  MakeHexa:
02391 //=============================================================================
02392 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeHexa (GEOM::GEOM_Object_ptr theFace1,
02393                                                GEOM::GEOM_Object_ptr theFace2,
02394                                                GEOM::GEOM_Object_ptr theFace3,
02395                                                GEOM::GEOM_Object_ptr theFace4,
02396                                                GEOM::GEOM_Object_ptr theFace5,
02397                                                GEOM::GEOM_Object_ptr theFace6)
02398 {
02399   beginService( " GEOM_Superv_i::MakeHexa" );
02400   MESSAGE("GEOM_Superv_i::MakeHexa");
02401   getBlocksOp();
02402   GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeHexa(theFace1, theFace2, theFace3, theFace4, theFace5, theFace6);
02403   endService( " GEOM_Superv_i::MakeHexa" );
02404   return anObj;
02405 }
02406 
02407 //=============================================================================
02408 //  MakeHexa2Faces:
02409 //=============================================================================
02410 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeHexa2Faces (GEOM::GEOM_Object_ptr theFace1,
02411                                                      GEOM::GEOM_Object_ptr theFace2)
02412 {
02413   beginService( " GEOM_Superv_i::MakeHexa2Faces" );
02414   MESSAGE("GEOM_Superv_i::MakeHexa2Faces");
02415   getBlocksOp();
02416   GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeHexa2Faces(theFace1, theFace2);
02417   endService( " GEOM_Superv_i::MakeHexa2Faces" );
02418   return anObj;
02419 }
02420 
02421 //=============================================================================
02422 //  GetPoint:
02423 //=============================================================================
02424 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetPoint (GEOM::GEOM_Object_ptr theShape,
02425                                                CORBA::Double   theX,
02426                                                CORBA::Double   theY,
02427                                                CORBA::Double   theZ,
02428                                                CORBA::Double   theEpsilon)
02429 {
02430   beginService( " GEOM_Superv_i::GetPoint" );
02431   MESSAGE("GEOM_Superv_i::GetPoint");
02432   getBlocksOp();
02433   GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetPoint(theShape, theX, theY, theZ, theEpsilon);
02434   endService( " GEOM_Superv_i::GetPoint" );
02435   return anObj;
02436 }
02437 
02438 //=============================================================================
02439 //  GetEdge:
02440 //=============================================================================
02441 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetEdge (GEOM::GEOM_Object_ptr theShape,
02442                                               GEOM::GEOM_Object_ptr thePoint1,
02443                                               GEOM::GEOM_Object_ptr thePoint2)
02444 {
02445   beginService( " GEOM_Superv_i::GetEdge" );
02446   MESSAGE("GEOM_Superv_i::GetEdge");
02447   getBlocksOp();
02448   GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetEdge(theShape, thePoint1, thePoint2);
02449   endService( " GEOM_Superv_i::GetEdge" );
02450   return anObj;
02451 }
02452 
02453 //=============================================================================
02454 //  GetEdgeNearPoint:
02455 //=============================================================================
02456 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetEdgeNearPoint (GEOM::GEOM_Object_ptr theShape,
02457                                                        GEOM::GEOM_Object_ptr thePoint)
02458 {
02459   beginService( " GEOM_Superv_i::GetEdgeNearPoint" );
02460   MESSAGE("GEOM_Superv_i::GetEdgeNearPoint");
02461   getBlocksOp();
02462   GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetEdgeNearPoint(theShape, thePoint);
02463   endService( " GEOM_Superv_i::GetEdgeNearPoint" );
02464   return anObj;
02465 }
02466 
02467 //=============================================================================
02468 //  GetFaceByPoints:
02469 //=============================================================================
02470 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetFaceByPoints (GEOM::GEOM_Object_ptr theShape,
02471                                                       GEOM::GEOM_Object_ptr thePoint1,
02472                                                       GEOM::GEOM_Object_ptr thePoint2,
02473                                                       GEOM::GEOM_Object_ptr thePoint3,
02474                                                       GEOM::GEOM_Object_ptr thePoint4)
02475 {
02476   beginService( " GEOM_Superv_i::GetFaceByPoints" );
02477   MESSAGE("GEOM_Superv_i::GetFaceByPoints");
02478   getBlocksOp();
02479   GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetFaceByPoints(theShape, thePoint1, thePoint2, thePoint3, thePoint4);
02480   endService( " GEOM_Superv_i::GetFaceByPoints" );
02481   return anObj;
02482 }
02483 
02484 //=============================================================================
02485 //  GetFaceByEdges:
02486 //=============================================================================
02487 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetFaceByEdges (GEOM::GEOM_Object_ptr theShape,
02488                                                      GEOM::GEOM_Object_ptr theEdge1,
02489                                                      GEOM::GEOM_Object_ptr theEdge2)
02490 {
02491   beginService( " GEOM_Superv_i::GetFaceByEdges" );
02492   MESSAGE("GEOM_Superv_i::GetFaceByEdges");
02493   getBlocksOp();
02494   GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetFaceByEdges(theShape, theEdge1, theEdge2);
02495   endService( " GEOM_Superv_i::GetFaceByEdges" );
02496   return anObj;
02497 }
02498 
02499 //=============================================================================
02500 //  GetOppositeFace:
02501 //=============================================================================
02502 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetOppositeFace (GEOM::GEOM_Object_ptr theBlock,
02503                                                       GEOM::GEOM_Object_ptr theFace)
02504 {
02505   beginService( " GEOM_Superv_i::GetOppositeFace" );
02506   MESSAGE("GEOM_Superv_i::GetOppositeFace");
02507   getBlocksOp();
02508   GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetOppositeFace(theBlock, theFace);
02509   endService( " GEOM_Superv_i::GetOppositeFace" );
02510   return anObj;
02511 }
02512 
02513 //=============================================================================
02514 //  GetFaceNearPoint:
02515 //=============================================================================
02516 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetFaceNearPoint (GEOM::GEOM_Object_ptr theShape,
02517                                                        GEOM::GEOM_Object_ptr thePoint)
02518 {
02519   beginService( " GEOM_Superv_i::GetFaceNearPoint" );
02520   MESSAGE("GEOM_Superv_i::GetFaceNearPoint");
02521   getBlocksOp();
02522   GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetFaceNearPoint(theShape, thePoint);
02523   endService( " GEOM_Superv_i::GetFaceNearPoint" );
02524   return anObj;
02525 }
02526 
02527 //=============================================================================
02528 //  GetFaceByNormale:
02529 //=============================================================================
02530 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetFaceByNormale (GEOM::GEOM_Object_ptr theBlock,
02531                                                        GEOM::GEOM_Object_ptr theVector)
02532 {
02533   beginService( " GEOM_Superv_i::GetFaceByNormale" );
02534   MESSAGE("GEOM_Superv_i::GetFaceByNormale");
02535   getBlocksOp();
02536   GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetFaceByNormale(theBlock, theVector);
02537   endService( " GEOM_Superv_i::GetFaceByNormale" );
02538   return anObj;
02539 }
02540 
02541 //=============================================================================
02542 //  IsCompoundOfBlocks:
02543 //=============================================================================
02544 CORBA::Boolean GEOM_Superv_i::IsCompoundOfBlocks (GEOM::GEOM_Object_ptr theCompound,
02545                                                   CORBA::Long     theMinNbFaces,
02546                                                   CORBA::Long     theMaxNbFaces,
02547                                                   CORBA::Long&          theNbBlocks)
02548 {
02549   beginService( " GEOM_Superv_i::IsCompoundOfBlocks" );
02550   MESSAGE("GEOM_Superv_i::IsCompoundOfBlocks");
02551   getBlocksOp();
02552   CORBA::Boolean aRes = myBlocksOp->IsCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces, theNbBlocks);
02553   endService( " GEOM_Superv_i::IsCompoundOfBlocks" );
02554   return aRes;
02555 }
02556 
02557 //=============================================================================
02558 //  CheckCompoundOfBlocks:
02559 //=============================================================================
02560 CORBA::Boolean GEOM_Superv_i::CheckCompoundOfBlocks
02561 (GEOM::GEOM_Object_ptr theCompound,
02562  GEOM::GEOM_IBlocksOperations::BCErrors_out theErrors)
02563 {
02564   beginService( " GEOM_Superv_i::CheckCompoundOfBlocks" );
02565   MESSAGE("GEOM_Superv_i::CheckCompoundOfBlocks");
02566   getBlocksOp();
02567   CORBA::Boolean aRes = myBlocksOp->CheckCompoundOfBlocks(theCompound, theErrors);
02568   endService( " GEOM_Superv_i::CheckCompoundOfBlocks" );
02569   return aRes;
02570 }
02571 
02572 //=============================================================================
02573 //  PrintBCErrors:
02574 //=============================================================================
02575 char* GEOM_Superv_i::PrintBCErrors (GEOM::GEOM_Object_ptr theCompound,
02576                                     const GEOM::GEOM_IBlocksOperations::BCErrors& theErrors)
02577 {
02578   beginService( " GEOM_Superv_i::PrintBCErrors" );
02579   MESSAGE("GEOM_Superv_i::PrintBCErrors");
02580   getBlocksOp();
02581   char* anErrors = myBlocksOp->PrintBCErrors(theCompound, theErrors);
02582   endService( " GEOM_Superv_i::PrintBCErrors" );
02583   return anErrors;
02584 }
02585 
02586 //=============================================================================
02587 //  ExplodeCompoundOfBlocks:
02588 //=============================================================================
02589 GEOM::GEOM_List_ptr GEOM_Superv_i::ExplodeCompoundOfBlocks (GEOM::GEOM_Object_ptr theCompound,
02590                                                                 CORBA::Long     theMinNbFaces,
02591                                                                 CORBA::Long     theMaxNbFaces)
02592 {
02593   beginService( " GEOM_Superv_i::ExplodeCompoundOfBlocks" );
02594   MESSAGE("GEOM_Superv_i::ExplodeCompoundOfBlocks");
02595   getBlocksOp();
02596   GEOM::ListOfGO* aBlocks = myBlocksOp->ExplodeCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces);
02597   GEOM_List_i<GEOM::ListOfGO>* aListPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aBlocks));
02598   endService( " GEOM_Superv_i::ExplodeCompoundOfBlocks" );
02599   return aListPtr->_this();
02600 }
02601 
02602 //=============================================================================
02603 //  GetBlockNearPoint:
02604 //=============================================================================
02605 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetBlockNearPoint (GEOM::GEOM_Object_ptr theCompound,
02606                                                         GEOM::GEOM_Object_ptr thePoint)
02607 {
02608   beginService( " GEOM_Superv_i::GetBlockNearPoint" );
02609   MESSAGE("GEOM_Superv_i::GetBlockNearPoint");
02610   getBlocksOp();
02611   GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetBlockNearPoint(theCompound, thePoint);
02612   endService( " GEOM_Superv_i::GetBlockNearPoint" );
02613   return anObj;
02614 }
02615 
02616 //=============================================================================
02617 //  GetBlockByParts:
02618 //=============================================================================
02619 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetBlockByParts (GEOM::GEOM_Object_ptr theCompound,
02620                                                       GEOM::GEOM_List_ptr theParts)
02621 {
02622   beginService( " GEOM_Superv_i::GetBlockByParts" );
02623   MESSAGE("GEOM_Superv_i::GetBlockByParts");
02624   if (GEOM_List_i<GEOM::ListOfGO>* aListImplP =
02625       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theParts, myPOA).in())) {
02626     getBlocksOp();
02627     GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetBlockByParts(theCompound, aListImplP->GetList());
02628     endService( " GEOM_Superv_i::GetBlockByParts" );
02629     return anObj;
02630   }
02631   endService( " GEOM_Superv_i::GetBlockByParts" );
02632   return NULL;
02633 }
02634 
02635 //=============================================================================
02636 //  GetBlocksByParts:
02637 //=============================================================================
02638 GEOM::GEOM_List_ptr GEOM_Superv_i::GetBlocksByParts (GEOM::GEOM_Object_ptr theCompound,
02639                                                          GEOM::GEOM_List_ptr theParts)
02640 {
02641   beginService( " GEOM_Superv_i::GetBlocksByParts" );
02642   MESSAGE("GEOM_Superv_i::GetBlocksByParts");
02643   if (GEOM_List_i<GEOM::ListOfGO>* aListImplP =
02644       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(theParts, myPOA).in())) {
02645     getBlocksOp();
02646 
02647     GEOM::ListOfGO* aBlocks = myBlocksOp->GetBlocksByParts(theCompound, aListImplP->GetList());
02648     GEOM_List_i<GEOM::ListOfGO>* aListPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aBlocks));
02649     endService( " GEOM_Superv_i::GetBlocksByParts" );
02650     return aListPtr->_this();
02651   }
02652   endService( " GEOM_Superv_i::GetBlocksByParts" );
02653   return NULL;
02654 }
02655 
02656 //=============================================================================
02657 //  MakeMultiTransformation1D:
02658 //=============================================================================
02659 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeMultiTransformation1D (GEOM::GEOM_Object_ptr theBlock,
02660                                                                 CORBA::Long     theDirFace1,
02661                                                                 CORBA::Long     theDirFace2,
02662                                                                 CORBA::Long     theNbTimes)
02663 {
02664   beginService( " GEOM_Superv_i::MakeMultiTransformation1D" );
02665   MESSAGE("GEOM_Superv_i::MakeMultiTransformation1D");
02666   getBlocksOp();
02667   GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeMultiTransformation1D(theBlock, theDirFace1, theDirFace2, theNbTimes);
02668   endService( " GEOM_Superv_i::MakeMultiTransformation1D" );
02669   return anObj;
02670 }
02671 
02672 //=============================================================================
02673 //  MakeMultiTransformation2D:
02674 //=============================================================================
02675 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeMultiTransformation2D
02676 (GEOM::GEOM_Object_ptr theBlock,
02677  CORBA::Long     theDirFace1U,
02678  CORBA::Long     theDirFace2U,
02679  CORBA::Long     theNbTimesU,
02680  CORBA::Long     theDirFace1V,
02681  CORBA::Long     theDirFace2V,
02682  CORBA::Long     theNbTimesV)
02683 {
02684   beginService( " GEOM_Superv_i::MakeMultiTransformation2D" );
02685   MESSAGE("GEOM_Superv_i::MakeMultiTransformation2D");
02686   getBlocksOp();
02687   GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeMultiTransformation2D(theBlock,
02688                                                                       theDirFace1U, theDirFace2U, theNbTimesU,
02689                                                                       theDirFace1V, theDirFace2V, theNbTimesV);
02690   endService( " GEOM_Superv_i::MakeMultiTransformation2D" );
02691   return anObj;
02692 }
02693 
02694 //=============================== CurvesOperations ============================
02695 //=============================================================================
02696 //  MakeCirclePntVecR:
02697 //=============================================================================
02698 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCirclePntVecR (GEOM::GEOM_Object_ptr theCenter,
02699                                                         GEOM::GEOM_Object_ptr theVector,
02700                                                         CORBA::Double theR)
02701 {
02702   beginService( " GEOM_Superv_i::MakeCirclePntVecR" );
02703   MESSAGE("GEOM_Superv_i::MakeCirclePntVecR");
02704   getCurvesOp();
02705   GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeCirclePntVecR(theCenter, theVector, theR);
02706   endService( " GEOM_Superv_i::MakeCirclePntVecR" );
02707   return anObj;
02708 }
02709 
02710 //=============================================================================
02711 //  MakeCircleThreePnt:
02712 //=============================================================================
02713 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCircleThreePnt (GEOM::GEOM_Object_ptr thePnt1,
02714                                                          GEOM::GEOM_Object_ptr thePnt2,
02715                                                          GEOM::GEOM_Object_ptr thePnt3)
02716 {
02717   beginService( " GEOM_Superv_i::MakeCircleThreePnt" );
02718   MESSAGE("GEOM_Superv_i::MakeCircleThreePnt");
02719   getCurvesOp();
02720   GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeCircleThreePnt(thePnt1, thePnt2, thePnt3);
02721   endService( " GEOM_Superv_i::MakeCircleThreePnt" );
02722   return anObj;
02723 }
02724 //=============================================================================
02725 //  MakeCircleCenter2Pnt:
02726 //=============================================================================
02727 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCircleCenter2Pnt (GEOM::GEOM_Object_ptr thePnt1,
02728                                                              GEOM::GEOM_Object_ptr thePnt2,
02729                                                            GEOM::GEOM_Object_ptr thePnt3)
02730 {
02731   beginService( " GEOM_Superv_i::MakeCircleCenter2Pnt" );
02732   MESSAGE("GEOM_Superv_i::MakeCircleCenter2Pnt");
02733   getCurvesOp();
02734   GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeCircleCenter2Pnt(thePnt1, thePnt2, thePnt3);
02735   endService( " GEOM_Superv_i::MakeCircleCenter2Pnt" );
02736   return anObj;
02737 }
02738 
02739 //=============================================================================
02740 //  MakeEllipse:
02741 //=============================================================================
02742 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeEllipse (GEOM::GEOM_Object_ptr theCenter,
02743                                                   GEOM::GEOM_Object_ptr theVector,
02744                                                   CORBA::Double theRMajor,
02745                                                   CORBA::Double theRMinor)
02746 {
02747   beginService( " GEOM_Superv_i::MakeEllipse" );
02748   MESSAGE("GEOM_Superv_i::MakeEllipse");
02749   getCurvesOp();
02750   GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeEllipse(theCenter, theVector, theRMajor, theRMinor);
02751   endService( " GEOM_Superv_i::MakeEllipse" );
02752   return anObj;
02753 }
02754 
02755 //=============================================================================
02756 //  MakeEllipseVec:
02757 //=============================================================================
02758 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeEllipseVec (GEOM::GEOM_Object_ptr theCenter,
02759                                                      GEOM::GEOM_Object_ptr theVector,
02760                                                      CORBA::Double theRMajor,
02761                                                      CORBA::Double theRMinor,
02762                                                      GEOM::GEOM_Object_ptr theVectorMajor)
02763 {
02764   beginService( " GEOM_Superv_i::MakeEllipseVec" );
02765   MESSAGE("GEOM_Superv_i::MakeEllipseVec");
02766   getCurvesOp();
02767   GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeEllipseVec(theCenter, theVector, theRMajor, theRMinor, theVectorMajor);
02768   endService( " GEOM_Superv_i::MakeEllipseVec" );
02769   return anObj;
02770 }
02771 
02772 //=============================================================================
02773 //  MakeArc:
02774 //=============================================================================
02775 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeArc (GEOM::GEOM_Object_ptr thePnt1,
02776                                               GEOM::GEOM_Object_ptr thePnt2,
02777                                               GEOM::GEOM_Object_ptr thePnt3)
02778 {
02779   beginService( " GEOM_Superv_i::MakeArc" );
02780   MESSAGE("GEOM_Superv_i::MakeArc");
02781   getCurvesOp();
02782   GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeArc(thePnt1, thePnt2, thePnt3);
02783   endService( " GEOM_Superv_i::MakeArc" );
02784   return anObj;
02785 }
02786 
02787 //=============================================================================
02788 //  MakeArcCenter:
02789 //=============================================================================
02790 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeArcCenter (GEOM::GEOM_Object_ptr theCenter,
02791                                                     GEOM::GEOM_Object_ptr thePnt1,
02792                                                     GEOM::GEOM_Object_ptr thePnt2,
02793                                                     CORBA::Boolean theSense)
02794 {
02795   beginService( " GEOM_Superv_i::MakeArcCenter" );
02796   MESSAGE("GEOM_Superv_i::MakeArcCenter");
02797   getCurvesOp();
02798   GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeArcCenter(theCenter, thePnt1, thePnt2,theSense);
02799   endService( " GEOM_Superv_i::MakeArcCenter" );
02800   return anObj;
02801 }
02802 
02803 //=============================================================================
02804 //  MakeArcOfEllipse:
02805 //=============================================================================
02806 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeArcOfEllipse (GEOM::GEOM_Object_ptr thePnt1,
02807                                                        GEOM::GEOM_Object_ptr thePnt2,
02808                                                        GEOM::GEOM_Object_ptr thePnt3)
02809 {
02810   beginService( " GEOM_Superv_i::MakeArcOfEllipse" );
02811   MESSAGE("GEOM_Superv_i::MakeArcOfEllipse");
02812   getCurvesOp();
02813   GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeArcOfEllipse(thePnt1, thePnt2, thePnt3);
02814   endService( " GEOM_Superv_i::MakeArcOfEllipse" );
02815   return anObj;
02816 }
02817 
02818 //=============================================================================
02819 //  MakePolyline:
02820 //=============================================================================
02821 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePolyline (GEOM::GEOM_List_ptr thePoints,
02822                                                    CORBA::Boolean      theIsClosed)
02823 {
02824   beginService( " GEOM_Superv_i::MakePolyline" );
02825   MESSAGE("GEOM_Superv_i::MakePolyline");
02826   if (GEOM_List_i<GEOM::ListOfGO>* aListImplP =
02827       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(thePoints, myPOA).in())) {
02828     getCurvesOp();
02829     GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakePolyline(aListImplP->GetList(), theIsClosed);
02830     endService( " GEOM_Superv_i::MakePolyline" );
02831     return anObj;
02832   }
02833   endService( " GEOM_Superv_i::MakePolyline" );
02834   return NULL;
02835 }
02836 
02837 //=============================================================================
02838 //  MakeSplineBezier:
02839 //=============================================================================
02840 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSplineBezier (GEOM::GEOM_List_ptr thePoints,
02841                                                        CORBA::Boolean      theIsClosed)
02842 {
02843   beginService( " GEOM_Superv_i::MakeSplineBezier" );
02844   MESSAGE("GEOM_Superv_i::MakeSplineBezier");
02845   if (GEOM_List_i<GEOM::ListOfGO>* aListImplP =
02846       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(thePoints, myPOA).in())) {
02847     getCurvesOp();
02848     GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeSplineBezier(aListImplP->GetList(), theIsClosed);
02849     endService( " GEOM_Superv_i::MakeSplineBezier" );
02850     return anObj;
02851   }
02852   endService( " GEOM_Superv_i::MakeSplineBezier" );
02853   return NULL;
02854 }
02855 
02856 //=============================================================================
02857 //  MakeSplineInterpolation:
02858 //=============================================================================
02859 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSplineInterpolation (GEOM::GEOM_List_ptr thePoints,
02860                                                               CORBA::Boolean      theIsClosed,
02861                                                               CORBA::Boolean      theDoReordering)
02862 {
02863   beginService( " GEOM_Superv_i::MakeSplineInterpolation" );
02864   MESSAGE("GEOM_Superv_i::MakeSplineInterpolation");
02865   if (GEOM_List_i<GEOM::ListOfGO>* aListImplP =
02866       dynamic_cast<GEOM_List_i<GEOM::ListOfGO>*>(GetServant(thePoints, myPOA).in())) {
02867     getCurvesOp();
02868     GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeSplineInterpolation(aListImplP->GetList(), theIsClosed, theDoReordering);
02869     endService( " GEOM_Superv_i::MakeSplineInterpolation" );
02870     return anObj;
02871   }
02872   endService( " GEOM_Superv_i::MakeSplineInterpolation" );
02873   return NULL;
02874 }
02875 
02876 //=============================================================================
02877 //  MakeSketcher:
02878 //=============================================================================
02879 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSketcher (const char* theCommand,
02880                                                    GEOM::GEOM_List_ptr theWorkingPlane)
02881 {
02882   beginService( " GEOM_Superv_i::MakeSketcher" );
02883   MESSAGE("GEOM_Superv_i::MakeSketcher");
02884   if (GEOM_List_i<GEOM::ListOfDouble>* aListImplWP =
02885       dynamic_cast<GEOM_List_i<GEOM::ListOfDouble>*>(GetServant(theWorkingPlane, myPOA).in())) {
02886     getCurvesOp();
02887     GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeSketcher(theCommand, aListImplWP->GetList());
02888     endService( " GEOM_Superv_i::MakeSketcher" );
02889     return anObj;
02890   }
02891   endService( " GEOM_Superv_i::MakeSketcher" );
02892   return NULL;
02893 }
02894 
02895 //=============================================================================
02896 //  Make3DSketcher:
02897 //=============================================================================
02898 GEOM::GEOM_Object_ptr GEOM_Superv_i::Make3DSketcher ( GEOM::GEOM_List_ptr theCoordinates)
02899 {
02900   beginService( " GEOM_Superv_i::Make3DSketcher" );
02901   MESSAGE("GEOM_Superv_i::Make3DSketcher");
02902   if (GEOM_List_i<GEOM::ListOfDouble>* aListImpl =
02903       dynamic_cast<GEOM_List_i<GEOM::ListOfDouble>*>(GetServant(theCoordinates, myPOA).in())) {
02904     getCurvesOp();
02905     GEOM::GEOM_Object_ptr anObj = myCurvesOp->Make3DSketcher(aListImpl->GetList());
02906     endService( " GEOM_Superv_i::Make3DSketcher" );
02907     return anObj;
02908   }
02909   endService( " GEOM_Superv_i::Make3DSketcher" );
02910   return NULL;
02911 }
02912 
02913 //=============================== LocalOperations =============================
02914 //=============================================================================
02915 //  MakeFilletAll:
02916 //=============================================================================
02917 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletAll (GEOM::GEOM_Object_ptr theShape,
02918                                                     CORBA::Double theR)
02919 {
02920   beginService( " GEOM_Superv_i::MakeFilletAll" );
02921   MESSAGE("GEOM_Superv_i::MakeFilletAllMakeSketcher");
02922   getLocalOp();
02923   GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFilletAll(theShape, theR);
02924   endService( " GEOM_Superv_i::MakeFilletAll" );
02925   return anObj;
02926 }
02927 
02928 //=============================================================================
02929 //  MakeFilletEdges:
02930 //=============================================================================
02931 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletEdges (GEOM::GEOM_Object_ptr theShape,
02932                                                       CORBA::Double theR,
02933                                                       GEOM::GEOM_List_ptr theEdges)
02934 {
02935   beginService( " GEOM_Superv_i::MakeFilletEdges" );
02936   MESSAGE("GEOM_Superv_i::MakeFilletEdges");
02937   if (GEOM_List_i<GEOM::ListOfLong>* aListImplE =
02938       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theEdges, myPOA).in())) {
02939     getLocalOp();
02940     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFilletEdges(theShape, theR, aListImplE->GetList());
02941     endService( " GEOM_Superv_i::MakeFilletEdges" );
02942     return anObj;
02943   }
02944   endService( " GEOM_Superv_i::MakeFilletEdges" );
02945   return NULL;
02946 }
02947 
02948 //=============================================================================
02949 //  MakeFilletEdges R1 R2:
02950 //=============================================================================
02951 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletEdgesR1R2 (GEOM::GEOM_Object_ptr theShape,
02952                                                           CORBA::Double theR1,
02953                                                           CORBA::Double theR2,
02954                                                           GEOM::GEOM_List_ptr theEdges)
02955 {
02956   beginService( " GEOM_Superv_i::MakeFilletEdgesR1R2" );
02957   MESSAGE("GEOM_Superv_i::MakeFilletEdgesR1R2");
02958   if (GEOM_List_i<GEOM::ListOfLong>* aListImplE =
02959       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theEdges, myPOA).in())) {
02960     getLocalOp();
02961     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFilletEdgesR1R2(theShape, theR1,
02962                                                                  theR2, aListImplE->GetList());
02963     endService( " GEOM_Superv_i::MakeFilletEdgesR1R2" );
02964     return anObj;
02965   }
02966   endService( " GEOM_Superv_i::MakeFilletEdgesR1R2" );
02967   return NULL;
02968 }
02969 
02970 //=============================================================================
02971 //  MakeFilletFaces:
02972 //=============================================================================
02973 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletFaces (GEOM::GEOM_Object_ptr theShape,
02974                                                       CORBA::Double theR,
02975                                                       GEOM::GEOM_List_ptr theFaces)
02976 {
02977   beginService( " GEOM_Superv_i::MakeFilletFaces" );
02978   MESSAGE("GEOM_Superv_i::MakeFilletFaces");
02979   if (GEOM_List_i<GEOM::ListOfLong>* aListImplF =
02980       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theFaces, myPOA).in())) {
02981     getLocalOp();
02982     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFilletFaces(theShape, theR, aListImplF->GetList());
02983     endService( " GEOM_Superv_i::MakeFilletFaces" );
02984     return anObj;
02985   }
02986   endService( " GEOM_Superv_i::MakeFilletFaces" );
02987   return NULL;
02988 }
02989 
02990 //=============================================================================
02991 //  MakeFilletFaces R1 R2:
02992 //=============================================================================
02993 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletFacesR1R2 (GEOM::GEOM_Object_ptr theShape,
02994                                                           CORBA::Double theR1,
02995                                                           CORBA::Double theR2,
02996                                                           GEOM::GEOM_List_ptr theFaces)
02997 {
02998   beginService( " GEOM_Superv_i::MakeFilletFacesR1R2" );
02999   MESSAGE("GEOM_Superv_i::MakeFilletFacesR1R2");
03000   if (GEOM_List_i<GEOM::ListOfLong>* aListImplF =
03001       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theFaces, myPOA).in())) {
03002     getLocalOp();
03003     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFilletFacesR1R2(theShape, theR1, theR2,
03004                                                                  aListImplF->GetList());
03005     endService( " GEOM_Superv_i::MakeFilletFacesR1R2" );
03006     return anObj;
03007   }
03008   endService( " GEOM_Superv_i::MakeFilletFacesR1R2" );
03009   return NULL;
03010 }
03011 
03012 //=============================================================================
03013 //  MakeFillet2D:
03014 //=============================================================================
03015 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFillet2D (GEOM::GEOM_Object_ptr theShape,
03016                                                    CORBA::Double theR,
03017                                                    GEOM::GEOM_List_ptr theVertexes)
03018 {
03019   beginService( " GEOM_Superv_i::MakeFillet2D" );
03020   MESSAGE("GEOM_Superv_i::MakeFillet2D");
03021   if (GEOM_List_i<GEOM::ListOfLong>* aListImplV =
03022       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theVertexes, myPOA).in())) {
03023     getLocalOp();
03024     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFillet2D(theShape, theR, aListImplV->GetList());
03025     endService( " GEOM_Superv_i::MakeFillet2D" );
03026     return anObj;
03027   }
03028   endService( " GEOM_Superv_i::MakeFillet2D" );
03029   return NULL;
03030 }
03031 
03032 //=============================================================================
03033 //  MakeFillet1D:
03034 //=============================================================================
03035 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFillet1D (GEOM::GEOM_Object_ptr theShape,
03036                                                    CORBA::Double theR,
03037                                                    GEOM::GEOM_List_ptr theVertexes)
03038 {
03039   beginService( " GEOM_Superv_i::MakeFillet1D" );
03040   MESSAGE("GEOM_Superv_i::MakeFillet1D");
03041   if (GEOM_List_i<GEOM::ListOfLong>* aListImplV =
03042       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theVertexes, myPOA).in())) {
03043     getLocalOp();
03044     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFillet1D(theShape, theR, aListImplV->GetList());
03045     endService( " GEOM_Superv_i::MakeFillet1D" );
03046     return anObj;
03047   }
03048   endService( " GEOM_Superv_i::MakeFillet1D" );
03049   return NULL;
03050 }
03051 
03052 //=============================================================================
03053 //  MakeChamferAll:
03054 //=============================================================================
03055 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferAll (GEOM::GEOM_Object_ptr theShape, CORBA::Double theD)
03056 {
03057   beginService( " GEOM_Superv_i::MakeChamferAll" );
03058   MESSAGE("GEOM_Superv_i::MakeChamferAll");
03059   getLocalOp();
03060   GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferAll(theShape, theD);
03061   endService( " GEOM_Superv_i::MakeChamferAll" );
03062   return anObj;
03063 }
03064 
03065 //=============================================================================
03066 //  MakeChamferEdge:
03067 //=============================================================================
03068 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferEdge (GEOM::GEOM_Object_ptr theShape,
03069                                                       CORBA::Double theD1, CORBA::Double theD2,
03070                                                       CORBA::Long theFace1, CORBA::Long theFace2)
03071 {
03072   beginService( " GEOM_Superv_i::MakeChamferEdge" );
03073   MESSAGE("GEOM_Superv_i::MakeChamferEdge");
03074   getLocalOp();
03075   GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferEdge(theShape, theD1, theD2, theFace1, theFace2);
03076   endService( " GEOM_Superv_i::MakeChamferEdge" );
03077   return anObj;
03078 }
03079 
03080 //=============================================================================
03081 //  MakeChamferEdgeAD:
03082 //=============================================================================
03083 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferEdgeAD (GEOM::GEOM_Object_ptr theShape,
03084                                                         CORBA::Double theD, CORBA::Double theAngle,
03085                                                         CORBA::Long theFace1, CORBA::Long theFace2)
03086 {
03087   beginService( " GEOM_Superv_i::MakeChamferEdgeAD" );
03088   MESSAGE("GEOM_Superv_i::MakeChamferEdgeAD");
03089   getLocalOp();
03090   GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferEdgeAD(theShape, theD, theAngle, theFace1, theFace2);
03091   endService( " GEOM_Superv_i::MakeChamferEdgeAD" );
03092   return anObj;
03093 }
03094 
03095 //=============================================================================
03096 //  MakeChamferFaces:
03097 //=============================================================================
03098 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferFaces (GEOM::GEOM_Object_ptr theShape,
03099                                                        CORBA::Double theD1, CORBA::Double theD2,
03100                                                        GEOM::GEOM_List_ptr theFaces)
03101 {
03102   beginService( " GEOM_Superv_i::MakeChamferFaces" );
03103   MESSAGE("GEOM_Superv_i::MakeChamferFaces");
03104   if (GEOM_List_i<GEOM::ListOfLong>* aListImplF =
03105       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theFaces, myPOA).in())) {
03106     getLocalOp();
03107     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferFaces(theShape, theD1, theD2, aListImplF->GetList());
03108     endService( " GEOM_Superv_i::MakeChamferFaces" );
03109     return anObj;
03110   }
03111   endService( " GEOM_Superv_i::MakeChamferFaces" );
03112   return NULL;
03113 }
03114 
03115 //=============================================================================
03116 //  MakeChamferFacesAD:
03117 //=============================================================================
03118 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferFacesAD (GEOM::GEOM_Object_ptr theShape,
03119                                                          CORBA::Double theD, CORBA::Double theAngle,
03120                                                          GEOM::GEOM_List_ptr theFaces)
03121 {
03122   beginService( " GEOM_Superv_i::MakeChamferFacesAD" );
03123   MESSAGE("GEOM_Superv_i::MakeChamferFacesAD");
03124   if (GEOM_List_i<GEOM::ListOfLong>* aListImplF =
03125       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theFaces, myPOA).in())) {
03126     getLocalOp();
03127     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferFacesAD(theShape, theD, theAngle, aListImplF->GetList());
03128     endService( " GEOM_Superv_i::MakeChamferFacesAD" );
03129     return anObj;
03130   }
03131   endService( " GEOM_Superv_i::MakeChamferFacesAD" );
03132   return NULL;
03133 }
03134 
03135 //=============================================================================
03136 //  MakeChamferEdges:
03137 //=============================================================================
03138 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferEdges (GEOM::GEOM_Object_ptr theShape,
03139                                                        CORBA::Double theD1, CORBA::Double theD2,
03140                                                        GEOM::GEOM_List_ptr theEdges)
03141 {
03142   beginService( " GEOM_Superv_i::MakeChamferEdges" );
03143   MESSAGE("GEOM_Superv_i::MakeChamferEdges");
03144   if (GEOM_List_i<GEOM::ListOfLong>* aListImplF =
03145       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theEdges, myPOA).in())) {
03146     getLocalOp();
03147     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferEdges(theShape, theD1, theD2, aListImplF->GetList());
03148     endService( " GEOM_Superv_i::MakeChamferEdges" );
03149     return anObj;
03150   }
03151   endService( " GEOM_Superv_i::MakeChamferEdges" );
03152   return NULL;
03153 }
03154 
03155 //=============================================================================
03156 //  MakeChamferEdgesAD:
03157 //=============================================================================
03158 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferEdgesAD (GEOM::GEOM_Object_ptr theShape,
03159                                                          CORBA::Double theD, CORBA::Double theAngle,
03160                                                          GEOM::GEOM_List_ptr theEdges)
03161 {
03162   beginService( " GEOM_Superv_i::MakeChamferEdgesAD" );
03163   MESSAGE("GEOM_Superv_i::MakeChamferEdgesAD");
03164   if (GEOM_List_i<GEOM::ListOfLong>* aListImplF =
03165       dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theEdges, myPOA).in())) {
03166     getLocalOp();
03167     GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferEdgesAD(theShape, theD, theAngle, aListImplF->GetList());
03168     endService( " GEOM_Superv_i::MakeChamferEdgesAD" );
03169     return anObj;
03170   }
03171   endService( " GEOM_Superv_i::MakeChamferEdgesAD" );
03172   return NULL;
03173 }
03174 
03175 //=============================================================================
03176 //  MakeArchimede:
03177 //=============================================================================
03178 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeArchimede (GEOM::GEOM_Object_ptr theShape,
03179                                                     CORBA::Double theWeight,
03180                                                     CORBA::Double theWaterDensity,
03181                                                     CORBA::Double theMeshingDeflection)
03182 {
03183   beginService( " GEOM_Superv_i::MakeArchimede" );
03184   MESSAGE("GEOM_Superv_i::MakeArchimede");
03185   getLocalOp();
03186   GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeArchimede(theShape, theWeight, theWaterDensity, theMeshingDeflection);
03187   endService( " GEOM_Superv_i::MakeArchimede" );
03188   return anObj;
03189 }
03190 
03191 //=============================================================================
03192 //  GetSubShapeIndexMakeFilletAll:
03193 //=============================================================================
03194 CORBA::Long GEOM_Superv_i::GetSubShapeIndex (GEOM::GEOM_Object_ptr theShape,
03195                                              GEOM::GEOM_Object_ptr theSubShape)
03196 {
03197   beginService( " GEOM_Superv_i::GetSubShapeIndex" );
03198   MESSAGE("GEOM_Superv_i::GetSubShapeIndexMakeArchimede");
03199   getLocalOp();
03200   CORBA::Long aRes = myLocalOp->GetSubShapeIndex(theShape, theSubShape);
03201   endService( " GEOM_Superv_i::GetSubShapeIndex" );
03202   return aRes;
03203 }
03204 
03205 //=============================== GroupOperations =============================
03206 //=============================================================================
03207 //  CreateGroup:
03208 //=============================================================================
03209 GEOM::GEOM_Object_ptr GEOM_Superv_i::CreateGroup (GEOM::GEOM_Object_ptr theMainShape,
03210                                                   CORBA::Long theShapeType)
03211 {
03212   beginService( " GEOM_Superv_i::CreateGroup" );
03213   MESSAGE("GEOM_Superv_i::CreateGroup");
03214   getGroupOp();
03215   GEOM::GEOM_Object_ptr anObj = myGroupOp->CreateGroup(theMainShape, theShapeType);
03216   endService( " GEOM_Superv_i::CreateGroup" );
03217   return anObj;
03218 }
03219 
03220 //=============================================================================
03221 //  AddObject:
03222 //=============================================================================
03223 void GEOM_Superv_i::AddObject (GEOM::GEOM_Object_ptr theGroup,
03224                                CORBA::Long theSubShapeId)
03225 {
03226   beginService( " GEOM_Superv_i::AddObject" );
03227   MESSAGE("GEOM_Superv_i::AddObject");
03228   getGroupOp();
03229   myGroupOp->AddObject(theGroup, theSubShapeId);
03230   endService( " GEOM_Superv_i::AddObject" );
03231 }
03232 
03233 //=============================================================================
03234 //  RemoveObject:
03235 //=============================================================================
03236 void GEOM_Superv_i::RemoveObject (GEOM::GEOM_Object_ptr theGroup,
03237                                   CORBA::Long theSubShapeId)
03238 {
03239   beginService( " GEOM_Superv_i::RemoveObject" );
03240   MESSAGE("GEOM_Superv_i::RemoveObject");
03241   getGroupOp();
03242   myGroupOp->RemoveObject(theGroup, theSubShapeId);
03243   endService( " GEOM_Superv_i::RemoveObject" );
03244 }
03245 
03246 //=============================================================================
03247 //  GetType:
03248 //=============================================================================
03249 CORBA::Long GEOM_Superv_i::GetType (GEOM::GEOM_Object_ptr theGroup)
03250 {
03251   beginService( " GEOM_Superv_i::GetType" );
03252   MESSAGE("GEOM_Superv_i::GetType");
03253   getGroupOp();
03254   CORBA::Long aResult = myGroupOp->GetType(theGroup);
03255   endService( " GEOM_Superv_i::GetType" );
03256   return aResult;
03257 }
03258 
03259 //=============================================================================
03260 //  GetMainShape:
03261 //=============================================================================
03262 GEOM::GEOM_Object_ptr GEOM_Superv_i::GetMainShape (GEOM::GEOM_Object_ptr theGroup)
03263 {
03264   beginService( " GEOM_Superv_i::GetMainShape" );
03265   MESSAGE("GEOM_Superv_i::GetMainShape");
03266   getGroupOp();
03267   GEOM::GEOM_Object_ptr anObj = myGroupOp->GetMainShape(theGroup);
03268   endService( " GEOM_Superv_i::GetMainShape" );
03269   return anObj;
03270 }
03271 
03272 //=============================================================================
03273 //  GetObjects:
03274 //=============================================================================
03275 GEOM::GEOM_List_ptr GEOM_Superv_i::GetObjects (GEOM::GEOM_Object_ptr theGroup)
03276 {
03277   beginService( " GEOM_Superv_i::GetObjects" );
03278   MESSAGE("GEOM_Superv_i::GetObjects");
03279   getGroupOp();
03280 
03281   GEOM::ListOfLong* aList = myGroupOp->GetObjects(theGroup);
03282   GEOM_List_i<GEOM::ListOfLong>* aListPtr = new GEOM_List_i<GEOM::ListOfLong>(*(aList));
03283   MESSAGE(" List of "<<aListPtr->GetList().length()<<" element(s)");
03284   endService( " GEOM_Superv_i::GetObjects" );
03285   return aListPtr->_this();
03286 }
03287 
03288 //=============================== Advanced Operations =============================
03289 //=============================================================================
03290 //  MakePipeTShape
03291 //=============================================================================
03292 GEOM::GEOM_List_ptr GEOM_Superv_i::MakePipeTShape
03293                     (CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
03294                      CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
03295                      CORBA::Boolean theHexMesh)
03296 {
03297   beginService( " GEOM_Superv_i::MakePipeTShape" );
03298   MESSAGE("GEOM_Superv_i::MakePipeTShape");
03299   getAdvancedOp();
03300 
03301   GEOM::ListOfGO* aSeq = myAdvancedOp->MakePipeTShape(theR1, theW1, theL1, theR2, theW2, theL2, theHexMesh);
03302   GEOM_List_i<GEOM::ListOfGO>* aSeqPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aSeq));
03303   MESSAGE(" List of "<<aSeqPtr->GetList().length()<<" element(s)");
03304   endService( " GEOM_Superv_i::MakePipeTShape" );
03305   return aSeqPtr->_this();
03306 }
03307 
03308 //=============================================================================
03309 //  MakePipeTShapeWithPosition
03310 //=============================================================================
03311 GEOM::GEOM_List_ptr GEOM_Superv_i::MakePipeTShapeWithPosition
03312                     (CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
03313                      CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2, CORBA::Boolean theHexMesh,
03314                      GEOM::GEOM_Object_ptr theP1, GEOM::GEOM_Object_ptr theP2, GEOM::GEOM_Object_ptr theP3)
03315 {
03316   beginService( " GEOM_Superv_i::MakePipeTShapeWithPosition" );
03317   MESSAGE("GEOM_Superv_i::MakePipeTShapeWithPosition");
03318   getAdvancedOp();
03319 
03320   GEOM::ListOfGO* aSeq = myAdvancedOp->MakePipeTShapeWithPosition(theR1, theW1, theL1, theR2, theW2, theL2, theHexMesh, theP1, theP2, theP3);
03321   GEOM_List_i<GEOM::ListOfGO>* aSeqPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aSeq));
03322   MESSAGE(" List of "<<aSeqPtr->GetList().length()<<" element(s)");
03323   endService( " GEOM_Superv_i::MakePipeTShapeWithPosition" );
03324   return aSeqPtr->_this();
03325 }
03326 
03327 //=============================================================================
03328 //  MakePipeTShapeChamfer
03329 //=============================================================================
03330 GEOM::GEOM_List_ptr GEOM_Superv_i::MakePipeTShapeChamfer
03331                     (CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
03332                      CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
03333                      CORBA::Double theH, CORBA::Double theW, CORBA::Boolean theHexMesh)
03334 {
03335   beginService( " GEOM_Superv_i::MakePipeTShapeChamfer" );
03336   MESSAGE("GEOM_Superv_i::MakePipeTShapeChamfer");
03337   getAdvancedOp();
03338 
03339   GEOM::ListOfGO* aSeq = myAdvancedOp->MakePipeTShapeChamfer(theR1, theW1, theL1, theR2, theW2, theL2, theH, theW, theHexMesh);
03340   GEOM_List_i<GEOM::ListOfGO>* aSeqPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aSeq));
03341   MESSAGE(" List of "<<aSeqPtr->GetList().length()<<" element(s)");
03342   endService( " GEOM_Superv_i::MakePipeTShapeChamfer" );
03343   return aSeqPtr->_this();
03344 }
03345 
03346 //=============================================================================
03347 //  MakePipeTShapeChamferWithPosition
03348 //=============================================================================
03349 GEOM::GEOM_List_ptr GEOM_Superv_i::MakePipeTShapeChamferWithPosition
03350                     (CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
03351                      CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
03352                      CORBA::Double theH, CORBA::Double theW, CORBA::Boolean theHexMesh,
03353                      GEOM::GEOM_Object_ptr theP1, GEOM::GEOM_Object_ptr theP2, GEOM::GEOM_Object_ptr theP3)
03354 {
03355   beginService( " GEOM_Superv_i::MakePipeTShapeChamferWithPosition" );
03356   MESSAGE("GEOM_Superv_i::MakePipeTShapeChamferWithPosition");
03357   getAdvancedOp();
03358 
03359   GEOM::ListOfGO* aSeq = myAdvancedOp->MakePipeTShapeChamferWithPosition(theR1, theW1, theL1, theR2, theW2, theL2, theH, theW, theHexMesh, theP1, theP2, theP3);
03360   GEOM_List_i<GEOM::ListOfGO>* aSeqPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aSeq));
03361   MESSAGE(" List of "<<aSeqPtr->GetList().length()<<" element(s)");
03362   endService( " GEOM_Superv_i::MakePipeTShapeChamferWithPosition" );
03363   return aSeqPtr->_this();
03364 }
03365 
03366 //=============================================================================
03367 //  MakePipeTShapeFillet
03368 //=============================================================================
03369 GEOM::GEOM_List_ptr GEOM_Superv_i::MakePipeTShapeFillet
03370                     (CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
03371                      CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
03372                      CORBA::Double theRF, CORBA::Boolean theHexMesh)
03373 {
03374   beginService( " GEOM_Superv_i::MakePipeTShapeFillet" );
03375   MESSAGE("GEOM_Superv_i::MakePipeTShapeFillet");
03376   getAdvancedOp();
03377 
03378   GEOM::ListOfGO* aSeq = myAdvancedOp->MakePipeTShapeFillet(theR1, theW1, theL1, theR2, theW2, theL2, theRF, theHexMesh);
03379   GEOM_List_i<GEOM::ListOfGO>* aSeqPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aSeq));
03380   MESSAGE(" List of "<<aSeqPtr->GetList().length()<<" element(s)");
03381   endService( " GEOM_Superv_i::MakePipeTShapeFillet" );
03382   return aSeqPtr->_this();
03383 }
03384 
03385 //=============================================================================
03386 //  MakePipeTShapeFilletWithPosition
03387 //=============================================================================
03388 GEOM::GEOM_List_ptr GEOM_Superv_i::MakePipeTShapeFilletWithPosition
03389                     (CORBA::Double theR1, CORBA::Double theW1, CORBA::Double theL1,
03390                      CORBA::Double theR2, CORBA::Double theW2, CORBA::Double theL2,
03391                      CORBA::Double theRF, CORBA::Boolean theHexMesh,
03392                      GEOM::GEOM_Object_ptr theP1, GEOM::GEOM_Object_ptr theP2, GEOM::GEOM_Object_ptr theP3)
03393 {
03394   beginService( " GEOM_Superv_i::MakePipeTShapeFilletWithPosition" );
03395   MESSAGE("GEOM_Superv_i::MakePipeTShapeFilletWithPosition");
03396   getAdvancedOp();
03397 
03398   GEOM::ListOfGO* aSeq = myAdvancedOp->MakePipeTShapeFilletWithPosition(theR1, theW1, theL1, theR2, theW2, theL2, theRF, theHexMesh, theP1, theP2, theP3);
03399   GEOM_List_i<GEOM::ListOfGO>* aSeqPtr = new GEOM_List_i<GEOM::ListOfGO>(*(aSeq));
03400   MESSAGE(" List of "<<aSeqPtr->GetList().length()<<" element(s)");
03401   endService( " GEOM_Superv_i::MakePipeTShapeFilletWithPosition" );
03402   return aSeqPtr->_this();
03403 }
03404 
03405 /*@@ insert new functions before this line @@ do not remove this line @@*/
03406 
03407 //=====================================================================================
03408 // EXPORTED METHODS
03409 //=====================================================================================
03410 extern "C"
03411 {
03412 #ifdef WIN32
03413   __declspec( dllexport )
03414 #endif
03415   PortableServer::ObjectId * GEOM_SupervEngine_factory(CORBA::ORB_ptr orb,
03416                                                        PortableServer::POA_ptr poa,
03417                                                        PortableServer::ObjectId * contId,
03418                                                        const char *instanceName,
03419                                                        const char * interfaceName)
03420   {
03421     GEOM_Superv_i * myGEOM_Superv_i = new GEOM_Superv_i(orb, poa, contId, instanceName, interfaceName);
03422     //Don't understand the reason why this component is registered ???
03423 //    myGEOM_Superv_i->register_name("/myGEOM_Superv");
03424     return myGEOM_Superv_i->getId() ;
03425   }
03426 }