X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_Swig.cxx;h=d0dd51fc0070c0313cf0a33e329e07d53ddfbfe7;hb=ffccd77f4729d3348371eafea278a0c8cc2adb5f;hp=0af98fb7243727a6f9c5931661ecdcdd2d417327;hpb=4791f5b30ea7a9c1247aa551750dc71cb83b99aa;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_Swig.cxx b/src/SMESHGUI/SMESHGUI_Swig.cxx index 0af98fb72..d0dd51fc0 100644 --- a/src/SMESHGUI/SMESHGUI_Swig.cxx +++ b/src/SMESHGUI/SMESHGUI_Swig.cxx @@ -21,13 +21,14 @@ // // // -// File : SMESHGUI_Swig.cxx +// File : SMESH_Swig.cxx // Author : Nicolas REJNERI // Module : SMESH // $Header$ using namespace std; #include "SMESHGUI_Swig.hxx" +#include "SMESHGUI_Utils.h" #include "Utils_ORB_INIT.hxx" #include "Utils_SINGLETON.hxx" @@ -47,59 +48,69 @@ using namespace std; #include CORBA_SERVER_HEADER(SMESH_Gen) #include CORBA_SERVER_HEADER(SMESH_Mesh) #include CORBA_SERVER_HEADER(SMESH_Hypothesis) -#include CORBA_SERVER_HEADER(GEOM_Shape) static CORBA::ORB_var _orb; -static char* ObjectToString (CORBA::Object_ptr obj) -{ - return _orb->object_to_string(obj); -} +// static char* ObjectToString (CORBA::Object_ptr obj) +// { +// return _orb->object_to_string(obj); +// } static CORBA::Object_ptr StringToObject (const char* ior) { return _orb->string_to_object(ior); } -SMESHGUI_Swig::SMESHGUI_Swig() +SMESH_Swig::SMESH_Swig() { MESSAGE("Constructeur"); setOrb(); } -void SMESHGUI_Swig::Init(int studyID) +void SMESH_Swig::Init(int studyID) { MESSAGE("Init"); Engines::Component_var comp = QAD_Application::getDesktop()->getEngine("FactoryServer", "SMESH"); SMESH::SMESH_Gen_var CompMesh = SMESH::SMESH_Gen::_narrow(comp); + Engines::Component_var comp1 = QAD_Application::getDesktop()->getEngine("FactoryServer", "GEOM"); + GEOM::GEOM_Gen_var CompGeom = GEOM::GEOM_Gen::_narrow(comp1); + QAD_ResourceMgr* resMgr = QAD_Desktop::createResourceManager(); if ( resMgr ) { QString msg; - if (!resMgr->loadResources( "SMESHGUI", msg )) + if (!resMgr->loadResources( "SMESH", msg )) MESSAGE ( msg ) } CORBA::Object_var obj = QAD_Application::getDesktop()->getNameService()->Resolve("/myStudyManager"); SALOMEDS::StudyManager_var myStudyMgr = SALOMEDS::StudyManager::_narrow(obj); myStudy = myStudyMgr->GetStudyByID(studyID); + + CompMesh->SetCurrentStudy( myStudy.in() ); + myStudyBuilder = myStudy->NewBuilder(); SALOMEDS::GenericAttribute_var anAttr; SALOMEDS::AttributeName_var aName; SALOMEDS::AttributePixMap_var aPixmap; - SALOMEDS::SComponent_var father = myStudy->FindComponent("MESH"); + // See return value of SMESH::SMESH_Gen::ComponentDataType() + SALOMEDS::SComponent_var father = myStudy->FindComponent("SMESH"); if (father->_is_nil()) { - father = myStudyBuilder->NewComponent("MESH"); + bool aLocked = myStudy->GetProperties()->IsLocked(); + if (aLocked) myStudy->GetProperties()->SetLocked(false); + father = myStudyBuilder->NewComponent("SMESH"); anAttr = myStudyBuilder->FindOrCreateAttribute(father, "AttributeName"); aName = SALOMEDS::AttributeName::_narrow(anAttr); - aName->SetValue(QObject::tr("SMESH_MEN_COMPONENT")); + //NRI aName->SetValue(QObject::tr("SMESH_MEN_COMPONENT")); + aName->SetValue( QAD_Application::getDesktop()->getComponentUserName( "SMESH" ) ); anAttr = myStudyBuilder->FindOrCreateAttribute(father, "AttributePixMap"); aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr); aPixmap->SetPixMap( "ICON_OBJBROWSER_SMESH" ); + myStudyBuilder->DefineComponentInstance(father, CompMesh ); + if (aLocked) myStudy->GetProperties()->SetLocked(true); } - myStudyBuilder->DefineComponentInstance(father, CompMesh ); mySComponentMesh = SALOMEDS::SComponent::_narrow( father ); // Tags definition @@ -117,15 +128,21 @@ void SMESHGUI_Swig::Init(int studyID) Tag_SubMeshOnCompound = 8; } -SMESHGUI_Swig::~SMESHGUI_Swig() +SMESH_Swig::~SMESH_Swig() { MESSAGE("Destructeur"); } -const char* SMESHGUI_Swig::AddNewMesh(const char* IOR) +const char* SMESH_Swig::AddNewMesh(const char* IOR) { MESSAGE("AddNewMesh"); + + // VSR: added temporarily - to be removed - objects are published automatically by engine + SALOMEDS::SObject_var SO = myStudy->FindObjectIOR( IOR ); + if ( !SO->_is_nil() ) + return SO->GetID(); + //Find or Create Hypothesis root SALOMEDS::GenericAttribute_var anAttr; SALOMEDS::AttributeName_var aName; @@ -172,9 +189,15 @@ const char* SMESHGUI_Swig::AddNewMesh(const char* IOR) return SALOMEDS::SObject::_narrow( newMesh )->GetID(); } -const char* SMESHGUI_Swig::AddNewHypothesis(const char* IOR) +const char* SMESH_Swig::AddNewHypothesis(const char* IOR) { MESSAGE("AddNewHypothesis"); + + // VSR: added temporarily - to be removed - objects are published automatically by engine + SALOMEDS::SObject_var SO = myStudy->FindObjectIOR( IOR ); + if ( !SO->_is_nil() ) + return SO->GetID(); + //Find or Create Hypothesis root SALOMEDS::SObject_var HypothesisRoot; SALOMEDS::GenericAttribute_var anAttr; @@ -216,9 +239,15 @@ const char* SMESHGUI_Swig::AddNewHypothesis(const char* IOR) return SALOMEDS::SObject::_narrow(newHypo)->GetID(); } -const char* SMESHGUI_Swig::AddNewAlgorithms(const char* IOR) +const char* SMESH_Swig::AddNewAlgorithms(const char* IOR) { MESSAGE("AddNewAlgorithms"); + + // VSR: added temporarily - to be removed - objects are published automatically by engine + SALOMEDS::SObject_var SO = myStudy->FindObjectIOR( IOR ); + if ( !SO->_is_nil() ) + return SO->GetID(); + //Find or Create Algorithms root SALOMEDS::SObject_var AlgorithmsRoot; SALOMEDS::GenericAttribute_var anAttr; @@ -260,7 +289,7 @@ const char* SMESHGUI_Swig::AddNewAlgorithms(const char* IOR) return SALOMEDS::SObject::_narrow(newHypo)->GetID(); } -void SMESHGUI_Swig::SetShape(const char* ShapeEntry, const char* MeshEntry) +void SMESH_Swig::SetShape(const char* ShapeEntry, const char* MeshEntry) { SALOMEDS::SObject_var SO_MorSM = myStudy->FindObjectID( MeshEntry ); SALOMEDS::SObject_var SO_GeomShape = myStudy->FindObjectID( ShapeEntry ); @@ -271,7 +300,7 @@ void SMESHGUI_Swig::SetShape(const char* ShapeEntry, const char* MeshEntry) } } -void SMESHGUI_Swig::SetHypothesis(const char* Mesh_Or_SubMesh_Entry, const char* Hypothesis_Entry) +void SMESH_Swig::SetHypothesis(const char* Mesh_Or_SubMesh_Entry, const char* Hypothesis_Entry) { SALOMEDS::SObject_var SO_MorSM = myStudy->FindObjectID( Mesh_Or_SubMesh_Entry ); SALOMEDS::SObject_var SO_Hypothesis = myStudy->FindObjectID( Hypothesis_Entry ); @@ -300,7 +329,7 @@ void SMESHGUI_Swig::SetHypothesis(const char* Mesh_Or_SubMesh_Entry, const char* myStudyBuilder->Addreference (SO,SO_Hypothesis); } } -void SMESHGUI_Swig::SetAlgorithms(const char* Mesh_Or_SubMesh_Entry, const char* Algorithms_Entry) +void SMESH_Swig::SetAlgorithms(const char* Mesh_Or_SubMesh_Entry, const char* Algorithms_Entry) { SALOMEDS::SObject_var SO_MorSM = myStudy->FindObjectID( Mesh_Or_SubMesh_Entry ); SALOMEDS::SObject_var SO_Algorithms = myStudy->FindObjectID( Algorithms_Entry ); @@ -329,7 +358,7 @@ void SMESHGUI_Swig::SetAlgorithms(const char* Mesh_Or_SubMesh_Entry, const char* } } -void SMESHGUI_Swig::UnSetHypothesis(const char* Applied_Hypothesis_Entry ) +void SMESH_Swig::UnSetHypothesis(const char* Applied_Hypothesis_Entry ) { SALOMEDS::SObject_var SO_Applied_Hypothesis = myStudy->FindObjectID( Applied_Hypothesis_Entry ); if ( !SO_Applied_Hypothesis->_is_nil() ) @@ -337,7 +366,7 @@ void SMESHGUI_Swig::UnSetHypothesis(const char* Applied_Hypothesis_Entry ) } -const char* SMESHGUI_Swig::AddSubMesh(const char* SO_Mesh_Entry, const char* SM_IOR, int ST) +const char* SMESH_Swig::AddSubMesh(const char* SO_Mesh_Entry, const char* SM_IOR, int ST) { SALOMEDS::SObject_var SO_Mesh = myStudy->FindObjectID( SO_Mesh_Entry ); if ( !SO_Mesh->_is_nil() ) { @@ -366,6 +395,9 @@ const char* SMESHGUI_Swig::AddSubMesh(const char* SO_Mesh_Entry, const char* SM_ aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr); aSelAttr->SetSelectable(false); } + + free(Name); + SALOMEDS::SObject_var SO = myStudyBuilder->NewObject (SubmeshesRoot); anAttr = myStudyBuilder->FindOrCreateAttribute(SO, "AttributeIOR"); anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr); @@ -375,7 +407,7 @@ const char* SMESHGUI_Swig::AddSubMesh(const char* SO_Mesh_Entry, const char* SM_ return ""; } -const char* SMESHGUI_Swig::AddSubMeshOnShape(const char* Mesh_Entry, const char* GeomShape_Entry, +const char* SMESH_Swig::AddSubMeshOnShape(const char* Mesh_Entry, const char* GeomShape_Entry, const char* SM_IOR, int ST) { SALOMEDS::SObject_var SO_GeomShape = myStudy->FindObjectID( GeomShape_Entry ); @@ -390,12 +422,12 @@ const char* SMESHGUI_Swig::AddSubMeshOnShape(const char* Mesh_Entry, const char* return ""; } -void SMESHGUI_Swig::CreateAndDisplayActor( const char* Mesh_Entry ) +void SMESH_Swig::CreateAndDisplayActor( const char* Mesh_Entry ) { // SMESH_Actor* Mesh = smeshGUI->ReadScript(aM); } -void SMESHGUI_Swig::SetName(const char* Entry, const char* Name) +void SMESH_Swig::SetName(const char* Entry, const char* Name) { SALOMEDS::SObject_var SO = myStudy->FindObjectID( Entry ); SALOMEDS::GenericAttribute_var anAttr; @@ -408,7 +440,7 @@ void SMESHGUI_Swig::SetName(const char* Entry, const char* Name) } -void SMESHGUI_Swig::setOrb() +void SMESH_Swig::setOrb() { try { ORB_INIT &init = *SINGLETON_::Instance(); @@ -420,3 +452,16 @@ void SMESHGUI_Swig::setOrb() } ASSERT(! CORBA::is_nil(_orb)); } + +//======================================================================= +//function : SetMeshIcon +//purpose : +//======================================================================= + +void SMESH_Swig::SetMeshIcon(const char* Mesh_Entry, const bool isComputed) +{ + SALOMEDS::SObject_var mesh = myStudy->FindObjectID( Mesh_Entry ); + if ( !mesh->_is_nil() ) + SMESH::ModifiedMesh( mesh, isComputed ); +} +