-// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#include "GEOM_Superv_i.hh"
#include "SALOME_LifeCycleCORBA.hxx"
+#include "Utils_CorbaException.hxx"
+#include "SALOME_Fake_NamingService.hxx"
+#include "SALOME_Container_i.hxx"
#include CORBA_SERVER_HEADER(SALOME_Session)
#include "SALOMEDSClient_ClientFactory.hxx"
PortableServer::POA_ptr poa,
PortableServer::ObjectId * contId,
const char *instanceName,
- const char *interfaceName) :
- Engines_Component_i(orb, poa, contId, instanceName, interfaceName)
+ const char *interfaceName, bool withRegistry,
+ SALOME_NamingService_Abstract *my_name_service):name_service(my_name_service),Engines_Component_i(orb, poa, contId, instanceName, interfaceName, false, withRegistry)
{
MESSAGE("GEOM_Superv_i::GEOM_Superv_i");
_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");
setGeomEngine();
- myStudyID = -1;
- myLastStudyID = -1;
-
myBasicOp = GEOM::GEOM_IBasicOperations::_nil();
my3DPrimOp = GEOM::GEOM_I3DPrimOperations::_nil();
myBoolOp = GEOM::GEOM_IBooleanOperations::_nil();
myGeomEngine = GEOM::GEOM_Gen::_narrow(comp);
}
-//=============================================================================
-// SetStudyID:
-//=============================================================================
-void GEOM_Superv_i::SetStudyID( CORBA::Long 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="<<theId<<" is wrong and will be replaced by the value "<<aStudyID);
- myStudyID = aStudyID;
- }
- else
- myStudyID = theId; // mkr : IPAL12128
- }
- }
-
- if ( isNewStudy(myLastStudyID,myStudyID) ) {
- if (CORBA::is_nil(myGeomEngine)) setGeomEngine();
- std::string anEngine = _orb->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:
//=============================================================================
if (CORBA::is_nil(myGeomEngine))
setGeomEngine();
// get GEOM_IBasicOperations interface
- if (CORBA::is_nil(myBasicOp) || isNewStudy(myLastStudyID,myStudyID)) {
- //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
- // Try to get id of the study from the SALOME Session
- if(myStudyID < 0 ) SetStudyID(-1);
- myBasicOp = myGeomEngine->GetIBasicOperations(myStudyID);
+ if (CORBA::is_nil(myBasicOp)) {
+ myBasicOp = myGeomEngine->GetIBasicOperations();
}
}
if (CORBA::is_nil(myGeomEngine))
setGeomEngine();
// get GEOM_I3DPrimOperations interface
- if (CORBA::is_nil(my3DPrimOp) || isNewStudy(myLastStudyID,myStudyID)) {
- //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
- // Try to get id of the study from the SALOME Session
- if(myStudyID < 0 ) SetStudyID(-1);
- my3DPrimOp = myGeomEngine->GetI3DPrimOperations(myStudyID);
+ if (CORBA::is_nil(my3DPrimOp)) {
+ my3DPrimOp = myGeomEngine->GetI3DPrimOperations();
}
}
if (CORBA::is_nil(myGeomEngine))
setGeomEngine();
// get GEOM_IBooleanOperations interface
- if (CORBA::is_nil(myBoolOp) || isNewStudy(myLastStudyID,myStudyID)) {
- //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
- // Try to get id of the study from the SALOME Session
- if(myStudyID < 0 ) SetStudyID(-1);
- myBoolOp = myGeomEngine->GetIBooleanOperations(myStudyID);
+ if (CORBA::is_nil(myBoolOp)) {
+ myBoolOp = myGeomEngine->GetIBooleanOperations();
}
}
if (CORBA::is_nil(myGeomEngine))
setGeomEngine();
// get GEOM_IInsertOperations interface
- if (CORBA::is_nil(myInsOp) || isNewStudy(myLastStudyID,myStudyID)) {
- //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
- // Try to get id of the study from the SALOME Session
- if(myStudyID < 0 ) SetStudyID(-1);
- myInsOp = myGeomEngine->GetIInsertOperations(myStudyID);
+ if (CORBA::is_nil(myInsOp)) {
+ myInsOp = myGeomEngine->GetIInsertOperations();
}
}
if (CORBA::is_nil(myGeomEngine))
setGeomEngine();
// get GEOM_ITransformOperations interface
- if (CORBA::is_nil(myTransfOp) || isNewStudy(myLastStudyID,myStudyID)) {
- //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
- // Try to get id of the study from the SALOME Session
- if(myStudyID < 0 ) SetStudyID(-1);
- myTransfOp = myGeomEngine->GetITransformOperations(myStudyID);
+ if (CORBA::is_nil(myTransfOp)) {
+ myTransfOp = myGeomEngine->GetITransformOperations();
}
}
if (CORBA::is_nil(myGeomEngine))
setGeomEngine();
// get GEOM_IShapesOperations interface
- if (CORBA::is_nil(myShapesOp) || isNewStudy(myLastStudyID,myStudyID)) {
- //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
- // Try to get id of the study from the SALOME Session
- if(myStudyID < 0 ) SetStudyID(-1);
- myShapesOp = myGeomEngine->GetIShapesOperations(myStudyID);
+ if (CORBA::is_nil(myShapesOp)) {
+ myShapesOp = myGeomEngine->GetIShapesOperations();
}
}
if (CORBA::is_nil(myGeomEngine))
setGeomEngine();
// get GEOM_IBlocksOperations interface
- if (CORBA::is_nil(myBlocksOp) || isNewStudy(myLastStudyID,myStudyID)) {
- //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
- // Try to get id of the study from the SALOME Session
- if(myStudyID < 0 ) SetStudyID(-1);
- myBlocksOp = myGeomEngine->GetIBlocksOperations(myStudyID);
+ if (CORBA::is_nil(myBlocksOp)) {
+ myBlocksOp = myGeomEngine->GetIBlocksOperations();
}
}
if (CORBA::is_nil(myGeomEngine))
setGeomEngine();
// get GEOM_ICurvesOperations interface
- if (CORBA::is_nil(myCurvesOp) || isNewStudy(myLastStudyID,myStudyID)) {
- //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
- // Try to get id of the study from the SALOME Session
- if(myStudyID < 0 ) SetStudyID(-1);
- myCurvesOp = myGeomEngine->GetICurvesOperations(myStudyID);
+ if (CORBA::is_nil(myCurvesOp)) {
+ myCurvesOp = myGeomEngine->GetICurvesOperations();
}
}
if (CORBA::is_nil(myGeomEngine))
setGeomEngine();
// get GEOM_ILocalOperations interface
- if (CORBA::is_nil(myLocalOp) || isNewStudy(myLastStudyID,myStudyID)) {
- //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
- // Try to get id of the study from the SALOME Session
- if(myStudyID < 0 ) SetStudyID(-1);
- myLocalOp = myGeomEngine->GetILocalOperations(myStudyID);
+ if (CORBA::is_nil(myLocalOp)) {
+ myLocalOp = myGeomEngine->GetILocalOperations();
}
}
if (CORBA::is_nil(myGeomEngine))
setGeomEngine();
// get GEOM_IGroupOperations interface
- if (CORBA::is_nil(myGroupOp) || isNewStudy(myLastStudyID,myStudyID)) {
- //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
- // Try to get id of the study from the SALOME Session
- if(myStudyID < 0 ) SetStudyID(-1);
- myGroupOp = myGeomEngine->GetIGroupOperations(myStudyID);
+ if (CORBA::is_nil(myGroupOp)) {
+ myGroupOp = myGeomEngine->GetIGroupOperations();
}
}
if (CORBA::is_nil(myGeomEngine))
setGeomEngine();
// get GEOM::IAdvancedOperations interface
- if (CORBA::is_nil(myAdvancedOp) || isNewStudy(myLastStudyID,myStudyID)) {
- //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
- // Try to get id of the study from the SALOME Session
- if(myStudyID < 0 ) SetStudyID(-1);
- myAdvancedOp = GEOM::IAdvancedOperations::_narrow(myGeomEngine->GetPluginOperations(myStudyID, "AdvancedEngine"));
+ if (CORBA::is_nil(myAdvancedOp)) {
+ myAdvancedOp = GEOM::IAdvancedOperations::_narrow(myGeomEngine->GetPluginOperations("AdvancedEngine"));
}
}
if (CORBA::is_nil(myGeomEngine))
setGeomEngine();
// get GEOM::ISTLOperations interface
- if (CORBA::is_nil(mySTLOp) || isNewStudy(myLastStudyID,myStudyID)) {
- //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
- // Try to get id of the study from the SALOME Session
- if(myStudyID < 0 ) SetStudyID(-1);
- mySTLOp = GEOM::ISTLOperations::_narrow(myGeomEngine->GetPluginOperations(myStudyID, "STLPluginEngine"));
+ if (CORBA::is_nil(mySTLOp)) {
+ mySTLOp = GEOM::ISTLOperations::_narrow(myGeomEngine->GetPluginOperations("STLPluginEngine"));
}
}
if (CORBA::is_nil(myGeomEngine))
setGeomEngine();
// get GEOM:IBREPOperations interface
- if (CORBA::is_nil(myBREPOp) || isNewStudy(myLastStudyID,myStudyID)) {
- //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
- // Try to get id of the study from the SALOME Session
- if(myStudyID < 0 ) SetStudyID(-1);
- myBREPOp = GEOM::IBREPOperations::_narrow(myGeomEngine->GetPluginOperations(myStudyID, "BREPPluginEngine"));
+ if (CORBA::is_nil(myBREPOp)) {
+ myBREPOp = GEOM::IBREPOperations::_narrow(myGeomEngine->GetPluginOperations("BREPPluginEngine"));
}
}
if (CORBA::is_nil(myGeomEngine))
setGeomEngine();
// get GEOM::ISTEPOperations interface
- if (CORBA::is_nil(mySTEPOp) || isNewStudy(myLastStudyID,myStudyID)) {
- //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
- // Try to get id of the study from the SALOME Session
- if(myStudyID < 0 ) SetStudyID(-1);
- mySTEPOp = GEOM::ISTEPOperations::_narrow(myGeomEngine->GetPluginOperations(myStudyID, "STEPPluginEngine"));
+ if (CORBA::is_nil(mySTEPOp)) {
+ mySTEPOp = GEOM::ISTEPOperations::_narrow(myGeomEngine->GetPluginOperations("STEPPluginEngine"));
}
}
if (CORBA::is_nil(myGeomEngine))
setGeomEngine();
// get GEOM::IIGESOperations interface
- if (CORBA::is_nil(myIGESOp) || isNewStudy(myLastStudyID,myStudyID)) {
- //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
- // Try to get id of the study from the SALOME Session
- if(myStudyID < 0 ) SetStudyID(-1);
- myIGESOp = GEOM::IIGESOperations::_narrow(myGeomEngine->GetPluginOperations(myStudyID, "IGESPluginEngine"));
+ if (CORBA::is_nil(myIGESOp)) {
+ myIGESOp = GEOM::IIGESOperations::_narrow(myGeomEngine->GetPluginOperations("IGESPluginEngine"));
}
}
if (CORBA::is_nil(myGeomEngine))
setGeomEngine();
// get GEOM::IXAOOperations interface
- if (CORBA::is_nil(myXAOOp) || isNewStudy(myLastStudyID,myStudyID)) {
- //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
- // Try to get id of the study from the SALOME Session
- if(myStudyID < 0 ) SetStudyID(-1);
- myXAOOp = GEOM::IXAOOperations::_narrow(myGeomEngine->GetPluginOperations(myStudyID, "XAOPluginEngine"));
+ if (CORBA::is_nil(myXAOOp)) {
+ myXAOOp = GEOM::IXAOOperations::_narrow(myGeomEngine->GetPluginOperations("XAOPluginEngine"));
}
}
+#ifdef WITH_VTK
//=============================================================================
// getVTKPluginOp:
//=============================================================================
if (CORBA::is_nil(myGeomEngine))
setGeomEngine();
// get GEOM::IVTKOperations interface
- if (CORBA::is_nil(myVTKOp) || isNewStudy(myLastStudyID,myStudyID)) {
- //rnv: to fix bug "IPAL22461 6.3.0: Incorrect study storage if study contains shape modified with YACS"
- // Try to get id of the study from the SALOME Session
- if(myStudyID < 0 ) SetStudyID(-1);
- myVTKOp = GEOM::IVTKOperations::_narrow(myGeomEngine->GetPluginOperations(myStudyID, "VTKPluginEngine"));
+ if (CORBA::is_nil(myVTKOp)) {
+ myVTKOp = GEOM::IVTKOperations::_narrow(myGeomEngine->GetPluginOperations("VTKPluginEngine"));
}
}
+#endif
//=============================================================================
// GetServant:
// function : Save()
// purpose : save OCAF/Geom document
//============================================================================
-SALOMEDS::TMPFile* GEOM_Superv_i::Save(SALOMEDS::SComponent_ptr theComponent,
- const char* theURL,
- CORBA::Boolean isMultiFile)
+SALOMEDS::TMPFile* GEOM_Superv_i::Save(SALOMEDS::SComponent_ptr /*theComponent*/,
+ const char* /*theURL*/,
+ CORBA::Boolean /*isMultiFile*/)
{
SALOMEDS::TMPFile_var aStreamFile;
return aStreamFile._retn();
// function : SaveASCII()
// purpose :
//============================================================================
-SALOMEDS::TMPFile* GEOM_Superv_i::SaveASCII(SALOMEDS::SComponent_ptr theComponent,
- const char* theURL,
- CORBA::Boolean isMultiFile)
+SALOMEDS::TMPFile* GEOM_Superv_i::SaveASCII(SALOMEDS::SComponent_ptr /*theComponent*/,
+ const char* /*theURL*/,
+ CORBA::Boolean /*isMultiFile*/)
{
SALOMEDS::TMPFile_var aStreamFile;
return aStreamFile._retn();
// function : Load()
// purpose :
//============================================================================
-CORBA::Boolean GEOM_Superv_i::Load(SALOMEDS::SComponent_ptr theComponent,
- const SALOMEDS::TMPFile& theStream,
- const char* theURL,
- CORBA::Boolean isMultiFile)
+CORBA::Boolean GEOM_Superv_i::Load(SALOMEDS::SComponent_ptr /*theComponent*/,
+ const SALOMEDS::TMPFile& /*theStream*/,
+ const char* /*theURL*/,
+ CORBA::Boolean /*isMultiFile*/)
{
return false;
}
// function : LoadASCII()
// purpose :
//============================================================================
-CORBA::Boolean GEOM_Superv_i::LoadASCII(SALOMEDS::SComponent_ptr theComponent,
- const SALOMEDS::TMPFile& theStream,
- const char* theURL,
- CORBA::Boolean isMultiFile)
+CORBA::Boolean GEOM_Superv_i::LoadASCII(SALOMEDS::SComponent_ptr /*theComponent*/,
+ const SALOMEDS::TMPFile& /*theStream*/,
+ const char* /*theURL*/,
+ CORBA::Boolean /*isMultiFile*/)
{
return false;
}
// function : Close()
// purpose :
//============================================================================
-void GEOM_Superv_i::Close(SALOMEDS::SComponent_ptr theComponent)
+void GEOM_Superv_i::Close(SALOMEDS::SComponent_ptr /*theComponent*/)
{
}
// function : IORToLocalPersistentID()
// purpose :
//============================================================================
-char* GEOM_Superv_i::IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject,
- const char* IORString,
- CORBA::Boolean isMultiFile,
- CORBA::Boolean isASCII)
+char* GEOM_Superv_i::IORToLocalPersistentID(SALOMEDS::SObject_ptr /*theSObject*/,
+ const char* /*IORString*/,
+ CORBA::Boolean /*isMultiFile*/,
+ CORBA::Boolean /*isASCII*/)
{
return 0;
}
// : Used when a study is loaded
// : The IOR (IORName) of object created is returned
//============================================================================
-char* GEOM_Superv_i::LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject,
- const char* aLocalPersistentID,
- CORBA::Boolean isMultiFile,
- CORBA::Boolean isASCII)
+char* GEOM_Superv_i::LocalPersistentIDToIOR(SALOMEDS::SObject_ptr /*theSObject*/,
+ const char* /*aLocalPersistentID*/,
+ CORBA::Boolean /*isMultiFile*/,
+ CORBA::Boolean /*isASCII*/)
{
return 0;
}
// function : PublishInStudy
// purpose :
//============================================================================
-SALOMEDS::SObject_ptr GEOM_Superv_i::PublishInStudy(SALOMEDS::Study_ptr theStudy,
- SALOMEDS::SObject_ptr theSObject,
+SALOMEDS::SObject_ptr GEOM_Superv_i::PublishInStudy(SALOMEDS::SObject_ptr theSObject,
CORBA::Object_ptr theObject,
- const char* theName) throw (SALOME::SALOME_Exception)
+ const char* theName)
{
if (CORBA::is_nil(myGeomEngine))
setGeomEngine();
- return myGeomEngine->PublishInStudy(theStudy, theSObject, theObject, theName);
+ return myGeomEngine->PublishInStudy(theSObject, theObject, theName);
}
//============================================================================
// purpose :
//============================================================================
GEOM::ListOfGO*
-GEOM_Superv_i::PublishNamedShapesInStudy(SALOMEDS::Study_ptr theStudy,
- //SALOMEDS::SObject_ptr theSObject,
+GEOM_Superv_i::PublishNamedShapesInStudy(//SALOMEDS::SObject_ptr theSObject,
CORBA::Object_ptr theObject)
{
if (CORBA::is_nil(myGeomEngine))
setGeomEngine();
- return myGeomEngine->PublishNamedShapesInStudy(theStudy, theObject);
+ return myGeomEngine->PublishNamedShapesInStudy(theObject);
}
//============================================================================
// function : CanCopy()
// purpose :
//============================================================================
-CORBA::Boolean GEOM_Superv_i::CanCopy(SALOMEDS::SObject_ptr theObject)
+CORBA::Boolean GEOM_Superv_i::CanCopy(SALOMEDS::SObject_ptr /*theObject*/)
{
return false;
}
// function : CopyFrom()
// purpose :
//============================================================================
-SALOMEDS::TMPFile* GEOM_Superv_i::CopyFrom(SALOMEDS::SObject_ptr theObject, CORBA::Long& theObjectID)
+SALOMEDS::TMPFile* GEOM_Superv_i::CopyFrom(SALOMEDS::SObject_ptr /*theObject*/, CORBA::Long& /*theObjectID*/)
{
SALOMEDS::TMPFile_var aStreamFile;
return aStreamFile._retn();
// function : CanPaste()
// purpose :
//============================================================================
-CORBA::Boolean GEOM_Superv_i::CanPaste(const char* theComponentName, CORBA::Long theObjectID)
+CORBA::Boolean GEOM_Superv_i::CanPaste(const char* /*theComponentName*/, CORBA::Long /*theObjectID*/)
{
return false;
}
// function : PasteInto()
// purpose :
//============================================================================
-SALOMEDS::SObject_ptr GEOM_Superv_i::PasteInto(const SALOMEDS::TMPFile& theStream,
- CORBA::Long theObjectID,
- SALOMEDS::SObject_ptr theObject)
+SALOMEDS::SObject_ptr GEOM_Superv_i::PasteInto(const SALOMEDS::TMPFile& /*theStream*/,
+ CORBA::Long /*theObjectID*/,
+ SALOMEDS::SObject_ptr /*theObject*/)
{
SALOMEDS::SObject_var aNewSO;
return aNewSO._retn();
beginService( " GEOM_Superv_i::MakePointOnCurve" );
MESSAGE("GEOM_Superv_i::MakePointOnCurve");
getBasicOp();
- GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePointOnCurve(theRefCurve, theParameter);
+ GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePointOnCurve(theRefCurve, theParameter, false);
endService( " GEOM_Superv_i::MakePointOnCurve" );
return anObj;
}
beginService( " GEOM_Superv_i::MakePipe" );
MESSAGE("GEOM_Superv_i::MakePipe");
get3DPrimOp();
- GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePipe(theBase, thePath);
+ GEOM::ListOfGO_var aList = my3DPrimOp->MakePipe(theBase, thePath, false);
endService( " GEOM_Superv_i::MakePipe" );
- return anObj;
+ return aList[0];
}
//=============================================================================
beginService( " GEOM_Superv_i::MakePipeWithDifferentSections" );
MESSAGE("GEOM_Superv_i::MakePipeWithDifferentSections");
get3DPrimOp();
- GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePipeWithDifferentSections(theBases,theLocations, thePath,theWithContact,theWithCorrections);
+ GEOM::ListOfGO_var aList = my3DPrimOp->MakePipeWithDifferentSections(theBases,theLocations, thePath,theWithContact,theWithCorrections, false, false);
endService( " GEOM_Superv_i::MakePipeWithDifferentSections" );
- return anObj;
+ return aList[0];
}
beginService( " GEOM_Superv_i::MakePipeWithShellSections" );
MESSAGE("GEOM_Superv_i::MakePipeWithShellSections");
get3DPrimOp();
- GEOM::GEOM_Object_ptr anObj =
+ GEOM::ListOfGO_var aList =
my3DPrimOp->MakePipeWithShellSections(theBases, theSubBases,
theLocations, thePath,
- theWithContact, theWithCorrections);
+ theWithContact, theWithCorrections,
+ false);
endService( " GEOM_Superv_i::MakePipeWithShellSections" );
- return anObj;
+ return aList[0];
}
beginService( " GEOM_Superv_i::MakePipeShellsWithoutPath" );
MESSAGE("GEOM_Superv_i::MakePipeShellsWithoutPath");
get3DPrimOp();
- GEOM::GEOM_Object_ptr anObj =
- my3DPrimOp->MakePipeShellsWithoutPath(theBases,theLocations);
+ GEOM::ListOfGO_var aList =
+ my3DPrimOp->MakePipeShellsWithoutPath(theBases,theLocations, false);
endService( " GEOM_Superv_i::MakePipeShellsWithoutPath" );
- return anObj;
+ return aList[0];
}
beginService( " GEOM_Superv_i::MakePipeBiNormalAlongVector" );
MESSAGE("GEOM_Superv_i::MakePipeBiNormalAlongVector");
get3DPrimOp();
- GEOM::GEOM_Object_ptr anObj =
- my3DPrimOp->MakePipeBiNormalAlongVector(theBase, thePath, theVec);
+ GEOM::ListOfGO_var aList =
+ my3DPrimOp->MakePipeBiNormalAlongVector(theBase, thePath, theVec, false);
endService( " GEOM_Superv_i::MakePipeBiNormalAlongVector" );
- return anObj;
+ return aList[0];
}
beginService( " GEOM_Superv_i::OffsetShape" );
MESSAGE("GEOM_Superv_i::OffsetShape");
getTransfOp();
- GEOM::GEOM_Object_ptr anObj = myTransfOp->OffsetShape(theObject, theOffset);
+ GEOM::GEOM_Object_ptr anObj = myTransfOp->OffsetShape(theObject, theOffset, true);
endService( " GEOM_Superv_i::OffsetShape" );
return anObj;
}
beginService( " GEOM_Superv_i::OffsetShapeCopy" );
MESSAGE("GEOM_Superv_i::OffsetShapeCopy");
getTransfOp();
- GEOM::GEOM_Object_ptr anObj = myTransfOp->OffsetShapeCopy(theObject, theOffset);
+ GEOM::GEOM_Object_ptr anObj = myTransfOp->OffsetShapeCopy(theObject, theOffset, true);
endService( " GEOM_Superv_i::OffsetShapeCopy" );
return anObj;
}
MESSAGE("GEOM_Superv_i::ImportSTL");
getSTLPluginOp();
GEOM::ListOfGO* aSeq = mySTLOp->ImportSTL(theFileName );
- GEOM::GEOM_Object_ptr anObj;
+ GEOM::GEOM_Object_var anObj;
if (aSeq->length() > 0) {
anObj = aSeq->operator[](0);
}
endService( " GEOM_Superv_i::ImportSTL" );
- return anObj;
+ return anObj._retn();
}
//=============================================================================
MESSAGE("GEOM_Superv_i::ImportBREP");
getBREPPluginOp();
GEOM::ListOfGO* aSeq = myBREPOp->ImportBREP(theFileName );
- GEOM::GEOM_Object_ptr anObj;
+ GEOM::GEOM_Object_var anObj;
if (aSeq->length() > 0) {
anObj = aSeq->operator[](0);
}
endService( " GEOM_Superv_i::ImportBREP" );
- return anObj;
+ return anObj._retn();
}
//=============================================================================
beginService( " GEOM_Superv_i::ExportSTEP" );
MESSAGE("GEOM_Superv_i::ExportSTEP");
getSTEPPluginOp();
- mySTEPOp->ExportSTEP( theObject, theFileName );
+
+ const GEOM::length_unit aUnit = GEOM::LU_METER;
+
+ mySTEPOp->ExportSTEP( theObject, theFileName, aUnit );
endService( " GEOM_Superv_i::ExportSTEP" );
}
beginService( " GEOM_Superv_i::ImportSTEP" );
MESSAGE("GEOM_Superv_i::ImportSTEP");
getSTEPPluginOp();
- GEOM::ListOfGO* aSeq = mySTEPOp->ImportSTEP(theFileName, theIsIgnoreUnits );
- GEOM::GEOM_Object_ptr anObj;
+ GEOM::ListOfGO* aSeq = mySTEPOp->ImportSTEP(theFileName, theIsIgnoreUnits, false );
+ GEOM::GEOM_Object_var anObj;
if (aSeq->length() > 0) {
anObj = aSeq->operator[](0);
}
endService( " GEOM_Superv_i::ImportSTEP" );
- return anObj;
+ return anObj._retn();
}
//=============================================================================
MESSAGE("GEOM_Superv_i::ImportIGES");
getIGESPluginOp();
GEOM::ListOfGO* aSeq = myIGESOp->ImportIGES(theFileName, theIsIgnoreUnits );
- GEOM::GEOM_Object_ptr anObj;
+ GEOM::GEOM_Object_var anObj;
if (aSeq->length() > 0) {
anObj = aSeq->operator[](0);
}
endService( " GEOM_Superv_i::ImportIGES" );
- return anObj;
+ return anObj._retn();
}
//=============================================================================
CORBA::Boolean GEOM_Superv_i::ExportXAO( GEOM::GEOM_Object_ptr shape,
const GEOM::ListOfGO& groups,
const GEOM::ListOfFields& fields,
- const char* author, const char* fileName )
+ const char* author,
+ const char* fileName,
+ const char* shapeFileName )
{
beginService( " GEOM_Superv_i::ExportXAO" );
MESSAGE("GEOM_Superv_i::ExportXAO");
getXAOPluginOp();
- CORBA::Boolean isGood = myXAOOp->ExportXAO( shape, groups, fields, author, fileName );
+ CORBA::Boolean isGood = myXAOOp->ExportXAO( shape, groups, fields, author, fileName, shapeFileName );
endService( " GEOM_Superv_i::ExportXAO" );
return isGood;
}
//=============================================================================
// Import XAO
//=============================================================================
-CORBA::Boolean GEOM_Superv_i::ImportXAO( const char* fileName,
- GEOM::GEOM_Object_out shape,
- GEOM::ListOfGO_out subShapes,
- GEOM::ListOfGO_out groups,
- GEOM::ListOfFields_out fields )
+CORBA::Boolean GEOM_Superv_i::ImportXAO( const char* /*fileName*/,
+ GEOM::GEOM_Object_out /*shape*/,
+ GEOM::ListOfGO_out /*subShapes*/,
+ GEOM::ListOfGO_out /*groups*/,
+ GEOM::ListOfFields_out /*fields*/ )
{
return false;
}
+
//=============================================================================
// Export VTK
//=============================================================================
const char* theFileName,
CORBA::Double theDeflection )
{
+ #ifdef WITH_VTK
beginService( " GEOM_Superv_i::ExportVTK" );
MESSAGE("GEOM_Superv_i::ExportVTK");
getVTKPluginOp();
myVTKOp->ExportVTK( theObject, theFileName, theDeflection );
endService( " GEOM_Superv_i::ExportVTK" );
+#else
+ std::string message("GEOM_Superv_i::ExportVTK functionality is unavailable");
+ THROW_SALOME_CORBA_EXCEPTION(message.c_str(), SALOME::INTERNAL_ERROR);
+#endif
}
//=============================== Advanced Operations =============================
/*@@ insert new functions before this line @@ do not remove this line @@*/
+GEOM_Superv_i_With_Session::GEOM_Superv_i_With_Session(CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ PortableServer::ObjectId * contId,
+ const char *instanceName,
+ const char *interfaceName):GEOM_Superv_i(orb,poa,contId,instanceName,interfaceName,true,new SALOME_NamingService(orb))
+{
+}
+
+GEOM_Superv_i_Without_Session::GEOM_Superv_i_Without_Session(CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ PortableServer::ObjectId * contId,
+ const char *instanceName,
+ const char *interfaceName, SALOME_NamingService_Abstract *my_name_service):GEOM_Superv_i(orb,poa,contId,instanceName,interfaceName,false, my_name_service)
+{
+}
+
//=====================================================================================
// EXPORTED METHODS
//=====================================================================================
const char *instanceName,
const char * interfaceName)
{
- GEOM_Superv_i * myGEOM_Superv_i = new GEOM_Superv_i(orb, poa, contId, instanceName, interfaceName);
- //Don't understand the reason why this component is registered ???
-// myGEOM_Superv_i->register_name("/myGEOM_Superv");
- return myGEOM_Superv_i->getId() ;
+ CORBA::Object_var o = poa->id_to_reference(*contId);
+ Engines::Container_var cont = Engines::Container::_narrow(o);
+ GEOM_Superv_i *myGEOM_Superv_i(nullptr);
+ if(cont->is_SSL_mode())
+ {
+ PortableServer::ServantBase *contPtr = poa->reference_to_servant(cont);
+ Abstract_Engines_Container_i *contPtrEff = dynamic_cast<Abstract_Engines_Container_i *>(contPtr);
+ SALOME_NamingService_Abstract *decoNS = new SALOME_NamingService_Abstract_Decorator(contPtrEff->getNS());
+ myGEOM_Superv_i = new GEOM_Superv_i_Without_Session(orb, poa, contId, instanceName, interfaceName,decoNS);
+ //Don't understand the reason why this component is registered ???
+ // myGEOM_Superv_i->register_name("/myGEOM_Superv");
+ return myGEOM_Superv_i->getId() ;
+ }
+ else
+ {
+ myGEOM_Superv_i = new GEOM_Superv_i_With_Session(orb, poa, contId, instanceName, interfaceName);
+ return myGEOM_Superv_i->getId() ;
+ }
}
}