X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FStdMeshersGUI%2FStdMeshersGUI.cxx;h=8682545d6aec28b2586667f57157ffa73f79561c;hp=e272665f8bd3d81953018cec3add3764d733dd03;hb=0febe018bcde111dc7aca1f3e44d4aa2995b59a2;hpb=0de991099a7f8bea2687d44c20021be3066f3615 diff --git a/src/StdMeshersGUI/StdMeshersGUI.cxx b/src/StdMeshersGUI/StdMeshersGUI.cxx index e272665f8..8682545d6 100644 --- a/src/StdMeshersGUI/StdMeshersGUI.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI.cxx @@ -25,24 +25,27 @@ // Module : SMESH // $Header$ -using namespace std; - -#include +#include "SALOMEconfig.h" #include CORBA_SERVER_HEADER(SMESH_BasicHypothesis) #include "SMESHGUI.h" +#include "SMESHGUI_Utils.h" #include "SMESHGUI_Hypotheses.h" +#include "SMESHGUI_HypothesesUtils.h" -#include "StdMeshersGUI_LocalLengthDlg.h" -#include "StdMeshersGUI_NbSegmentsDlg.h" -#include "StdMeshersGUI_MaxElementAreaDlg.h" -#include "StdMeshersGUI_MaxElementVolumeDlg.h" +#include "SMESHGUI_aParameterDlg.h" +#include "StdMeshersGUI_Parameters.h" +#include "StdMeshersGUI_CreateStdHypothesisDlg.h" #include "QAD_Desktop.h" #include "QAD_ResourceMgr.h" #include +#include "utilities.h" + +using namespace std; + //============================================================================= /*! class HypothesisCreator * @@ -79,7 +82,7 @@ void StdMeshersGUI_HypothesisCreator::CreateHypothesis // Get default name for hypothesis/algorithm creation char* sHypType = (char*)myHypType.latin1(); - HypothesisData* aHypData = mySMESHGUI->GetHypothesisData(sHypType); + HypothesisData* aHypData = SMESH::GetHypothesisData(sHypType); QString aHypName; if (aHypData) aHypName = aHypData->Label; @@ -89,24 +92,16 @@ void StdMeshersGUI_HypothesisCreator::CreateHypothesis // Create hypothesis/algorithm if (isAlgo) { - mySMESHGUI->CreateHypothesis(myHypType, aHypName, isAlgo); + SMESH::CreateHypothesis(myHypType, aHypName, isAlgo); } else { + if ( StdMeshersGUI_Parameters::HasParameters( myHypType )) // Show Dialog for hypothesis creation - if (myHypType == "LocalLength") - StdMeshersGUI_LocalLengthDlg *aDlg = new StdMeshersGUI_LocalLengthDlg(myHypType, parent, ""); - else if (myHypType == "NumberOfSegments") - StdMeshersGUI_NbSegmentsDlg *aDlg = new StdMeshersGUI_NbSegmentsDlg(myHypType, parent, ""); - else if (myHypType == "MaxElementArea") - StdMeshersGUI_MaxElementAreaDlg *aDlg = new StdMeshersGUI_MaxElementAreaDlg(myHypType, parent, ""); - else if (myHypType == "MaxElementVolume") - StdMeshersGUI_MaxElementVolumeDlg *aDlg = new StdMeshersGUI_MaxElementVolumeDlg(myHypType, parent, ""); - else if (myHypType == "LengthFromEdges") - mySMESHGUI->CreateHypothesis(myHypType, aHypName, isAlgo); // without GUI - else if (myHypType == "NotConformAllowed") - mySMESHGUI->CreateHypothesis(myHypType, aHypName, isAlgo); // without GUI - else ; + StdMeshersGUI_CreateStdHypothesisDlg *aDlg = + new StdMeshersGUI_CreateStdHypothesisDlg(myHypType, parent, ""); + else + SMESH::CreateHypothesis(myHypType, aHypName, isAlgo); // without GUI } } @@ -120,93 +115,30 @@ void StdMeshersGUI_HypothesisCreator::EditHypothesis { MESSAGE("StdMeshersGUI_HypothesisCreator::EditHypothesis"); - Standard_Boolean res = Standard_True; SALOMEDS::Study::ListOfSObject_var listSOmesh = - mySMESHGUI->GetMeshesUsingAlgoOrHypothesis(theHyp); - QString Name = theHyp->GetName(); - if (Name.compare("LocalLength") == 0) - { - StdMeshers::StdMeshers_LocalLength_var LL = - StdMeshers::StdMeshers_LocalLength::_narrow(theHyp); - double beforeLength = LL->GetLength() ; - double Length = mySMESHGUI->Parameter(res, - beforeLength, - QObject::tr("SMESH_LOCAL_LENGTH_HYPOTHESIS"), - QObject::tr("SMESH_VALUE"), - 1.0E-5, 1E6, 6); - if (res && Length != beforeLength) - { - LL->SetLength(Length); - for (int i=0; ilength(); i++) - { - mySMESHGUI->GetStudyAPI().ModifiedMesh(listSOmesh[i], false); - } - } - } - else if (Name.compare("NumberOfSegments") == 0) - { - StdMeshers::StdMeshers_NumberOfSegments_var NOS = - StdMeshers::StdMeshers_NumberOfSegments::_narrow(theHyp); - int beforeNbSeg = NOS->GetNumberOfSegments() ; - int NbSeg = mySMESHGUI->Parameter(res, - beforeNbSeg, - QObject::tr("SMESH_NB_SEGMENTS_HYPOTHESIS"), - QObject::tr("SMESH_VALUE"), - 1, 1000000); - if (res && NbSeg != beforeNbSeg) - { - NOS->SetNumberOfSegments(NbSeg); - for (int i=0; ilength(); i++) - { - SALOMEDS::SObject_var SO = listSOmesh[i] ; - mySMESHGUI->GetStudyAPI().ModifiedMesh(listSOmesh[i], false); - } - } - } - else if (Name.compare("MaxElementArea") == 0) - { - StdMeshers::StdMeshers_MaxElementArea_var MEA = - StdMeshers::StdMeshers_MaxElementArea::_narrow(theHyp); - double beforeMaxArea = MEA->GetMaxElementArea(); - double MaxArea = mySMESHGUI->Parameter(res, - beforeMaxArea, - QObject::tr("SMESH_MAX_ELEMENT_AREA_HYPOTHESIS"), - QObject::tr("SMESH_VALUE"), - 1.0E-5, 1E6, 6); - if (res && MaxArea != beforeMaxArea) - { - MEA->SetMaxElementArea(MaxArea); - for (int i=0; ilength(); i++) - { - mySMESHGUI->GetStudyAPI().ModifiedMesh(listSOmesh[i], false); - } - } - } - else if (Name.compare("MaxElementVolume") == 0) - { - StdMeshers::StdMeshers_MaxElementVolume_var MEV = - StdMeshers::StdMeshers_MaxElementVolume::_narrow(theHyp); - double beforeMaxVolume = MEV->GetMaxElementVolume() ; - double MaxVolume = mySMESHGUI->Parameter(res, - beforeMaxVolume, - QObject::tr("SMESH_MAX_ELEMENT_VOLUME_HYPOTHESIS"), - QObject::tr("SMESH_VALUE"), - 1.0E-5, 1E6, 6); - if (res && MaxVolume != beforeMaxVolume) - { - MEV->SetMaxElementVolume(MaxVolume); - for (int i=0; ilength(); i++) - { - mySMESHGUI->GetStudyAPI().ModifiedMesh(listSOmesh[i], false); - } - } + SMESH::GetMeshesUsingAlgoOrHypothesis(theHyp); + + list paramList; + StdMeshersGUI_Parameters::GetParameters( theHyp, paramList ); + + bool modified = false; + if ( SMESHGUI_aParameterDlg::Parameters( paramList, QObject::tr("SMESH_VALUE")) ) + modified = StdMeshersGUI_Parameters::SetParameters( theHyp, paramList ); + + if ( modified ) { + //set new Attribute Comment for hypothesis which parameters were modified + QString aParams = ""; + StdMeshersGUI_Parameters::GetParameters( theHyp, paramList, aParams ); + SALOMEDS::SObject_var SHyp = SMESH::FindSObject(theHyp); + if (!SHyp->_is_nil()) + if (!aParams.isEmpty()) { + SMESH::SetValue(SHyp, aParams); + //mySMESHGUI->GetActiveStudy()->updateObjBrowser(true); + } + + for (int i=0; ilength(); i++) + SMESH::ModifiedMesh(listSOmesh[i], false); } -// else if (Name.compare("Regular_1D") == 0) -// {} -// else if (Name.compare("MEFISTO_2D") == 0) -// {} - else - {} } //=============================================================================