X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOM_I_Superv%2FGEOM_Superv_i.cc;h=299d9f55098785b43cfc297fefbef28c0fde426e;hb=ffe7a66382675c09eb24ef8345361cf5b1133033;hp=360ad26860ea0d7e02ea6577c9ab3f5ed20a94da;hpb=d3dd282390888d7dc091ba2c2ffe7923bd7458e6;p=modules%2Fgeom.git diff --git a/src/GEOM_I_Superv/GEOM_Superv_i.cc b/src/GEOM_I_Superv/GEOM_Superv_i.cc index 360ad2686..299d9f550 100644 --- a/src/GEOM_I_Superv/GEOM_Superv_i.cc +++ b/src/GEOM_I_Superv/GEOM_Superv_i.cc @@ -1,7 +1,32 @@ -using namespace std; +// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #include "GEOM_Superv_i.hh" +#include "SALOME_LifeCycleCORBA.hxx" + +#include CORBA_SERVER_HEADER(SALOME_Session) +#include "SALOMEDSClient_ClientFactory.hxx" +#define isNewStudy(a,b) (a > 0 && a != b) + +using namespace std; //============================================================================= // constructor: //============================================================================= @@ -17,9 +42,15 @@ GEOM_Superv_i::GEOM_Superv_i(CORBA::ORB_ptr orb, _thisObj = this ; _id = _poa->activate_object(_thisObj); name_service = new SALOME_NamingService(_orb); + //get RootPOA (the default) + //myPOA = PortableServer::RefCountServantBase::_default_POA(); + CORBA::Object_var anObj = _orb->resolve_initial_references("RootPOA"); + myPOA = PortableServer::POA::_narrow(anObj); + + setGeomEngine(); - myGeomEngine = GEOM::GEOM_Gen::_nil(); myStudyID = -1; + myLastStudyID = -1; myBasicOp = GEOM::GEOM_IBasicOperations::_nil(); my3DPrimOp = GEOM::GEOM_I3DPrimOperations::_nil(); @@ -69,7 +100,115 @@ void GEOM_Superv_i::setGeomEngine() //============================================================================= void GEOM_Superv_i::SetStudyID( CORBA::Long theId ) { - myStudyID = theId; + // mkr : PAL10770 --> + myLastStudyID = myStudyID; + + CORBA::Object_ptr anObject = name_service->Resolve("/Kernel/Session"); + if ( !CORBA::is_nil(anObject) ) { + SALOME::Session_var aSession = SALOME::Session::_narrow(anObject); + if ( !CORBA::is_nil(aSession) ) { + int aStudyID = aSession->GetActiveStudyId(); + if ( theId != aStudyID && aStudyID > 0) { // mkr : IPAL12128 + MESSAGE("Warning : given study ID theId="<object_to_string( myGeomEngine ); + + CORBA::Object_var anObj = name_service->Resolve("/myStudyManager"); + if ( !CORBA::is_nil(anObj) ) { + SALOMEDS::StudyManager_var aStudyManager = SALOMEDS::StudyManager::_narrow(anObj); + if ( !CORBA::is_nil(aStudyManager) ) { + _PTR(Study) aDSStudy = ClientFactory::Study(aStudyManager->GetStudyByID(myStudyID)); + if ( aDSStudy ) { + _PTR(SComponent) aSCO = aDSStudy->FindComponent(myGeomEngine->ComponentDataType()); + if ( aSCO ) { + _PTR(StudyBuilder) aBuilder = aDSStudy->NewBuilder(); + if ( aBuilder ) aBuilder->LoadWith( aSCO, anEngine ); + } + } + } + } + } + // mkr : PAL10770 <-- +} + +//============================================================================= +// CreateListOfGO: +//============================================================================= +GEOM::GEOM_List_ptr GEOM_Superv_i::CreateListOfGO() +{ + MESSAGE("GEOM_Superv_i::CreateListOfGO()"); + GEOM_List_i* aListPtr = new GEOM_List_i(); + return aListPtr->_this(); +} + +//============================================================================= +// AddItemToListOfGO: +//============================================================================= +void GEOM_Superv_i::AddItemToListOfGO(GEOM::GEOM_List_ptr& theList, + GEOM::GEOM_Object_ptr theObject) +{ + MESSAGE("GEOM_Superv_i::AddItemToListOfGO(...)"); + if (GEOM_List_i* aList = + dynamic_cast*>(GetServant(theList, myPOA).in())) { + aList->AddObject(theObject); + MESSAGE(" NewLength = "<GetList().length()); + } +} + +//============================================================================= +// CreateListOfLong: +//============================================================================= +GEOM::GEOM_List_ptr GEOM_Superv_i::CreateListOfLong() +{ + MESSAGE("GEOM_Superv_i::CreateListOfLong()"); + GEOM_List_i* aListPtr = new GEOM_List_i(); + return aListPtr->_this(); +} + +//============================================================================= +// AddItemToListOfLong: +//============================================================================= +void GEOM_Superv_i::AddItemToListOfLong(GEOM::GEOM_List_ptr& theList, + CORBA::Long theObject) +{ + MESSAGE("GEOM_Superv_i::AddItemToListOfLong(...)"); + if (GEOM_List_i* aList = + dynamic_cast*>(GetServant(theList, myPOA).in())) { + aList->AddObject(theObject); + MESSAGE(" NewLength = "<GetList().length()); + } +} + +//============================================================================= +// CreateListOfDouble: +//============================================================================= +GEOM::GEOM_List_ptr GEOM_Superv_i::CreateListOfDouble() +{ + MESSAGE("GEOM_Superv_i::CreateListOfDouble()"); + GEOM_List_i* aListPtr = new GEOM_List_i(); + return aListPtr->_this(); +} + +//============================================================================= +// AddItemToListOfDouble: +//============================================================================= +void GEOM_Superv_i::AddItemToListOfDouble(GEOM::GEOM_List_ptr& theList, + CORBA::Double theObject) +{ + MESSAGE("GEOM_Superv_i::AddItemToListOfDouble(...)"); + if (GEOM_List_i* aList = + dynamic_cast*>(GetServant(theList, myPOA).in())) { + aList->AddObject(theObject); + MESSAGE(" NewLength = "<GetList().length()); + } } //============================================================================= @@ -80,7 +219,8 @@ void GEOM_Superv_i::getBasicOp() if (CORBA::is_nil(myGeomEngine)) setGeomEngine(); // get GEOM_IBasicOperations interface - myBasicOp = myGeomEngine->GetIBasicOperations(myStudyID); + if (CORBA::is_nil(myBasicOp) || isNewStudy(myLastStudyID,myStudyID)) + myBasicOp = myGeomEngine->GetIBasicOperations(myStudyID); } //============================================================================= @@ -91,7 +231,8 @@ void GEOM_Superv_i::get3DPrimOp() if (CORBA::is_nil(myGeomEngine)) setGeomEngine(); // get GEOM_I3DPrimOperations interface - my3DPrimOp = myGeomEngine->GetI3DPrimOperations(myStudyID); + if (CORBA::is_nil(my3DPrimOp) || isNewStudy(myLastStudyID,myStudyID)) + my3DPrimOp = myGeomEngine->GetI3DPrimOperations(myStudyID); } //============================================================================= @@ -102,7 +243,8 @@ void GEOM_Superv_i::getBoolOp() if (CORBA::is_nil(myGeomEngine)) setGeomEngine(); // get GEOM_IBooleanOperations interface - myBoolOp = myGeomEngine->GetIBooleanOperations(myStudyID); + if (CORBA::is_nil(myBoolOp) || isNewStudy(myLastStudyID,myStudyID)) + myBoolOp = myGeomEngine->GetIBooleanOperations(myStudyID); } //============================================================================= @@ -113,7 +255,8 @@ void GEOM_Superv_i::getInsOp() if (CORBA::is_nil(myGeomEngine)) setGeomEngine(); // get GEOM_IInsertOperations interface - myInsOp = myGeomEngine->GetIInsertOperations(myStudyID); + if (CORBA::is_nil(myInsOp) || isNewStudy(myLastStudyID,myStudyID)) + myInsOp = myGeomEngine->GetIInsertOperations(myStudyID); } //============================================================================= @@ -124,7 +267,8 @@ void GEOM_Superv_i::getTransfOp() if (CORBA::is_nil(myGeomEngine)) setGeomEngine(); // get GEOM_ITransformOperations interface - myTransfOp = myGeomEngine->GetITransformOperations(myStudyID); + if (CORBA::is_nil(myTransfOp) || isNewStudy(myLastStudyID,myStudyID)) + myTransfOp = myGeomEngine->GetITransformOperations(myStudyID); } //============================================================================= @@ -135,7 +279,8 @@ void GEOM_Superv_i::getShapesOp() if (CORBA::is_nil(myGeomEngine)) setGeomEngine(); // get GEOM_IShapesOperations interface - myShapesOp = myGeomEngine->GetIShapesOperations(myStudyID); + if (CORBA::is_nil(myShapesOp) || isNewStudy(myLastStudyID,myStudyID)) + myShapesOp = myGeomEngine->GetIShapesOperations(myStudyID); } //============================================================================= @@ -146,7 +291,8 @@ void GEOM_Superv_i::getBlocksOp() if (CORBA::is_nil(myGeomEngine)) setGeomEngine(); // get GEOM_IBlocksOperations interface - myBlocksOp = myGeomEngine->GetIBlocksOperations(myStudyID); + if (CORBA::is_nil(myBlocksOp) || isNewStudy(myLastStudyID,myStudyID)) + myBlocksOp = myGeomEngine->GetIBlocksOperations(myStudyID); } //============================================================================= @@ -157,7 +303,8 @@ void GEOM_Superv_i::getCurvesOp() if (CORBA::is_nil(myGeomEngine)) setGeomEngine(); // get GEOM_ICurvesOperations interface - myCurvesOp = myGeomEngine->GetICurvesOperations(myStudyID); + if (CORBA::is_nil(myCurvesOp) || isNewStudy(myLastStudyID,myStudyID)) + myCurvesOp = myGeomEngine->GetICurvesOperations(myStudyID); } //============================================================================= @@ -168,7 +315,8 @@ void GEOM_Superv_i::getLocalOp() if (CORBA::is_nil(myGeomEngine)) setGeomEngine(); // get GEOM_ILocalOperations interface - myLocalOp = myGeomEngine->GetILocalOperations(myStudyID); + if (CORBA::is_nil(myLocalOp) || isNewStudy(myLastStudyID,myStudyID)) + myLocalOp = myGeomEngine->GetILocalOperations(myStudyID); } //============================================================================= @@ -179,7 +327,19 @@ void GEOM_Superv_i::getGroupOp() if (CORBA::is_nil(myGeomEngine)) setGeomEngine(); // get GEOM_IGroupOperations interface - myGroupOp = myGeomEngine->GetIGroupOperations(myStudyID); + if (CORBA::is_nil(myGroupOp) || isNewStudy(myLastStudyID,myStudyID)) + myGroupOp = myGeomEngine->GetIGroupOperations(myStudyID); +} + +//============================================================================= +// GetServant: +//============================================================================= +PortableServer::ServantBase_var GEOM_Superv_i::GetServant(CORBA::Object_ptr theObject, + PortableServer::POA_ptr thePOA) +{ + if(CORBA::is_nil(theObject)) return NULL; + PortableServer::Servant aServant = thePOA->reference_to_servant(theObject); + return aServant; } //============================================================================ @@ -188,7 +348,7 @@ void GEOM_Superv_i::getGroupOp() //============================================================================ SALOMEDS::TMPFile* GEOM_Superv_i::Save(SALOMEDS::SComponent_ptr theComponent, const char* theURL, - bool isMultiFile) + CORBA::Boolean isMultiFile) { SALOMEDS::TMPFile_var aStreamFile; return aStreamFile._retn(); @@ -200,7 +360,7 @@ SALOMEDS::TMPFile* GEOM_Superv_i::Save(SALOMEDS::SComponent_ptr theComponent, //============================================================================ SALOMEDS::TMPFile* GEOM_Superv_i::SaveASCII(SALOMEDS::SComponent_ptr theComponent, const char* theURL, - bool isMultiFile) + CORBA::Boolean isMultiFile) { SALOMEDS::TMPFile_var aStreamFile; return aStreamFile._retn(); @@ -213,7 +373,7 @@ SALOMEDS::TMPFile* GEOM_Superv_i::SaveASCII(SALOMEDS::SComponent_ptr theComponen CORBA::Boolean GEOM_Superv_i::Load(SALOMEDS::SComponent_ptr theComponent, const SALOMEDS::TMPFile& theStream, const char* theURL, - bool isMultiFile) + CORBA::Boolean isMultiFile) { return false; } @@ -225,7 +385,7 @@ CORBA::Boolean GEOM_Superv_i::Load(SALOMEDS::SComponent_ptr theComponent, CORBA::Boolean GEOM_Superv_i::LoadASCII(SALOMEDS::SComponent_ptr theComponent, const SALOMEDS::TMPFile& theStream, const char* theURL, - bool isMultiFile) + CORBA::Boolean isMultiFile) { return false; } @@ -235,7 +395,8 @@ CORBA::Boolean GEOM_Superv_i::LoadASCII(SALOMEDS::SComponent_ptr theComponent, // purpose : //============================================================================ void GEOM_Superv_i::Close(SALOMEDS::SComponent_ptr theComponent) -{} +{ +} //============================================================================ // function : ComponentDataType() @@ -276,7 +437,7 @@ char* GEOM_Superv_i::LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject, // function : CanPublishInStudy // purpose : //============================================================================ -bool GEOM_Superv_i::CanPublishInStudy(CORBA::Object_ptr theIOR) +CORBA::Boolean GEOM_Superv_i::CanPublishInStudy(CORBA::Object_ptr theIOR) { if (CORBA::is_nil(myGeomEngine)) setGeomEngine(); @@ -345,10 +506,13 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointXYZ(CORBA::Double theX, CORBA::Double theY, CORBA::Double theZ) { + beginService( " GEOM_Superv_i::MakePointXYZ" ); MESSAGE("GEOM_Superv_i::MakePointXYZ"); - if (CORBA::is_nil(myBasicOp)) getBasicOp(); + getBasicOp(); // make vertex and return - return myBasicOp->MakePointXYZ(theX, theY, theZ); + GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePointXYZ(theX, theY, theZ); + endService( " GEOM_Superv_i::MakePointXYZ" ); + return anObj; } //============================================================================= @@ -359,9 +523,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointWithReference (GEOM::GEOM_Object_p CORBA::Double theY, CORBA::Double theZ) { + beginService( " GEOM_Superv_i::MakePointWithReference" ); MESSAGE("GEOM_Superv_i::MakePointWithReference"); - if (CORBA::is_nil(myBasicOp)) getBasicOp(); - return myBasicOp->MakePointWithReference(theReference, theX, theY, theZ); + getBasicOp(); + GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePointWithReference(theReference, theX, theY, theZ); + endService( " GEOM_Superv_i::MakePointWithReference" ); + return anObj; } //============================================================================= @@ -370,9 +537,26 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointWithReference (GEOM::GEOM_Object_p GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointOnCurve (GEOM::GEOM_Object_ptr theRefCurve, CORBA::Double theParameter) { + beginService( " GEOM_Superv_i::MakePointOnCurve" ); MESSAGE("GEOM_Superv_i::MakePointOnCurve"); - if (CORBA::is_nil(myBasicOp)) getBasicOp(); - return myBasicOp->MakePointOnCurve(theRefCurve, theParameter); + getBasicOp(); + GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePointOnCurve(theRefCurve, theParameter); + endService( " GEOM_Superv_i::MakePointOnCurve" ); + return anObj; +} + +//============================================================================= +// MakeTangentOnCurve: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeTangentOnCurve (GEOM::GEOM_Object_ptr theRefCurve, + CORBA::Double theParameter) +{ + beginService( " GEOM_Superv_i::MakeTangentOnCurve" ); + MESSAGE("GEOM_Superv_i::MakeTangentOnCurve"); + getBasicOp(); + GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeTangentOnCurve(theRefCurve, theParameter); + endService( " GEOM_Superv_i::MakeTangentOnCurve" ); + return anObj; } //============================================================================= @@ -382,9 +566,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeVectorDXDYDZ (CORBA::Double theDX, CORBA::Double theDY, CORBA::Double theDZ) { + beginService( " GEOM_Superv_i::MakeVectorDXDYDZ" ); MESSAGE("GEOM_Superv_i::MakeVectorDXDYDZ"); - if (CORBA::is_nil(myBasicOp)) getBasicOp(); - return myBasicOp->MakeVectorDXDYDZ(theDX, theDY, theDZ); + getBasicOp(); + GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeVectorDXDYDZ(theDX, theDY, theDZ); + endService( " GEOM_Superv_i::MakeVectorDXDYDZ" ); + return anObj; } //============================================================================= @@ -393,9 +580,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeVectorDXDYDZ (CORBA::Double theDX, GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeVectorTwoPnt (GEOM::GEOM_Object_ptr thePnt1, GEOM::GEOM_Object_ptr thePnt2) { + beginService( " GEOM_Superv_i::MakeVectorTwoPnt" ); MESSAGE("GEOM_Superv_i::MakeVector"); - if (CORBA::is_nil(myBasicOp)) getBasicOp(); - return myBasicOp->MakeVectorTwoPnt(thePnt1, thePnt2); + getBasicOp(); + GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeVectorTwoPnt(thePnt1, thePnt2); + endService( " GEOM_Superv_i::MakeVectorTwoPnt" ); + return anObj; } //============================================================================= @@ -404,9 +594,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeVectorTwoPnt (GEOM::GEOM_Object_ptr the GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeLineTwoPnt (GEOM::GEOM_Object_ptr thePnt1, GEOM::GEOM_Object_ptr thePnt2) { + beginService( " GEOM_Superv_i::MakeLineTwoPnt"); MESSAGE("GEOM_Superv_i::MakeLineTwoPnt"); - if (CORBA::is_nil(myBasicOp)) getBasicOp(); - return myBasicOp->MakeLineTwoPnt(thePnt1, thePnt2); + getBasicOp(); + GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeLineTwoPnt(thePnt1, thePnt2); + endService( " GEOM_Superv_i::MakeLineTwoPnt"); + return anObj; } //============================================================================= @@ -417,9 +610,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePlaneThreePnt (GEOM::GEOM_Object_ptr th GEOM::GEOM_Object_ptr thePnt3, CORBA::Double theTrimSize) { + beginService( " GEOM_Superv_i::MakePlaneThreePnt"); MESSAGE("GEOM_Superv_i::MakePlaneThreePnt"); - if (CORBA::is_nil(myBasicOp)) getBasicOp(); - return myBasicOp->MakePlaneThreePnt(thePnt1, thePnt2, thePnt3, theTrimSize); + getBasicOp(); + GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePlaneThreePnt(thePnt1, thePnt2, thePnt3, theTrimSize); + endService( " GEOM_Superv_i::MakePlaneThreePnt"); + return anObj; } //============================================================================= @@ -428,10 +624,13 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePlaneThreePnt (GEOM::GEOM_Object_ptr th GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePlanePntVec (GEOM::GEOM_Object_ptr thePnt, GEOM::GEOM_Object_ptr theVec, CORBA::Double theTrimSize) -{ +{ + beginService( " GEOM_Superv_i::MakePlanePntVec" ); MESSAGE("GEOM_Superv_i::MakePlanePntVec"); - if (CORBA::is_nil(myBasicOp)) getBasicOp(); - return myBasicOp->MakePlanePntVec(thePnt, theVec, theTrimSize); + getBasicOp(); + GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePlanePntVec(thePnt, theVec, theTrimSize); + endService( " GEOM_Superv_i::MakePlanePntVec" ); + return anObj; } //============================================================================= @@ -440,9 +639,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePlanePntVec (GEOM::GEOM_Object_ptr theP GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePlaneFace (GEOM::GEOM_Object_ptr theFace, CORBA::Double theTrimSize) { + beginService( " GEOM_Superv_i::MakePlaneFace" ); MESSAGE("GEOM_Superv_i::MakePlaneFace"); - if (CORBA::is_nil(myBasicOp)) getBasicOp(); - return myBasicOp->MakePlaneFace(theFace, theTrimSize); + getBasicOp(); + GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePlaneFace(theFace, theTrimSize); + endService( " GEOM_Superv_i::MakePlaneFace" ); + return anObj; } //============================================================================= @@ -453,9 +655,28 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeMarker CORBA::Double theXDX, CORBA::Double theXDY, CORBA::Double theXDZ, CORBA::Double theYDX, CORBA::Double theYDY, CORBA::Double theYDZ) { + beginService( " GEOM_Superv_i::MakeMarker" ); MESSAGE("GEOM_Superv_i::MakeMarker"); - if (CORBA::is_nil(myBasicOp)) getBasicOp(); - return myBasicOp->MakeMarker(theOX, theOY, theOZ, theXDX, theXDY, theXDZ, theYDX, theYDY, theYDZ); + getBasicOp(); + GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeMarker(theOX, theOY, theOZ, theXDX, theXDY, theXDZ, theYDX, theYDY, theYDZ); + endService( " GEOM_Superv_i::MakeMarker" ); + return anObj; +} + +//============================================================================= +// MakeTangentPlaneOnFace: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeTangentPlaneOnFace (GEOM::GEOM_Object_ptr theFace, + CORBA::Double theParameterU, + CORBA::Double theParameterV, + CORBA::Double theTrimSize) +{ + beginService( " GEOM_Superv_i::MakeTangentPlaneOnFace" ); + MESSAGE("GEOM_Superv_i::MakeTangentPlaneOnFace"); + getBasicOp(); + GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeTangentPlaneOnFace(theFace, theParameterU,theParameterV,theTrimSize); + endService( " GEOM_Superv_i::MakeTangentPlaneOnFace" ); + return anObj; } //================= Primitives Construction : 3DPrimOperations ================ @@ -469,11 +690,14 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeBox (CORBA::Double theX1, CORBA::Double theY2, CORBA::Double theZ2) { + beginService( " GEOM_Superv_i::MakeBox" ); MESSAGE("GEOM_Superv_i::MakeBox"); - if (CORBA::is_nil(myBasicOp)) getBasicOp(); - if (CORBA::is_nil(my3DPrimOp)) get3DPrimOp(); - return my3DPrimOp->MakeBoxTwoPnt(myBasicOp->MakePointXYZ(theX1, theY1, theZ1), - myBasicOp->MakePointXYZ(theX2, theY2, theZ2)); + getBasicOp(); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeBoxTwoPnt(myBasicOp->MakePointXYZ(theX1, theY1, theZ1), + myBasicOp->MakePointXYZ(theX2, theY2, theZ2)); + endService( " GEOM_Superv_i::MakeBox" ); + return anObj; } //============================================================================= @@ -483,9 +707,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeBoxDXDYDZ (CORBA::Double theDX, CORBA::Double theDY, CORBA::Double theDZ) { + beginService( " GEOM_Superv_i::MakeBoxDXDYDZ" ); MESSAGE("GEOM_Superv_i::MakeBoxDXDYDZ"); - if (CORBA::is_nil(my3DPrimOp)) get3DPrimOp(); - return my3DPrimOp->MakeBoxDXDYDZ(theDX, theDY, theDZ); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeBoxDXDYDZ(theDX, theDY, theDZ); + endService( " GEOM_Superv_i::MakeBoxDXDYDZ" ); + return anObj; } //============================================================================= @@ -494,9 +721,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeBoxDXDYDZ (CORBA::Double theDX, GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeBoxTwoPnt (GEOM::GEOM_Object_ptr thePnt1, GEOM::GEOM_Object_ptr thePnt2) { + beginService( " GEOM_Superv_i::MakeBoxTwoPnt" ); MESSAGE("GEOM_Superv_i::MakeBoxTwoPnt"); - if (CORBA::is_nil(my3DPrimOp)) get3DPrimOp(); - return my3DPrimOp->MakeBoxTwoPnt(thePnt1, thePnt2); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeBoxTwoPnt(thePnt1, thePnt2); + endService( " GEOM_Superv_i::MakeBoxTwoPnt" ); + return anObj; } //============================================================================= @@ -507,9 +737,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCylinderPntVecRH (GEOM::GEOM_Object_ptr CORBA::Double theRadius, CORBA::Double theHeight) { + beginService( " GEOM_Superv_i::MakeCylinderPntVecRH" ); MESSAGE("GEOM_Superv_i::MakeCylinderPntVecRH"); - if (CORBA::is_nil(my3DPrimOp)) get3DPrimOp(); - return my3DPrimOp->MakeCylinderPntVecRH(thePnt, theAxis, theRadius, theHeight); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeCylinderPntVecRH(thePnt, theAxis, theRadius, theHeight); + endService( " GEOM_Superv_i::MakeCylinderPntVecRH" ); + return anObj; } //============================================================================= @@ -518,9 +751,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCylinderPntVecRH (GEOM::GEOM_Object_ptr GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCylinderRH (CORBA::Double theR, CORBA::Double theH) { + beginService( " GEOM_Superv_i::MakeCylinderRH" ); MESSAGE("GEOM_Superv_i::MakeCylinderRH"); - if (CORBA::is_nil(my3DPrimOp)) get3DPrimOp(); - return my3DPrimOp->MakeCylinderRH(theR, theH); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeCylinderRH(theR, theH); + endService( " GEOM_Superv_i::MakeCylinderRH" ); + return anObj; } //============================================================================= @@ -531,10 +767,13 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSphere (CORBA::Double theX, CORBA::Double theZ, CORBA::Double theRadius) { + beginService( " GEOM_Superv_i::MakeSphepe" ); MESSAGE("GEOM_Superv_i::MakeSphepe"); - if (CORBA::is_nil(myBasicOp)) getBasicOp(); - if (CORBA::is_nil(my3DPrimOp)) get3DPrimOp(); - return my3DPrimOp->MakeSpherePntR(myBasicOp->MakePointXYZ(theX, theY, theZ), theRadius); + getBasicOp(); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeSpherePntR(myBasicOp->MakePointXYZ(theX, theY, theZ), theRadius); + endService( " GEOM_Superv_i::MakeSphepe" ); + return anObj; } //============================================================================= @@ -542,9 +781,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSphere (CORBA::Double theX, //============================================================================= GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSphereR (CORBA::Double theR) { + beginService( " GEOM_Superv_i::MakeSphereR" ); MESSAGE("GEOM_Superv_i::MakeSphereR"); - if (CORBA::is_nil(my3DPrimOp)) get3DPrimOp(); - return my3DPrimOp->MakeSphereR(theR); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeSphereR(theR); + endService( " GEOM_Superv_i::MakeSphereR" ); + return anObj; } //============================================================================= @@ -553,9 +795,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSphereR (CORBA::Double theR) GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSpherePntR (GEOM::GEOM_Object_ptr thePnt, CORBA::Double theR) { + beginService( " GEOM_Superv_i::MakeSpherePntR" ); MESSAGE("GEOM_Superv_i::MakeSpherePntR"); - if (CORBA::is_nil(my3DPrimOp)) get3DPrimOp(); - return my3DPrimOp->MakeSpherePntR(thePnt, theR); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeSpherePntR(thePnt, theR); + endService( " GEOM_Superv_i::MakeSpherePntR" ); + return anObj; } //============================================================================= @@ -566,9 +811,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeTorusPntVecRR (GEOM::GEOM_Object_ptr th CORBA::Double theRMajor, CORBA::Double theRMinor) { + beginService( " GEOM_Superv_i::MakeTorusPntVecRR" ); MESSAGE("GEOM_Superv_i::MakeTorusPntVecRR"); - if (CORBA::is_nil(my3DPrimOp)) get3DPrimOp(); - return my3DPrimOp->MakeTorusPntVecRR(thePnt, theVec, theRMajor, theRMinor); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeTorusPntVecRR(thePnt, theVec, theRMajor, theRMinor); + endService( " GEOM_Superv_i::MakeTorusPntVecRR" ); + return anObj; } //============================================================================= @@ -577,9 +825,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeTorusPntVecRR (GEOM::GEOM_Object_ptr th GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeTorusRR (CORBA::Double theRMajor, CORBA::Double theRMinor) { + beginService( " GEOM_Superv_i::MakeTorusRR" ); MESSAGE("GEOM_Superv_i::MakeTorusRR"); - if (CORBA::is_nil(my3DPrimOp)) get3DPrimOp(); - return my3DPrimOp->MakeTorusRR(theRMajor, theRMinor); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeTorusRR(theRMajor, theRMinor); + endService( " GEOM_Superv_i::MakeTorusRR" ); + return anObj; } //============================================================================= @@ -591,9 +842,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeConePntVecR1R2H (GEOM::GEOM_Object_ptr CORBA::Double theR2, CORBA::Double theHeight) { + beginService( " GEOM_Superv_i::MakeConePntVecR1R2H" ); MESSAGE("GEOM_Superv_i::MakeConePntVecR1R2H"); - if (CORBA::is_nil(my3DPrimOp)) get3DPrimOp(); - return my3DPrimOp->MakeConePntVecR1R2H(thePnt, theAxis, theR1, theR2, theHeight); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeConePntVecR1R2H(thePnt, theAxis, theR1, theR2, theHeight); + endService( " GEOM_Superv_i::MakeConePntVecR1R2H" ); + return anObj; } //============================================================================= @@ -603,9 +857,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeConeR1R2H (CORBA::Double theR1, CORBA::Double theR2, CORBA::Double theHeight) { + beginService( " GEOM_Superv_i::MakeConeR1R2H" ); MESSAGE("GEOM_Superv_i::MakeConeR1R2H"); - if (CORBA::is_nil(my3DPrimOp)) get3DPrimOp(); - return my3DPrimOp->MakeConeR1R2H(theR1, theR2, theHeight); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeConeR1R2H(theR1, theR2, theHeight); + endService( " GEOM_Superv_i::MakeConeR1R2H" ); + return anObj; } //============================================================================= @@ -615,9 +872,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismVecH (GEOM::GEOM_Object_ptr theBas GEOM::GEOM_Object_ptr theVec, CORBA::Double theH) { + beginService( " GEOM_Superv_i::MakePrismVecH" ); MESSAGE("GEOM_Superv_i::MakePrismVecH"); - if (CORBA::is_nil(my3DPrimOp)) get3DPrimOp(); - return my3DPrimOp->MakePrismVecH(theBase, theVec, theH); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePrismVecH(theBase, theVec, theH); + endService( " GEOM_Superv_i::MakePrismVecH" ); + return anObj; } @@ -628,9 +888,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismTwoPnt (GEOM::GEOM_Object_ptr theB GEOM::GEOM_Object_ptr thePoint1, GEOM::GEOM_Object_ptr thePoint2) { + beginService( " GEOM_Superv_i::MakePrismTwoPnt" ); MESSAGE("GEOM_Superv_i::MakePrismTwoPnt"); - if (CORBA::is_nil(my3DPrimOp)) get3DPrimOp(); - return my3DPrimOp->MakePrismTwoPnt(theBase, thePoint1, thePoint2); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePrismTwoPnt(theBase, thePoint1, thePoint2); + endService( " GEOM_Superv_i::MakePrismTwoPnt" ); + return anObj; } //============================================================================= @@ -639,9 +902,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismTwoPnt (GEOM::GEOM_Object_ptr theB GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePipe (GEOM::GEOM_Object_ptr theBase, GEOM::GEOM_Object_ptr thePath) { + beginService( " GEOM_Superv_i::MakePipe" ); MESSAGE("GEOM_Superv_i::MakePipe"); - if (CORBA::is_nil(my3DPrimOp)) get3DPrimOp(); - return my3DPrimOp->MakePipe(theBase, thePath); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePipe(theBase, thePath); + endService( " GEOM_Superv_i::MakePipe" ); + return anObj; } //============================================================================= @@ -651,9 +917,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeRevolutionAxisAngle (GEOM::GEOM_Object_ GEOM::GEOM_Object_ptr theAxis, CORBA::Double theAngle) { + beginService( " GEOM_Superv_i::MakeRevolutionAxisAngle" ); MESSAGE("GEOM_Superv_i::MakeRevolutionAxisAngle"); - if (CORBA::is_nil(my3DPrimOp)) get3DPrimOp(); - return my3DPrimOp->MakeRevolutionAxisAngle(theBase, theAxis, theAngle); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeRevolutionAxisAngle(theBase, theAxis, theAngle); + endService( " GEOM_Superv_i::MakeRevolutionAxisAngle" ); + return anObj; } //============================================================================= @@ -664,9 +933,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilling (GEOM::GEOM_Object_ptr theShape CORBA::Double theTol2D, CORBA::Double theTol3D, CORBA::Long theNbIter) { + beginService( " GEOM_Superv_i::MakeFilling" ); MESSAGE("GEOM_Superv_i::MakeFilling"); - if (CORBA::is_nil(my3DPrimOp)) get3DPrimOp(); - return my3DPrimOp->MakeFilling(theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeFilling(theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter); + endService( " GEOM_Superv_i::MakeFilling" ); + return anObj; } //============================= BooleanOperations ============================= @@ -677,39 +949,121 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeBoolean (GEOM::GEOM_Object_ptr theShape GEOM::GEOM_Object_ptr theShape2, CORBA::Long theOperation) { + beginService( " GEOM_Superv_i::MakeBoolean" ); // theOperation indicates the operation to be done: // 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section MESSAGE("GEOM_Superv_i::MakeBoolean"); - if (CORBA::is_nil(myBoolOp)) getBoolOp(); - return myBoolOp->MakeBoolean(theShape1, theShape2, theOperation); + getBoolOp(); + GEOM::GEOM_Object_ptr anObj = myBoolOp->MakeBoolean(theShape1, theShape2, theOperation); + endService( " GEOM_Superv_i::MakeBoolean" ); + return anObj; +} + +//============================================================================= +// MakeThruSections: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeThruSections(const GEOM::ListOfGO& theSeqSections, + CORBA::Boolean theModeSolid, + CORBA::Double thePreci, + CORBA::Boolean theRuled) +{ + beginService( " GEOM_Superv_i::MakeThruSections" ); + MESSAGE("GEOM_Superv_i::MakeThruSections"); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeThruSections(theSeqSections, theModeSolid,thePreci,theRuled); + endService( " GEOM_Superv_i::MakeThruSections" ); + return anObj; +} + +//============================================================================= +// MakePipe: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePipeWithDifferentSections + (const GEOM::ListOfGO& theBases, + const GEOM::ListOfGO& theLocations, + GEOM::GEOM_Object_ptr thePath, + CORBA::Boolean theWithContact, + CORBA::Boolean theWithCorrections) +{ + beginService( " GEOM_Superv_i::MakePipeWithDifferentSections" ); + MESSAGE("GEOM_Superv_i::MakePipeWithDifferentSections"); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePipeWithDifferentSections(theBases,theLocations, thePath,theWithContact,theWithCorrections); + endService( " GEOM_Superv_i::MakePipeWithDifferentSections" ); + return anObj; +} + + +//============================================================================= +// MakePipe: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePipeWithShellSections + (const GEOM::ListOfGO& theBases, + const GEOM::ListOfGO& theSubBases, + const GEOM::ListOfGO& theLocations, + GEOM::GEOM_Object_ptr thePath, + CORBA::Boolean theWithContact, + CORBA::Boolean theWithCorrections) +{ + beginService( " GEOM_Superv_i::MakePipeWithShellSections" ); + MESSAGE("GEOM_Superv_i::MakePipeWithShellSections"); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = + my3DPrimOp->MakePipeWithShellSections(theBases, theSubBases, + theLocations, thePath, + theWithContact, theWithCorrections); + endService( " GEOM_Superv_i::MakePipeWithShellSections" ); + return anObj; } + //============================================================================= // MakeFuse: //============================================================================= GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFuse (GEOM::GEOM_Object_ptr theShape1, GEOM::GEOM_Object_ptr theShape2) { + beginService( " GEOM_Superv_i::MakeFuse" ); MESSAGE("GEOM_Superv_i::MakeFuse"); - if (CORBA::is_nil(myBoolOp)) getBoolOp(); - return myBoolOp->MakeBoolean(theShape1, theShape2, 3); + getBoolOp(); + GEOM::GEOM_Object_ptr anObj = myBoolOp->MakeBoolean(theShape1, theShape2, 3); + endService( " GEOM_Superv_i::MakeFuse" ); + return anObj; } //============================================================================= // MakePartition: //============================================================================= -GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePartition (const GEOM::ListOfGO& theShapes, - const GEOM::ListOfGO& theTools, - const GEOM::ListOfGO& theKeepInside, - const GEOM::ListOfGO& theRemoveInside, - const CORBA::Short theLimit, - const CORBA::Boolean theRemoveWebs, - const GEOM::ListOfLong& theMaterials) +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePartition (GEOM::GEOM_List_ptr theShapes, + GEOM::GEOM_List_ptr theTools, + GEOM::GEOM_List_ptr theKeepInside, + GEOM::GEOM_List_ptr theRemoveInside, + CORBA::Short theLimit, + CORBA::Boolean theRemoveWebs, + GEOM::GEOM_List_ptr theMaterials) { + beginService( " GEOM_Superv_i::MakePartition" ); MESSAGE("GEOM_Superv_i::MakePartition"); - if (CORBA::is_nil(myBoolOp)) getBoolOp(); - return myBoolOp->MakePartition(theShapes, theTools, theKeepInside, theRemoveInside, - theLimit, theRemoveWebs, theMaterials); + GEOM_List_i* aListImplS = + dynamic_cast*>(GetServant(theShapes, myPOA).in()); + GEOM_List_i* aListImplT = + dynamic_cast*>(GetServant(theTools, myPOA).in()); + GEOM_List_i* aListImplKI = + dynamic_cast*>(GetServant(theKeepInside, myPOA).in()); + GEOM_List_i* aListImplRI = + dynamic_cast*>(GetServant(theRemoveInside, myPOA).in()); + GEOM_List_i* aListImplM = + dynamic_cast*>(GetServant(theMaterials, myPOA).in()); + if (aListImplS && aListImplT && aListImplKI && aListImplRI && aListImplM) { + getBoolOp(); + GEOM::GEOM_Object_ptr anObj = myBoolOp->MakePartition(aListImplS->GetList(), aListImplT->GetList(), + aListImplKI->GetList(), aListImplRI->GetList(), + theLimit, theRemoveWebs, aListImplM->GetList()); + endService( " GEOM_Superv_i::MakePartition" ); + return anObj; + } + endService( " GEOM_Superv_i::MakePartition" ); + return NULL; } //============================================================================= @@ -718,9 +1072,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePartition (const GEOM::ListOfGO& theS GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeHalfPartition (GEOM::GEOM_Object_ptr theShape, GEOM::GEOM_Object_ptr thePlane) { + beginService( " GEOM_Superv_i::MakeHalfPartition" ); MESSAGE("GEOM_Superv_i::MakeHalfPartition"); - if (CORBA::is_nil(myBoolOp)) getBoolOp(); - return myBoolOp->MakeHalfPartition(theShape, thePlane); + getBoolOp(); + GEOM::GEOM_Object_ptr anObj = myBoolOp->MakeHalfPartition(theShape, thePlane); + endService( " GEOM_Superv_i::MakeHalfPartition" ); + return anObj; } //============================== InsertOperations ============================= @@ -729,9 +1086,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeHalfPartition (GEOM::GEOM_Object_ptr th //============================================================================= GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCopy (GEOM::GEOM_Object_ptr theOriginal) { + beginService( " GEOM_Superv_i::MakeCopy" ); MESSAGE("GEOM_Superv_i::MakeCopy"); - if (CORBA::is_nil(myInsOp)) getInsOp(); - return myInsOp->MakeCopy(theOriginal); + getInsOp(); + GEOM::GEOM_Object_ptr anObj = myInsOp->MakeCopy(theOriginal); + endService( " GEOM_Superv_i::MakeCopy" ); + return anObj; } //============================================================================= @@ -741,9 +1101,11 @@ void GEOM_Superv_i::Export (GEOM::GEOM_Object_ptr theObject, const char* theFileName, const char* theFormatName) { + beginService( " GEOM_Superv_i::Export" ); MESSAGE("GEOM_Superv_i::Export"); - if (CORBA::is_nil(myInsOp)) getInsOp(); + getInsOp(); myInsOp->Export(theObject, theFileName, theFormatName); + endService( " GEOM_Superv_i::Export" ); } //============================================================================= @@ -752,9 +1114,12 @@ void GEOM_Superv_i::Export (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr GEOM_Superv_i::Import (const char* theFileName, const char* theFormatName) { + beginService( " GEOM_Superv_i::Import" ); MESSAGE("GEOM_Superv_i::Import"); - if (CORBA::is_nil(myInsOp)) getInsOp(); - return myInsOp->Import(theFileName, theFormatName); + getInsOp(); + GEOM::GEOM_Object_ptr anObj = myInsOp->Import(theFileName, theFormatName); + endService( " GEOM_Superv_i::Import" ); + return anObj; } //============================================================================= @@ -763,9 +1128,11 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::Import (const char* theFileName, void GEOM_Superv_i::ImportTranslators (GEOM::string_array_out theFormats, GEOM::string_array_out thePatterns) { + beginService( " GEOM_Superv_i::ImportTranslators" ); MESSAGE("GEOM_Superv_i::ImportTranslators"); - if (CORBA::is_nil(myInsOp)) getInsOp(); + getInsOp(); myInsOp->ImportTranslators(theFormats, thePatterns); + endService( " GEOM_Superv_i::ImportTranslators" ); } //============================================================================= @@ -774,9 +1141,11 @@ void GEOM_Superv_i::ImportTranslators (GEOM::string_array_out theFormats, void GEOM_Superv_i::ExportTranslators (GEOM::string_array_out theFormats, GEOM::string_array_out thePatterns) { + beginService( " GEOM_Superv_i::ExportTranslators" ); MESSAGE("GEOM_Superv_i::ExportTranslators"); - if (CORBA::is_nil(myInsOp)) getInsOp(); + getInsOp(); myInsOp->ExportTranslators(theFormats, thePatterns); + endService( " GEOM_Superv_i::ExportTranslators" ); } //============================= TransformOperations =========================== @@ -787,9 +1156,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateTwoPoints (GEOM::GEOM_Object_ptr t GEOM::GEOM_Object_ptr thePoint1, GEOM::GEOM_Object_ptr thePoint2) { + beginService( " GEOM_Superv_i::TranslateTwoPoints" ); MESSAGE("GEOM_Superv_i::TranslateTwoPoints"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->TranslateTwoPoints(theObject, thePoint1, thePoint2); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateTwoPoints(theObject, thePoint1, thePoint2); + endService( " GEOM_Superv_i::TranslateTwoPoints" ); + return anObj; } //============================================================================= @@ -799,9 +1171,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateTwoPointsCopy (GEOM::GEOM_Object_p GEOM::GEOM_Object_ptr thePoint1, GEOM::GEOM_Object_ptr thePoint2) { + beginService( " GEOM_Superv_i::TranslateTwoPointsCopy" ); MESSAGE("GEOM_Superv_i::TranslateTwoPointsCopy"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->TranslateTwoPointsCopy(theObject, thePoint1, thePoint2); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateTwoPointsCopy(theObject, thePoint1, thePoint2); + endService( " GEOM_Superv_i::TranslateTwoPointsCopy" ); + return anObj; } //============================================================================= @@ -812,9 +1187,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateDXDYDZ (GEOM::GEOM_Object_ptr theO CORBA::Double theDY, CORBA::Double theDZ) { + beginService( " GEOM_Superv_i::TranslateDXDYDZ" ); MESSAGE("GEOM_Superv_i::TranslateDXDYDZ"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->TranslateDXDYDZ(theObject, theDX, theDY, theDZ); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateDXDYDZ(theObject, theDX, theDY, theDZ); + endService( " GEOM_Superv_i::TranslateDXDYDZ" ); + return anObj; } //============================================================================= @@ -825,9 +1203,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateDXDYDZCopy (GEOM::GEOM_Object_ptr CORBA::Double theDY, CORBA::Double theDZ) { + beginService( " GEOM_Superv_i::TranslateDXDYDZCopy" ); MESSAGE("GEOM_Superv_i::TranslateDXDYDZCopy"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ); + endService( " GEOM_Superv_i::TranslateDXDYDZCopy" ); + return anObj; } //============================================================================= @@ -836,9 +1217,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateDXDYDZCopy (GEOM::GEOM_Object_ptr GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateVector (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr theVector) { + beginService( " GEOM_Superv_i::TranslateVector" ); MESSAGE("GEOM_Superv_i::TranslateVector"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->TranslateVector(theObject, theVector); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateVector(theObject, theVector); + endService( " GEOM_Superv_i::TranslateVector" ); + return anObj; } //============================================================================= @@ -847,9 +1231,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateVector (GEOM::GEOM_Object_ptr theO GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateVectorCopy (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr theVector) { + beginService( " GEOM_Superv_i::TranslateVectorCopy" ); MESSAGE("GEOM_Superv_i::TranslateVectorCopy"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->TranslateVectorCopy(theObject, theVector); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateVectorCopy(theObject, theVector); + endService( " GEOM_Superv_i::TranslateVectorCopy" ); + return anObj; } //============================================================================= @@ -860,9 +1247,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MultiTranslate1D (GEOM::GEOM_Object_ptr the CORBA::Double theStep, CORBA::Long theNbTimes) { + beginService( " GEOM_Superv_i::MultiTranslate1D" ); MESSAGE("GEOM_Superv_i::MultiTranslate1D"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->MultiTranslate1D(theObject, theVector, theStep, theNbTimes); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->MultiTranslate1D(theObject, theVector, theStep, theNbTimes); + endService( " GEOM_Superv_i::MultiTranslate1D" ); + return anObj; } //============================================================================= @@ -876,10 +1266,13 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MultiTranslate2D (GEOM::GEOM_Object_ptr the CORBA::Double theStep2, CORBA::Long theNbTimes2) { + beginService( " GEOM_Superv_i::MultiTranslate2D" ); MESSAGE("GEOM_Superv_i::MultiTranslate2D"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->MultiTranslate2D(theObject, theVector1, theStep1, theNbTimes1, - theVector2, theStep2, theNbTimes2); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->MultiTranslate2D(theObject, theVector1, theStep1, theNbTimes1, + theVector2, theStep2, theNbTimes2); + endService( " GEOM_Superv_i::MultiTranslate2D" ); + return anObj; } //============================================================================= @@ -889,9 +1282,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::Rotate (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr theAxis, CORBA::Double theAngle) { + beginService( " GEOM_Superv_i::Rotate" ); MESSAGE("GEOM_Superv_i::Rotate"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->Rotate(theObject, theAxis, theAngle); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->Rotate(theObject, theAxis, theAngle); + endService( " GEOM_Superv_i::Rotate" ); + return anObj; } //============================================================================= @@ -901,9 +1297,43 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::RotateCopy (GEOM::GEOM_Object_ptr theObject GEOM::GEOM_Object_ptr theAxis, CORBA::Double theAngle) { + beginService( " GEOM_Superv_i::RotateCopy" ); MESSAGE("GEOM_Superv_i::RotateCopy"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->RotateCopy(theObject, theAxis, theAngle); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->RotateCopy(theObject, theAxis, theAngle); + endService( " GEOM_Superv_i::RotateCopy" ); + return anObj; +} +//============================================================================= +// RotateThreePoints: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::RotateThreePoints (GEOM::GEOM_Object_ptr theObject, + GEOM::GEOM_Object_ptr theCentPoint, + GEOM::GEOM_Object_ptr thePoint1, + GEOM::GEOM_Object_ptr thePoint2) +{ + beginService( " GEOM_Superv_i::RotateThreePoints" ); + MESSAGE("GEOM_Superv_i::RotateThreePoints"); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->RotateThreePoints(theObject, theCentPoint, thePoint1, thePoint2); + endService( " GEOM_Superv_i::RotateThreePoints" ); + return anObj; +} + +//============================================================================= +// RotateThreePointsCopy: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::RotateThreePointsCopy (GEOM::GEOM_Object_ptr theObject, + GEOM::GEOM_Object_ptr theCentPoint, + GEOM::GEOM_Object_ptr thePoint1, + GEOM::GEOM_Object_ptr thePoint2) +{ + beginService( " GEOM_Superv_i::RotateThreePointsCopy" ); + MESSAGE("GEOM_Superv_i::RotateThreePointsCopy"); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2); + endService( " GEOM_Superv_i::RotateThreePointsCopy" ); + return anObj; } //============================================================================= @@ -913,9 +1343,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MultiRotate1D (GEOM::GEOM_Object_ptr theObj GEOM::GEOM_Object_ptr theAxis, CORBA::Long theNbTimes) { + beginService( " GEOM_Superv_i::MultiRotate1D" ); MESSAGE("GEOM_Superv_i::MultiRotate1D"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->MultiRotate1D(theObject, theAxis, theNbTimes); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->MultiRotate1D(theObject, theAxis, theNbTimes); + endService( " GEOM_Superv_i::MultiRotate1D" ); + return anObj; } //============================================================================= @@ -928,9 +1361,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MultiRotate2D (GEOM::GEOM_Object_ptr theObj CORBA::Double theStep, CORBA::Long theNbTimes2) { + beginService( " GEOM_Superv_i::MultiRotate2D" ); MESSAGE("GEOM_Superv_i::MultiRotate2D"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->MultiRotate2D(theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->MultiRotate2D(theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2); + endService( " GEOM_Superv_i::MultiRotate2D" ); + return anObj; } //============================================================================= @@ -939,9 +1375,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MultiRotate2D (GEOM::GEOM_Object_ptr theObj GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPlane (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr thePlane) { + beginService( " GEOM_Superv_i::MirrorPlane" ); MESSAGE("GEOM_Superv_i::MirrorPlane"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->MirrorPlane(theObject, thePlane); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->MirrorPlane(theObject, thePlane); + endService( " GEOM_Superv_i::MirrorPlane" ); + return anObj; } //============================================================================= @@ -950,9 +1389,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPlane (GEOM::GEOM_Object_ptr theObjec GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPlaneCopy (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr thePlane) { + beginService( " GEOM_Superv_i::MirrorPlaneCopy" ); MESSAGE("GEOM_Superv_i::MirrorPlaneCopy"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->MirrorPlaneCopy(theObject, thePlane); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->MirrorPlaneCopy(theObject, thePlane); + endService( " GEOM_Superv_i::MirrorPlaneCopy" ); + return anObj; } //============================================================================= @@ -961,9 +1403,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPlaneCopy (GEOM::GEOM_Object_ptr theO GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorAxis (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr theAxis) { + beginService( " GEOM_Superv_i::MirrorAxis" ); MESSAGE("GEOM_Superv_i::MirrorAxis"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->MirrorAxis(theObject, theAxis); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->MirrorAxis(theObject, theAxis); + endService( " GEOM_Superv_i::MirrorAxis" ); + return anObj; } //============================================================================= @@ -972,9 +1417,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorAxis (GEOM::GEOM_Object_ptr theObject GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorAxisCopy (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr theAxis) { + beginService( " GEOM_Superv_i::MirrorAxisCopy" ); MESSAGE("GEOM_Superv_i::MirrorAxisCopy"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->MirrorAxisCopy(theObject, theAxis); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->MirrorAxisCopy(theObject, theAxis); + endService( " GEOM_Superv_i::MirrorAxisCopy" ); + return anObj; } //============================================================================= @@ -983,9 +1431,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorAxisCopy (GEOM::GEOM_Object_ptr theOb GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPoint (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr thePoint) { + beginService( " GEOM_Superv_i::MirrorPoint" ); MESSAGE("GEOM_Superv_i::MirrorPoint"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->MirrorPoint(theObject, thePoint); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->MirrorPoint(theObject, thePoint); + endService( " GEOM_Superv_i::MirrorPoint" ); + return anObj; } //============================================================================= @@ -994,9 +1445,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPoint (GEOM::GEOM_Object_ptr theObjec GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPointCopy (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr thePoint) { + beginService( " GEOM_Superv_i::MirrorPoint" ); MESSAGE("GEOM_Superv_i::MirrorPointCopy"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->MirrorPointCopy(theObject, thePoint); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->MirrorPointCopy(theObject, thePoint); + endService( " GEOM_Superv_i::MirrorPoint" ); + return anObj; } //============================================================================= @@ -1005,9 +1459,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MirrorPointCopy (GEOM::GEOM_Object_ptr theO GEOM::GEOM_Object_ptr GEOM_Superv_i::OffsetShape (GEOM::GEOM_Object_ptr theObject, CORBA::Double theOffset) { + beginService( " GEOM_Superv_i::OffsetShape" ); MESSAGE("GEOM_Superv_i::OffsetShape"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->OffsetShape(theObject, theOffset); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->OffsetShape(theObject, theOffset); + endService( " GEOM_Superv_i::OffsetShape" ); + return anObj; } //============================================================================= @@ -1016,9 +1473,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::OffsetShape (GEOM::GEOM_Object_ptr theObjec GEOM::GEOM_Object_ptr GEOM_Superv_i::OffsetShapeCopy (GEOM::GEOM_Object_ptr theObject, CORBA::Double theOffset) { + beginService( " GEOM_Superv_i::OffsetShapeCopy" ); MESSAGE("GEOM_Superv_i::OffsetShapeCopy"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->OffsetShapeCopy(theObject, theOffset); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->OffsetShapeCopy(theObject, theOffset); + endService( " GEOM_Superv_i::OffsetShapeCopy" ); + return anObj; } //============================================================================= @@ -1028,9 +1488,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::ScaleShape (GEOM::GEOM_Object_ptr theObject GEOM::GEOM_Object_ptr thePoint, CORBA::Double theFactor) { + beginService( " GEOM_Superv_i::ScaleShape" ); MESSAGE("GEOM_Superv_i::ScaleShape"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->ScaleShape(theObject, thePoint, theFactor); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->ScaleShape(theObject, thePoint, theFactor); + endService( " GEOM_Superv_i::ScaleShape" ); + return anObj; } //============================================================================= @@ -1040,9 +1503,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::ScaleShapeCopy (GEOM::GEOM_Object_ptr theOb GEOM::GEOM_Object_ptr thePoint, CORBA::Double theFactor) { + beginService( " GEOM_Superv_i::ScaleShapeCopy" ); MESSAGE("GEOM_Superv_i::ScaleShapeCopy"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->ScaleShapeCopy(theObject, thePoint, theFactor); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->ScaleShapeCopy(theObject, thePoint, theFactor); + endService( " GEOM_Superv_i::ScaleShapeCopy" ); + return anObj; } //============================================================================= @@ -1052,9 +1518,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::PositionShape (GEOM::GEOM_Object_ptr theObj GEOM::GEOM_Object_ptr theStartLCS, GEOM::GEOM_Object_ptr theEndLCS) { + beginService( " GEOM_Superv_i::PositionShape" ); MESSAGE("GEOM_Superv_i::PositionShape"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->PositionShape(theObject, theStartLCS, theEndLCS); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->PositionShape(theObject, theStartLCS, theEndLCS); + endService( " GEOM_Superv_i::PositionShape" ); + return anObj; } //============================================================================= @@ -1064,9 +1533,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::PositionShapeCopy (GEOM::GEOM_Object_ptr th GEOM::GEOM_Object_ptr theStartLCS, GEOM::GEOM_Object_ptr theEndLCS) { + beginService( " GEOM_Superv_i::PositionShapeCopy" ); MESSAGE("GEOM_Superv_i::PositionShapeCopy"); - if (CORBA::is_nil(myTransfOp)) getTransfOp(); - return myTransfOp->PositionShapeCopy(theObject, theStartLCS, theEndLCS); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->PositionShapeCopy(theObject, theStartLCS, theEndLCS); + endService( " GEOM_Superv_i::PositionShapeCopy" ); + return anObj; } //=============================== ShapesOperations ============================ @@ -1076,19 +1548,30 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::PositionShapeCopy (GEOM::GEOM_Object_ptr th GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeEdge (GEOM::GEOM_Object_ptr thePnt1, GEOM::GEOM_Object_ptr thePnt2) { + beginService( " GEOM_Superv_i::MakeEdge" ); MESSAGE("GEOM_Superv_i::MakeEdge"); - if (CORBA::is_nil(myShapesOp)) getShapesOp(); - return myShapesOp->MakeEdge(thePnt1, thePnt2); + getShapesOp(); + GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeEdge(thePnt1, thePnt2); + endService( " GEOM_Superv_i::MakeEdge" ); + return anObj; } //============================================================================= // MakeWire: //============================================================================= -GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeWire (const GEOM::ListOfGO& theEdgesAndWires) +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeWire (GEOM::GEOM_List_ptr theEdgesAndWires) { + beginService( " GEOM_Superv_i::MakeWire" ); MESSAGE("GEOM_Superv_i::MakeWire"); - if (CORBA::is_nil(myShapesOp)) getShapesOp(); - return myShapesOp->MakeWire(theEdgesAndWires); + if (GEOM_List_i* aListImplEW = + dynamic_cast*>(GetServant(theEdgesAndWires, myPOA).in())) { + getShapesOp(); + GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeWire(aListImplEW->GetList()); + endService( " GEOM_Superv_i::MakeWire" ); + return anObj; + } + endService( " GEOM_Superv_i::MakeWire" ); + return NULL; } //============================================================================= @@ -1097,30 +1580,49 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeWire (const GEOM::ListOfGO& theEdgesAnd GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFace (GEOM::GEOM_Object_ptr theWire, CORBA::Boolean isPlanarWanted) { + beginService( " GEOM_Superv_i::MakeFace" ); MESSAGE("GEOM_Superv_i::MakeFace"); - if (CORBA::is_nil(myShapesOp)) getShapesOp(); - return myShapesOp->MakeFace(theWire, isPlanarWanted); + getShapesOp(); + GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeFace(theWire, isPlanarWanted); + endService( " GEOM_Superv_i::MakeFace" ); + return anObj; } //============================================================================= // MakeFaceWires: //============================================================================= -GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFaceWires (const GEOM::ListOfGO& theWires, +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFaceWires (GEOM::GEOM_List_ptr theWires, CORBA::Boolean isPlanarWanted) { + beginService( " GEOM_Superv_i::MakeFaceWires" ); MESSAGE("GEOM_Superv_i::MakeFaceWires"); - if (CORBA::is_nil(myShapesOp)) getShapesOp(); - return myShapesOp->MakeFaceWires(theWires, isPlanarWanted); + if (GEOM_List_i* aListImplW = + dynamic_cast*>(GetServant(theWires, myPOA).in())) { + getShapesOp(); + GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeFaceWires(aListImplW->GetList(), isPlanarWanted); + endService( " GEOM_Superv_i::MakeFaceWires" ); + return anObj; + } + endService( " GEOM_Superv_i::MakeFaceWires" ); + return NULL; } //============================================================================= // MakeShell: //============================================================================= -GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeShell (const GEOM::ListOfGO& theFacesAndShells) +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeShell (GEOM::GEOM_List_ptr theFacesAndShells) { + beginService( " GEOM_Superv_i::MakeShell" ); MESSAGE("GEOM_Superv_i::MakeShell"); - if (CORBA::is_nil(myShapesOp)) getShapesOp(); - return myShapesOp->MakeShell(theFacesAndShells); + if (GEOM_List_i* aListImplFS = + dynamic_cast*>(GetServant(theFacesAndShells, myPOA).in())) { + getShapesOp(); + GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeShell(aListImplFS->GetList()); + endService( " GEOM_Superv_i::MakeShell" ); + return anObj; + } + endService( " GEOM_Superv_i::MakeShell" ); + return NULL; } //============================================================================= @@ -1128,52 +1630,111 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeShell (const GEOM::ListOfGO& theFacesAn //============================================================================= GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSolidShell (GEOM::GEOM_Object_ptr theShell) { + beginService( " GEOM_Superv_i::MakeSolidShell" ); MESSAGE("GEOM_Superv_i::MakeSolidShell"); - if (CORBA::is_nil(myShapesOp)) getShapesOp(); - return myShapesOp->MakeSolidShell(theShell); + getShapesOp(); + GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeSolidShell(theShell); + endService( " GEOM_Superv_i::MakeSolidShell" ); + return anObj; } //============================================================================= // MakeSolidShells: //============================================================================= -GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSolidShells (const GEOM::ListOfGO& theShells) +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSolidShells (GEOM::GEOM_List_ptr theShells) { + beginService( " GEOM_Superv_i::MakeSolidShells" ); MESSAGE("GEOM_Superv_i::MakeSolidShells"); - if (CORBA::is_nil(myShapesOp)) getShapesOp(); - return myShapesOp->MakeSolidShells(theShells); + if (GEOM_List_i* aListImplS = + dynamic_cast*>(GetServant(theShells, myPOA).in())) { + getShapesOp(); + GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeSolidShells(aListImplS->GetList()); + endService( " GEOM_Superv_i::MakeSolidShells" ); + return anObj; + } + endService( " GEOM_Superv_i::MakeSolidShells" ); + return NULL; } //============================================================================= // MakeCompound: //============================================================================= -GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCompound (const GEOM::ListOfGO& theShapes) +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCompound (GEOM::GEOM_List_ptr theShapes) { + beginService( " GEOM_Superv_i::MakeCompound" ); MESSAGE("GEOM_Superv_i::MakeCompound"); - if (CORBA::is_nil(myShapesOp)) getShapesOp(); - return myShapesOp->MakeCompound(theShapes); + if (GEOM_List_i* aListImpl = + dynamic_cast*>(GetServant(theShapes, myPOA).in())) { + getShapesOp(); + GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeCompound(aListImpl->GetList()); + endService( " GEOM_Superv_i::MakeCompound" ); + return anObj; + } + endService( " GEOM_Superv_i::MakeCompound" ); + return NULL; } //============================================================================= // MakeGlueFaces: //============================================================================= GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeGlueFaces (GEOM::GEOM_Object_ptr theShape, - const CORBA::Double theTolerance) + CORBA::Double theTolerance) { + beginService( " GEOM_Superv_i::MakeGlueFaces" ); MESSAGE("GEOM_Superv_i::MakeGlueFaces"); - if (CORBA::is_nil(myShapesOp)) getShapesOp(); - return myShapesOp->MakeGlueFaces(theShape, theTolerance); + getShapesOp(); + GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeGlueFaces(theShape, theTolerance); + endService( " GEOM_Superv_i::MakeGlueFaces" ); + return anObj; +} + +//============================================================================= +// GetGlueFaces: +//============================================================================= +GEOM::GEOM_List_ptr GEOM_Superv_i::GetGlueFaces (GEOM::GEOM_Object_ptr theShape, + CORBA::Double theTolerance) +{ + beginService( " GEOM_Superv_i::GetGlueFaces" ); + MESSAGE("GEOM_Superv_i::GetGlueFaces"); + getShapesOp(); + GEOM::ListOfGO* aList = myShapesOp->GetGlueFaces(theShape, theTolerance); + GEOM_List_i* aListPtr = new GEOM_List_i(*(aList)); + MESSAGE(" List of "<GetList().length()<<" element(s)"); + endService( " GEOM_Superv_i::GetGlueFaces" ); + return aListPtr->_this(); +} + +//============================================================================= +// MakeGlueFacesByList: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeGlueFacesByList (GEOM::GEOM_Object_ptr theShape, + CORBA::Double theTolerance, + const GEOM::ListOfGO& theFaces) +{ + beginService( " GEOM_Superv_i::MakeGlueFacesByList" ); + MESSAGE("GEOM_Superv_i::MakeGlueFacesByList"); + getShapesOp(); + GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeGlueFacesByList(theShape, theTolerance, theFaces); + endService( " GEOM_Superv_i::MakeGlueFacesByList" ); + return anObj; } //============================================================================= // MakeExplode: //============================================================================= -GEOM::ListOfGO* GEOM_Superv_i::MakeExplode (GEOM::GEOM_Object_ptr theShape, - const CORBA::Long theShapeType, - const CORBA::Boolean isSorted) +GEOM::GEOM_List_ptr GEOM_Superv_i::MakeExplode (GEOM::GEOM_Object_ptr theShape, + CORBA::Long theShapeType, + CORBA::Boolean isSorted) { + beginService( " GEOM_Superv_i::MakeExplode" ); MESSAGE("GEOM_Superv_i::MakeExplode"); - if (CORBA::is_nil(myShapesOp)) getShapesOp(); - return myShapesOp->MakeExplode(theShape, theShapeType, isSorted); + getShapesOp(); + + GEOM::ListOfGO* aList = myShapesOp->MakeExplode(theShape, theShapeType, isSorted); + GEOM_List_i* aListPtr = new GEOM_List_i(*(aList)); + MESSAGE(" List of "<GetList().length()<<" element(s)"); + endService( " GEOM_Superv_i::MakeExplode" ); + return aListPtr->_this(); } //============================================================================= @@ -1181,9 +1742,12 @@ GEOM::ListOfGO* GEOM_Superv_i::MakeExplode (GEOM::GEOM_Object_ptr theShape, //============================================================================= CORBA::Long GEOM_Superv_i::NumberOfFaces (GEOM::GEOM_Object_ptr theShape) { + beginService( " GEOM_Superv_i::NumberOfFaces" ); MESSAGE("GEOM_Superv_i::NumberOfFaces"); - if (CORBA::is_nil(myShapesOp)) getShapesOp(); - return myShapesOp->NumberOfFaces(theShape); + getShapesOp(); + CORBA::Long aRes = myShapesOp->NumberOfFaces(theShape); + endService( " GEOM_Superv_i::NumberOfFaces" ); + return aRes; } //============================================================================= @@ -1191,9 +1755,12 @@ CORBA::Long GEOM_Superv_i::NumberOfFaces (GEOM::GEOM_Object_ptr theShape) //============================================================================= CORBA::Long GEOM_Superv_i::NumberOfEdges (GEOM::GEOM_Object_ptr theShape) { + beginService( " GEOM_Superv_i::NumberOfEdges" ); MESSAGE("GEOM_Superv_i::NumberOfEdges"); - if (CORBA::is_nil(myShapesOp)) getShapesOp(); - return myShapesOp->NumberOfEdges(theShape); + getShapesOp(); + CORBA::Long aRes = myShapesOp->NumberOfEdges(theShape); + endService( " GEOM_Superv_i::NumberOfEdges" ); + return aRes; } //============================================================================= @@ -1201,9 +1768,12 @@ CORBA::Long GEOM_Superv_i::NumberOfEdges (GEOM::GEOM_Object_ptr theShape) //============================================================================= GEOM::GEOM_Object_ptr GEOM_Superv_i::ChangeOrientation (GEOM::GEOM_Object_ptr theShape) { + beginService( " GEOM_Superv_i::ChangeOrientation" ); MESSAGE("GEOM_Superv_i::ChangeOrientation"); - if (CORBA::is_nil(myShapesOp)) getShapesOp(); - return myShapesOp->ChangeOrientation(theShape); + getShapesOp(); + GEOM::GEOM_Object_ptr anObj = myShapesOp->ChangeOrientation(theShape); + endService( " GEOM_Superv_i::ChangeOrientation" ); + return anObj; } @@ -1216,9 +1786,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeQuad4Vertices (GEOM::GEOM_Object_ptr th GEOM::GEOM_Object_ptr thePnt3, GEOM::GEOM_Object_ptr thePnt4) { + beginService( " GEOM_Superv_i::MakeQuad4Vertices" ); MESSAGE("GEOM_Superv_i::MakeQuad4Vertices"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->MakeQuad4Vertices(thePnt1, thePnt2, thePnt3, thePnt4); + getBlocksOp(); + GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeQuad4Vertices(thePnt1, thePnt2, thePnt3, thePnt4); + endService( " GEOM_Superv_i::MakeQuad4Vertices" ); + return anObj; } //============================================================================= @@ -1229,9 +1802,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeQuad (GEOM::GEOM_Object_ptr theEdge1, GEOM::GEOM_Object_ptr theEdge3, GEOM::GEOM_Object_ptr theEdge4) { + beginService( " GEOM_Superv_i::MakeQuad" ); MESSAGE("GEOM_Superv_i::MakeQuad"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->MakeQuad(theEdge1, theEdge2, theEdge3, theEdge4); + getBlocksOp(); + GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeQuad(theEdge1, theEdge2, theEdge3, theEdge4); + endService( " GEOM_Superv_i::MakeQuad" ); + return anObj; } //============================================================================= @@ -1240,9 +1816,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeQuad (GEOM::GEOM_Object_ptr theEdge1, GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeQuad2Edges (GEOM::GEOM_Object_ptr theEdge1, GEOM::GEOM_Object_ptr theEdge2) { + beginService( " GEOM_Superv_i::MakeQuad2Edges" ); MESSAGE("GEOM_Superv_i::MakeQuad2Edges"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->MakeQuad2Edges(theEdge1, theEdge2); + getBlocksOp(); + GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeQuad2Edges(theEdge1, theEdge2); + endService( " GEOM_Superv_i::MakeQuad2Edges" ); + return anObj; } //============================================================================= @@ -1255,9 +1834,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeHexa (GEOM::GEOM_Object_ptr theFace1, GEOM::GEOM_Object_ptr theFace5, GEOM::GEOM_Object_ptr theFace6) { + beginService( " GEOM_Superv_i::MakeHexa" ); MESSAGE("GEOM_Superv_i::MakeHexa"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->MakeHexa(theFace1, theFace2, theFace3, theFace4, theFace5, theFace6); + getBlocksOp(); + GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeHexa(theFace1, theFace2, theFace3, theFace4, theFace5, theFace6); + endService( " GEOM_Superv_i::MakeHexa" ); + return anObj; } //============================================================================= @@ -1266,23 +1848,29 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeHexa (GEOM::GEOM_Object_ptr theFace1, GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeHexa2Faces (GEOM::GEOM_Object_ptr theFace1, GEOM::GEOM_Object_ptr theFace2) { + beginService( " GEOM_Superv_i::MakeHexa2Faces" ); MESSAGE("GEOM_Superv_i::MakeHexa2Faces"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->MakeHexa2Faces(theFace1, theFace2); + getBlocksOp(); + GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeHexa2Faces(theFace1, theFace2); + endService( " GEOM_Superv_i::MakeHexa2Faces" ); + return anObj; } //============================================================================= // GetPoint: //============================================================================= GEOM::GEOM_Object_ptr GEOM_Superv_i::GetPoint (GEOM::GEOM_Object_ptr theShape, - const CORBA::Double theX, - const CORBA::Double theY, - const CORBA::Double theZ, - const CORBA::Double theEpsilon) + CORBA::Double theX, + CORBA::Double theY, + CORBA::Double theZ, + CORBA::Double theEpsilon) { + beginService( " GEOM_Superv_i::GetPoint" ); MESSAGE("GEOM_Superv_i::GetPoint"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->GetPoint(theShape, theX, theY, theZ, theEpsilon); + getBlocksOp(); + GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetPoint(theShape, theX, theY, theZ, theEpsilon); + endService( " GEOM_Superv_i::GetPoint" ); + return anObj; } //============================================================================= @@ -1292,9 +1880,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::GetEdge (GEOM::GEOM_Object_ptr theShape, GEOM::GEOM_Object_ptr thePoint1, GEOM::GEOM_Object_ptr thePoint2) { + beginService( " GEOM_Superv_i::GetEdge" ); MESSAGE("GEOM_Superv_i::GetEdge"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->GetEdge(theShape, thePoint1, thePoint2); + getBlocksOp(); + GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetEdge(theShape, thePoint1, thePoint2); + endService( " GEOM_Superv_i::GetEdge" ); + return anObj; } //============================================================================= @@ -1303,9 +1894,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::GetEdge (GEOM::GEOM_Object_ptr theShape, GEOM::GEOM_Object_ptr GEOM_Superv_i::GetEdgeNearPoint (GEOM::GEOM_Object_ptr theShape, GEOM::GEOM_Object_ptr thePoint) { + beginService( " GEOM_Superv_i::GetEdgeNearPoint" ); MESSAGE("GEOM_Superv_i::GetEdgeNearPoint"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->GetEdgeNearPoint(theShape, thePoint); + getBlocksOp(); + GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetEdgeNearPoint(theShape, thePoint); + endService( " GEOM_Superv_i::GetEdgeNearPoint" ); + return anObj; } //============================================================================= @@ -1317,9 +1911,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::GetFaceByPoints (GEOM::GEOM_Object_ptr theS GEOM::GEOM_Object_ptr thePoint3, GEOM::GEOM_Object_ptr thePoint4) { + beginService( " GEOM_Superv_i::GetFaceByPoints" ); MESSAGE("GEOM_Superv_i::GetFaceByPoints"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->GetFaceByPoints(theShape, thePoint1, thePoint2, thePoint3, thePoint4); + getBlocksOp(); + GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetFaceByPoints(theShape, thePoint1, thePoint2, thePoint3, thePoint4); + endService( " GEOM_Superv_i::GetFaceByPoints" ); + return anObj; } //============================================================================= @@ -1329,9 +1926,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::GetFaceByEdges (GEOM::GEOM_Object_ptr theSh GEOM::GEOM_Object_ptr theEdge1, GEOM::GEOM_Object_ptr theEdge2) { + beginService( " GEOM_Superv_i::GetFaceByEdges" ); MESSAGE("GEOM_Superv_i::GetFaceByEdges"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->GetFaceByEdges(theShape, theEdge1, theEdge2); + getBlocksOp(); + GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetFaceByEdges(theShape, theEdge1, theEdge2); + endService( " GEOM_Superv_i::GetFaceByEdges" ); + return anObj; } //============================================================================= @@ -1340,9 +1940,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::GetFaceByEdges (GEOM::GEOM_Object_ptr theSh GEOM::GEOM_Object_ptr GEOM_Superv_i::GetOppositeFace (GEOM::GEOM_Object_ptr theBlock, GEOM::GEOM_Object_ptr theFace) { + beginService( " GEOM_Superv_i::GetOppositeFace" ); MESSAGE("GEOM_Superv_i::GetOppositeFace"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->GetOppositeFace(theBlock, theFace); + getBlocksOp(); + GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetOppositeFace(theBlock, theFace); + endService( " GEOM_Superv_i::GetOppositeFace" ); + return anObj; } //============================================================================= @@ -1351,9 +1954,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::GetOppositeFace (GEOM::GEOM_Object_ptr theB GEOM::GEOM_Object_ptr GEOM_Superv_i::GetFaceNearPoint (GEOM::GEOM_Object_ptr theShape, GEOM::GEOM_Object_ptr thePoint) { + beginService( " GEOM_Superv_i::GetFaceNearPoint" ); MESSAGE("GEOM_Superv_i::GetFaceNearPoint"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->GetFaceNearPoint(theShape, thePoint); + getBlocksOp(); + GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetFaceNearPoint(theShape, thePoint); + endService( " GEOM_Superv_i::GetFaceNearPoint" ); + return anObj; } //============================================================================= @@ -1362,22 +1968,28 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::GetFaceNearPoint (GEOM::GEOM_Object_ptr the GEOM::GEOM_Object_ptr GEOM_Superv_i::GetFaceByNormale (GEOM::GEOM_Object_ptr theBlock, GEOM::GEOM_Object_ptr theVector) { + beginService( " GEOM_Superv_i::GetFaceByNormale" ); MESSAGE("GEOM_Superv_i::GetFaceByNormale"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->GetFaceByNormale(theBlock, theVector); + getBlocksOp(); + GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetFaceByNormale(theBlock, theVector); + endService( " GEOM_Superv_i::GetFaceByNormale" ); + return anObj; } //============================================================================= // IsCompoundOfBlocks: //============================================================================= CORBA::Boolean GEOM_Superv_i::IsCompoundOfBlocks (GEOM::GEOM_Object_ptr theCompound, - const CORBA::Long theMinNbFaces, - const CORBA::Long theMaxNbFaces, + CORBA::Long theMinNbFaces, + CORBA::Long theMaxNbFaces, CORBA::Long& theNbBlocks) { + beginService( " GEOM_Superv_i::IsCompoundOfBlocks" ); MESSAGE("GEOM_Superv_i::IsCompoundOfBlocks"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->IsCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces, theNbBlocks); + getBlocksOp(); + CORBA::Boolean aRes = myBlocksOp->IsCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces, theNbBlocks); + endService( " GEOM_Superv_i::IsCompoundOfBlocks" ); + return aRes; } //============================================================================= @@ -1387,9 +1999,12 @@ CORBA::Boolean GEOM_Superv_i::CheckCompoundOfBlocks (GEOM::GEOM_Object_ptr theCompound, GEOM::GEOM_IBlocksOperations::BCErrors_out theErrors) { + beginService( " GEOM_Superv_i::CheckCompoundOfBlocks" ); MESSAGE("GEOM_Superv_i::CheckCompoundOfBlocks"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->CheckCompoundOfBlocks(theCompound, theErrors); + getBlocksOp(); + CORBA::Boolean aRes = myBlocksOp->CheckCompoundOfBlocks(theCompound, theErrors); + endService( " GEOM_Superv_i::CheckCompoundOfBlocks" ); + return aRes; } //============================================================================= @@ -1398,21 +2013,28 @@ CORBA::Boolean GEOM_Superv_i::CheckCompoundOfBlocks char* GEOM_Superv_i::PrintBCErrors (GEOM::GEOM_Object_ptr theCompound, const GEOM::GEOM_IBlocksOperations::BCErrors& theErrors) { + beginService( " GEOM_Superv_i::PrintBCErrors" ); MESSAGE("GEOM_Superv_i::PrintBCErrors"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->PrintBCErrors(theCompound, theErrors); + getBlocksOp(); + char* anErrors = myBlocksOp->PrintBCErrors(theCompound, theErrors); + endService( " GEOM_Superv_i::PrintBCErrors" ); + return anErrors; } //============================================================================= // ExplodeCompoundOfBlocks: //============================================================================= -GEOM::ListOfGO* GEOM_Superv_i::ExplodeCompoundOfBlocks (GEOM::GEOM_Object_ptr theCompound, - const CORBA::Long theMinNbFaces, - const CORBA::Long theMaxNbFaces) +GEOM::GEOM_List_ptr GEOM_Superv_i::ExplodeCompoundOfBlocks (GEOM::GEOM_Object_ptr theCompound, + CORBA::Long theMinNbFaces, + CORBA::Long theMaxNbFaces) { + beginService( " GEOM_Superv_i::ExplodeCompoundOfBlocks" ); MESSAGE("GEOM_Superv_i::ExplodeCompoundOfBlocks"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->ExplodeCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces); + getBlocksOp(); + GEOM::ListOfGO* aBlocks = myBlocksOp->ExplodeCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces); + GEOM_List_i* aListPtr = new GEOM_List_i(*(aBlocks)); + endService( " GEOM_Superv_i::ExplodeCompoundOfBlocks" ); + return aListPtr->_this(); } //============================================================================= @@ -1421,44 +2043,68 @@ GEOM::ListOfGO* GEOM_Superv_i::ExplodeCompoundOfBlocks (GEOM::GEOM_Object_ptr th GEOM::GEOM_Object_ptr GEOM_Superv_i::GetBlockNearPoint (GEOM::GEOM_Object_ptr theCompound, GEOM::GEOM_Object_ptr thePoint) { + beginService( " GEOM_Superv_i::GetBlockNearPoint" ); MESSAGE("GEOM_Superv_i::GetBlockNearPoint"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->GetBlockNearPoint(theCompound, thePoint); + getBlocksOp(); + GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetBlockNearPoint(theCompound, thePoint); + endService( " GEOM_Superv_i::GetBlockNearPoint" ); + return anObj; } //============================================================================= // GetBlockByParts: //============================================================================= GEOM::GEOM_Object_ptr GEOM_Superv_i::GetBlockByParts (GEOM::GEOM_Object_ptr theCompound, - const GEOM::ListOfGO& theParts) + GEOM::GEOM_List_ptr theParts) { + beginService( " GEOM_Superv_i::GetBlockByParts" ); MESSAGE("GEOM_Superv_i::GetBlockByParts"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->GetBlockByParts(theCompound, theParts); + if (GEOM_List_i* aListImplP = + dynamic_cast*>(GetServant(theParts, myPOA).in())) { + getBlocksOp(); + GEOM::GEOM_Object_ptr anObj = myBlocksOp->GetBlockByParts(theCompound, aListImplP->GetList()); + endService( " GEOM_Superv_i::GetBlockByParts" ); + return anObj; + } + endService( " GEOM_Superv_i::GetBlockByParts" ); + return NULL; } //============================================================================= // GetBlocksByParts: //============================================================================= -GEOM::ListOfGO* GEOM_Superv_i::GetBlocksByParts (GEOM::GEOM_Object_ptr theCompound, - const GEOM::ListOfGO& theParts) +GEOM::GEOM_List_ptr GEOM_Superv_i::GetBlocksByParts (GEOM::GEOM_Object_ptr theCompound, + GEOM::GEOM_List_ptr theParts) { + beginService( " GEOM_Superv_i::GetBlocksByParts" ); MESSAGE("GEOM_Superv_i::GetBlocksByParts"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->GetBlocksByParts(theCompound, theParts); + if (GEOM_List_i* aListImplP = + dynamic_cast*>(GetServant(theParts, myPOA).in())) { + getBlocksOp(); + + GEOM::ListOfGO* aBlocks = myBlocksOp->GetBlocksByParts(theCompound, aListImplP->GetList()); + GEOM_List_i* aListPtr = new GEOM_List_i(*(aBlocks)); + endService( " GEOM_Superv_i::GetBlocksByParts" ); + return aListPtr->_this(); + } + endService( " GEOM_Superv_i::GetBlocksByParts" ); + return NULL; } //============================================================================= // MakeMultiTransformation1D: //============================================================================= GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeMultiTransformation1D (GEOM::GEOM_Object_ptr theBlock, - const CORBA::Long theDirFace1, - const CORBA::Long theDirFace2, - const CORBA::Long theNbTimes) + CORBA::Long theDirFace1, + CORBA::Long theDirFace2, + CORBA::Long theNbTimes) { + beginService( " GEOM_Superv_i::MakeMultiTransformation1D" ); MESSAGE("GEOM_Superv_i::MakeMultiTransformation1D"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->MakeMultiTransformation1D(theBlock, theDirFace1, theDirFace2, theNbTimes); + getBlocksOp(); + GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeMultiTransformation1D(theBlock, theDirFace1, theDirFace2, theNbTimes); + endService( " GEOM_Superv_i::MakeMultiTransformation1D" ); + return anObj; } //============================================================================= @@ -1466,18 +2112,21 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeMultiTransformation1D (GEOM::GEOM_Objec //============================================================================= GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeMultiTransformation2D (GEOM::GEOM_Object_ptr theBlock, - const CORBA::Long theDirFace1U, - const CORBA::Long theDirFace2U, - const CORBA::Long theNbTimesU, - const CORBA::Long theDirFace1V, - const CORBA::Long theDirFace2V, - const CORBA::Long theNbTimesV) -{ + CORBA::Long theDirFace1U, + CORBA::Long theDirFace2U, + CORBA::Long theNbTimesU, + CORBA::Long theDirFace1V, + CORBA::Long theDirFace2V, + CORBA::Long theNbTimesV) +{ + beginService( " GEOM_Superv_i::MakeMultiTransformation2D" ); MESSAGE("GEOM_Superv_i::MakeMultiTransformation2D"); - if (CORBA::is_nil(myBlocksOp)) getBlocksOp(); - return myBlocksOp->MakeMultiTransformation2D(theBlock, - theDirFace1U, theDirFace2U, theNbTimesU, - theDirFace1V, theDirFace2V, theNbTimesV); + getBlocksOp(); + GEOM::GEOM_Object_ptr anObj = myBlocksOp->MakeMultiTransformation2D(theBlock, + theDirFace1U, theDirFace2U, theNbTimesU, + theDirFace1V, theDirFace2V, theNbTimesV); + endService( " GEOM_Superv_i::MakeMultiTransformation2D" ); + return anObj; } //=============================== CurvesOperations ============================ @@ -1488,9 +2137,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCirclePntVecR (GEOM::GEOM_Object_ptr th GEOM::GEOM_Object_ptr theVector, CORBA::Double theR) { + beginService( " GEOM_Superv_i::MakeCirclePntVecR" ); MESSAGE("GEOM_Superv_i::MakeCirclePntVecR"); - if (CORBA::is_nil(myCurvesOp)) getCurvesOp(); - return myCurvesOp->MakeCirclePntVecR(theCenter, theVector, theR); + getCurvesOp(); + GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeCirclePntVecR(theCenter, theVector, theR); + endService( " GEOM_Superv_i::MakeCirclePntVecR" ); + return anObj; } //============================================================================= @@ -1500,9 +2152,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCircleThreePnt (GEOM::GEOM_Object_ptr t GEOM::GEOM_Object_ptr thePnt2, GEOM::GEOM_Object_ptr thePnt3) { + beginService( " GEOM_Superv_i::MakeCircleThreePnt" ); MESSAGE("GEOM_Superv_i::MakeCircleThreePnt"); - if (CORBA::is_nil(myCurvesOp)) getCurvesOp(); - return myCurvesOp->MakeCircleThreePnt(thePnt1, thePnt2, thePnt3); + getCurvesOp(); + GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeCircleThreePnt(thePnt1, thePnt2, thePnt3); + endService( " GEOM_Superv_i::MakeCircleThreePnt" ); + return anObj; } //============================================================================= @@ -1513,9 +2168,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeEllipse (GEOM::GEOM_Object_ptr theCente CORBA::Double theRMajor, CORBA::Double theRMinor) { + beginService( " GEOM_Superv_i::MakeEllipse" ); MESSAGE("GEOM_Superv_i::MakeEllipse"); - if (CORBA::is_nil(myCurvesOp)) getCurvesOp(); - return myCurvesOp->MakeEllipse(theCenter, theVector, theRMajor, theRMinor); + getCurvesOp(); + GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeEllipse(theCenter, theVector, theRMajor, theRMinor); + endService( " GEOM_Superv_i::MakeEllipse" ); + return anObj; } //============================================================================= @@ -1525,50 +2183,101 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeArc (GEOM::GEOM_Object_ptr thePnt1, GEOM::GEOM_Object_ptr thePnt2, GEOM::GEOM_Object_ptr thePnt3) { + beginService( " GEOM_Superv_i::MakeArc" ); MESSAGE("GEOM_Superv_i::MakeArc"); - if (CORBA::is_nil(myCurvesOp)) getCurvesOp(); - return myCurvesOp->MakeArc(thePnt1, thePnt2, thePnt3); + getCurvesOp(); + GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeArc(thePnt1, thePnt2, thePnt3); + endService( " GEOM_Superv_i::MakeArc" ); + return anObj; +} + +//============================================================================= +// MakeArcCenter: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeArcCenter (GEOM::GEOM_Object_ptr theCenter, + GEOM::GEOM_Object_ptr thePnt1, + GEOM::GEOM_Object_ptr thePnt2, + CORBA::Boolean theSense) +{ + beginService( " GEOM_Superv_i::MakeArcCenter" ); + MESSAGE("GEOM_Superv_i::MakeArcCenter"); + getCurvesOp(); + GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeArcCenter(theCenter, thePnt1, thePnt2,theSense); + endService( " GEOM_Superv_i::MakeArcCenter" ); + return anObj; } //============================================================================= // MakePolyline: //============================================================================= -GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePolyline (const GEOM::ListOfGO& thePoints) +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePolyline (GEOM::GEOM_List_ptr thePoints) { + beginService( " GEOM_Superv_i::MakePolyline" ); MESSAGE("GEOM_Superv_i::MakePolyline"); - if (CORBA::is_nil(myCurvesOp)) getCurvesOp(); - return myCurvesOp->MakePolyline(thePoints); + if (GEOM_List_i* aListImplP = + dynamic_cast*>(GetServant(thePoints, myPOA).in())) { + getCurvesOp(); + GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakePolyline(aListImplP->GetList()); + endService( " GEOM_Superv_i::MakePolyline" ); + return anObj; + } + endService( " GEOM_Superv_i::MakePolyline" ); + return NULL; } //============================================================================= // MakeSplineBezier: //============================================================================= -GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSplineBezier (const GEOM::ListOfGO& thePoints) +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSplineBezier (GEOM::GEOM_List_ptr thePoints) { + beginService( " GEOM_Superv_i::MakeSplineBezier" ); MESSAGE("GEOM_Superv_i::MakeSplineBezier"); - if (CORBA::is_nil(myCurvesOp)) getCurvesOp(); - return myCurvesOp->MakeSplineBezier(thePoints); + if (GEOM_List_i* aListImplP = + dynamic_cast*>(GetServant(thePoints, myPOA).in())) { + getCurvesOp(); + GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeSplineBezier(aListImplP->GetList()); + endService( " GEOM_Superv_i::MakeSplineBezier" ); + return anObj; + } + endService( " GEOM_Superv_i::MakeSplineBezier" ); + return NULL; } //============================================================================= // MakeSplineInterpolation: //============================================================================= -GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSplineInterpolation (const GEOM::ListOfGO& thePoints) +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSplineInterpolation (GEOM::GEOM_List_ptr thePoints) { + beginService( " GEOM_Superv_i::MakeSplineInterpolation" ); MESSAGE("GEOM_Superv_i::MakeSplineInterpolation"); - if (CORBA::is_nil(myCurvesOp)) getCurvesOp(); - return myCurvesOp->MakeSplineInterpolation(thePoints); + if (GEOM_List_i* aListImplP = + dynamic_cast*>(GetServant(thePoints, myPOA).in())) { + getCurvesOp(); + GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeSplineInterpolation(aListImplP->GetList()); + endService( " GEOM_Superv_i::MakeSplineInterpolation" ); + return anObj; + } + endService( " GEOM_Superv_i::MakeSplineInterpolation" ); + return NULL; } //============================================================================= // MakeSketcher: //============================================================================= GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSketcher (const char* theCommand, - const GEOM::ListOfDouble& theWorkingPlane) + GEOM::GEOM_List_ptr theWorkingPlane) { + beginService( " GEOM_Superv_i::MakeSketcher" ); MESSAGE("GEOM_Superv_i::MakeSketcher"); - if (CORBA::is_nil(myCurvesOp)) getCurvesOp(); - return myCurvesOp->MakeSketcher(theCommand, theWorkingPlane); + if (GEOM_List_i* aListImplWP = + dynamic_cast*>(GetServant(theWorkingPlane, myPOA).in())) { + getCurvesOp(); + GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeSketcher(theCommand, aListImplWP->GetList()); + endService( " GEOM_Superv_i::MakeSketcher" ); + return anObj; + } + endService( " GEOM_Superv_i::MakeSketcher" ); + return NULL; } //=============================== LocalOperations ============================= @@ -1578,9 +2287,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSketcher (const char* theCommand, GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletAll (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR) { + beginService( " GEOM_Superv_i::MakeFilletAll" ); MESSAGE("GEOM_Superv_i::MakeFilletAllMakeSketcher"); - if (CORBA::is_nil(myLocalOp)) getLocalOp(); - return myLocalOp->MakeFilletAll(theShape, theR); + getLocalOp(); + GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFilletAll(theShape, theR); + endService( " GEOM_Superv_i::MakeFilletAll" ); + return anObj; } //============================================================================= @@ -1588,11 +2300,19 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletAll (GEOM::GEOM_Object_ptr theSha //============================================================================= GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletEdges (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR, - const GEOM::ListOfLong& theEdges) + GEOM::GEOM_List_ptr theEdges) { + beginService( " GEOM_Superv_i::MakeFilletEdges" ); MESSAGE("GEOM_Superv_i::MakeFilletEdges"); - if (CORBA::is_nil(myLocalOp)) getLocalOp(); - return myLocalOp->MakeFilletEdges(theShape, theR, theEdges); + if (GEOM_List_i* aListImplE = + dynamic_cast*>(GetServant(theEdges, myPOA).in())) { + getLocalOp(); + GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFilletEdges(theShape, theR, aListImplE->GetList()); + endService( " GEOM_Superv_i::MakeFilletEdges" ); + return anObj; + } + endService( " GEOM_Superv_i::MakeFilletEdges" ); + return NULL; } //============================================================================= @@ -1600,11 +2320,19 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletEdges (GEOM::GEOM_Object_ptr theS //============================================================================= GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletFaces (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR, - const GEOM::ListOfLong& theFaces) + GEOM::GEOM_List_ptr theFaces) { + beginService( " GEOM_Superv_i::MakeFilletFaces" ); MESSAGE("GEOM_Superv_i::MakeFilletFaces"); - if (CORBA::is_nil(myLocalOp)) getLocalOp(); - return myLocalOp->MakeFilletFaces(theShape, theR, theFaces); + if (GEOM_List_i* aListImplF = + dynamic_cast*>(GetServant(theFaces, myPOA).in())) { + getLocalOp(); + GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFilletFaces(theShape, theR, aListImplF->GetList()); + endService( " GEOM_Superv_i::MakeFilletFaces" ); + return anObj; + } + endService( " GEOM_Superv_i::MakeFilletFaces" ); + return NULL; } //============================================================================= @@ -1612,9 +2340,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletFaces (GEOM::GEOM_Object_ptr theS //============================================================================= GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferAll (GEOM::GEOM_Object_ptr theShape, CORBA::Double theD) { + beginService( " GEOM_Superv_i::MakeChamferAll" ); MESSAGE("GEOM_Superv_i::MakeChamferAll"); - if (CORBA::is_nil(myLocalOp)) getLocalOp(); - return myLocalOp->MakeChamferAll(theShape, theD); + getLocalOp(); + GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferAll(theShape, theD); + endService( " GEOM_Superv_i::MakeChamferAll" ); + return anObj; } //============================================================================= @@ -1624,9 +2355,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferEdge (GEOM::GEOM_Object_ptr theS CORBA::Double theD1, CORBA::Double theD2, CORBA::Long theFace1, CORBA::Long theFace2) { + beginService( " GEOM_Superv_i::MakeChamferEdge" ); MESSAGE("GEOM_Superv_i::MakeChamferEdge"); - if (CORBA::is_nil(myLocalOp)) getLocalOp(); - return myLocalOp->MakeChamferEdge(theShape, theD1, theD2, theFace1, theFace2); + getLocalOp(); + GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferEdge(theShape, theD1, theD2, theFace1, theFace2); + endService( " GEOM_Superv_i::MakeChamferEdge" ); + return anObj; } //============================================================================= @@ -1634,11 +2368,19 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferEdge (GEOM::GEOM_Object_ptr theS //============================================================================= GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferFaces (GEOM::GEOM_Object_ptr theShape, CORBA::Double theD1, CORBA::Double theD2, - const GEOM::ListOfLong& theFaces) + GEOM::GEOM_List_ptr theFaces) { + beginService( " GEOM_Superv_i::MakeChamferFaces" ); MESSAGE("GEOM_Superv_i::MakeChamferFaces"); - if (CORBA::is_nil(myLocalOp)) getLocalOp(); - return myLocalOp->MakeChamferFaces(theShape, theD1, theD2, theFaces); + if (GEOM_List_i* aListImplF = + dynamic_cast*>(GetServant(theFaces, myPOA).in())) { + getLocalOp(); + GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferFaces(theShape, theD1, theD2, aListImplF->GetList()); + endService( " GEOM_Superv_i::MakeChamferFaces" ); + return anObj; + } + endService( " GEOM_Superv_i::MakeChamferFaces" ); + return NULL; } //============================================================================= @@ -1649,9 +2391,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeArchimede (GEOM::GEOM_Object_ptr theSha CORBA::Double theWaterDensity, CORBA::Double theMeshingDeflection) { + beginService( " GEOM_Superv_i::MakeArchimede" ); MESSAGE("GEOM_Superv_i::MakeArchimede"); - if (CORBA::is_nil(myLocalOp)) getLocalOp(); - return myLocalOp->MakeArchimede(theShape, theWeight, theWaterDensity, theMeshingDeflection); + getLocalOp(); + GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeArchimede(theShape, theWeight, theWaterDensity, theMeshingDeflection); + endService( " GEOM_Superv_i::MakeArchimede" ); + return anObj; } //============================================================================= @@ -1660,9 +2405,12 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeArchimede (GEOM::GEOM_Object_ptr theSha CORBA::Long GEOM_Superv_i::GetSubShapeIndex (GEOM::GEOM_Object_ptr theShape, GEOM::GEOM_Object_ptr theSubShape) { + beginService( " GEOM_Superv_i::GetSubShapeIndex" ); MESSAGE("GEOM_Superv_i::GetSubShapeIndexMakeArchimede"); - if (CORBA::is_nil(myLocalOp)) getLocalOp(); - return myLocalOp->GetSubShapeIndex(theShape, theSubShape); + getLocalOp(); + CORBA::Long aRes = myLocalOp->GetSubShapeIndex(theShape, theSubShape); + endService( " GEOM_Superv_i::GetSubShapeIndex" ); + return aRes; } //=============================== GroupOperations ============================= @@ -1672,9 +2420,12 @@ CORBA::Long GEOM_Superv_i::GetSubShapeIndex (GEOM::GEOM_Object_ptr theShape, GEOM::GEOM_Object_ptr GEOM_Superv_i::CreateGroup (GEOM::GEOM_Object_ptr theMainShape, CORBA::Long theShapeType) { + beginService( " GEOM_Superv_i::CreateGroup" ); MESSAGE("GEOM_Superv_i::CreateGroup"); - if (CORBA::is_nil(myGroupOp)) getGroupOp(); - return myGroupOp->CreateGroup(theMainShape, theShapeType); + getGroupOp(); + GEOM::GEOM_Object_ptr anObj = myGroupOp->CreateGroup(theMainShape, theShapeType); + endService( " GEOM_Superv_i::CreateGroup" ); + return anObj; } //============================================================================= @@ -1683,9 +2434,11 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::CreateGroup (GEOM::GEOM_Object_ptr theMainS void GEOM_Superv_i::AddObject (GEOM::GEOM_Object_ptr theGroup, CORBA::Long theSubShapeId) { + beginService( " GEOM_Superv_i::AddObject" ); MESSAGE("GEOM_Superv_i::AddObject"); - if (CORBA::is_nil(myGroupOp)) getGroupOp(); + getGroupOp(); myGroupOp->AddObject(theGroup, theSubShapeId); + endService( " GEOM_Superv_i::AddObject" ); } //============================================================================= @@ -1694,9 +2447,11 @@ void GEOM_Superv_i::AddObject (GEOM::GEOM_Object_ptr theGroup, void GEOM_Superv_i::RemoveObject (GEOM::GEOM_Object_ptr theGroup, CORBA::Long theSubShapeId) { + beginService( " GEOM_Superv_i::RemoveObject" ); MESSAGE("GEOM_Superv_i::RemoveObject"); - if (CORBA::is_nil(myGroupOp)) getGroupOp(); + getGroupOp(); myGroupOp->RemoveObject(theGroup, theSubShapeId); + endService( " GEOM_Superv_i::RemoveObject" ); } //============================================================================= @@ -1704,9 +2459,12 @@ void GEOM_Superv_i::RemoveObject (GEOM::GEOM_Object_ptr theGroup, //============================================================================= CORBA::Long GEOM_Superv_i::GetType (GEOM::GEOM_Object_ptr theGroup) { + beginService( " GEOM_Superv_i::GetType" ); MESSAGE("GEOM_Superv_i::GetType"); - if (CORBA::is_nil(myGroupOp)) getGroupOp(); - return myGroupOp->GetType(theGroup); + getGroupOp(); + CORBA::Long aResult = myGroupOp->GetType(theGroup); + endService( " GEOM_Superv_i::GetType" ); + return aResult; } //============================================================================= @@ -1714,19 +2472,28 @@ CORBA::Long GEOM_Superv_i::GetType (GEOM::GEOM_Object_ptr theGroup) //============================================================================= GEOM::GEOM_Object_ptr GEOM_Superv_i::GetMainShape (GEOM::GEOM_Object_ptr theGroup) { + beginService( " GEOM_Superv_i::GetMainShape" ); MESSAGE("GEOM_Superv_i::GetMainShape"); - if (CORBA::is_nil(myGroupOp)) getGroupOp(); - return myGroupOp->GetMainShape(theGroup); + getGroupOp(); + GEOM::GEOM_Object_ptr anObj = myGroupOp->GetMainShape(theGroup); + endService( " GEOM_Superv_i::GetMainShape" ); + return anObj; } //============================================================================= // GetObjects: //============================================================================= -GEOM::ListOfLong* GEOM_Superv_i::GetObjects (GEOM::GEOM_Object_ptr theGroup) +GEOM::GEOM_List_ptr GEOM_Superv_i::GetObjects (GEOM::GEOM_Object_ptr theGroup) { + beginService( " GEOM_Superv_i::GetObjects" ); MESSAGE("GEOM_Superv_i::GetObjects"); - if (CORBA::is_nil(myGroupOp)) getGroupOp(); - return myGroupOp->GetObjects(theGroup); + getGroupOp(); + + GEOM::ListOfLong* aList = myGroupOp->GetObjects(theGroup); + GEOM_List_i* aListPtr = new GEOM_List_i(*(aList)); + MESSAGE(" List of "<GetList().length()<<" element(s)"); + endService( " GEOM_Superv_i::GetObjects" ); + return aListPtr->_this(); } //=====================================================================================