Salome HOME
bos #32737 Allow to choose between MG-Tetra and MG-Tetra_HPC multithread
[plugins/ghs3dplugin.git] / src / GUI / GHS3DPluginGUI_HypothesisCreator.h
index 4f979dce8c9d15eaa3734742e3aada959843c898..7a69145ba1817a21dfb1f211ea2252130146ecf7 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2004-2019  CEA/DEN, EDF R&D
+// Copyright (C) 2004-2022  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -49,6 +49,7 @@
 #include CORBA_SERVER_HEADER(SMESH_Mesh)
 
 class QWidget;
+class QButtonGroup;
 class QComboBox;
 class QCheckBox;
 class QLineEdit;
@@ -56,6 +57,7 @@ class QSpinBox;
 class QTableWidget;
 class QTableWidgetItem;
 class QHeaderView;
+class QGroupBox;
 
 class GHS3DPluginGUI_AdvWidget;
 class LightApp_SelectionMgr;
@@ -142,16 +144,21 @@ typedef std::set< TEnfMesh*, CompareEnfMeshes > TEnfMeshList;
 
 typedef struct
 {
-  bool    myToMeshHoles,myToMakeGroupsOfDomains,myKeepFiles,myToCreateNewNodes,myBoundaryRecovery,myFEMCorrection,myRemoveInitialCentralPoint,
-          myLogInStandardOutput, myRemoveLogOnSuccess;
-  float   myMaximumMemory;
-  float   myInitialMemory;
   int     myOptimizationLevel;
-  QString myName,myWorkingDir,myTextOption;
+  double  myMinSize, myMaxSize, myMinSizeDefault, myMaxSizeDefault;
   double  myGradation;
+  int     myNbProximityLayers;
+  bool    myUseMinSize, myUseMaxSize, myUseGradation, myUseProximity;
+  bool    myToMeshHoles, myToMakeGroupsOfDomains;
+  bool    myToCreateNewNodes,myBoundaryRecovery,myFEMCorrection,myRemoveInitialCentralPoint,
+          myKeepFiles,myLogInStandardOutput, myRemoveLogOnSuccess;
+  float   myInitialMemory, myMaximumMemory;
+  QString myName,myWorkingDir;
   short   myVerboseLevel;
   TEnfVertexList myEnforcedVertices;
   TEnfMeshList myEnforcedMeshes;
+  short   myAlgorithm, myNumOfThreads, myPthreadMode, myParallelMode;
+  bool    myUseNumOfThreads;
 
   int myOptimization, mySplitOverConstrained, myPThreadsMode, myNumberOfThreads;
   bool mySmoothOffSlivers;
@@ -182,6 +189,7 @@ protected:
   virtual QString  type() const;
 
 protected slots:
+  void                onAddOption();
   void                onToMeshHoles(bool);
   void                onDirBtnClicked();
   void                updateWidgets();
@@ -203,6 +211,8 @@ protected slots:
   void                onRemoveEnforcedMesh();
   //void                synchronizeEnforcedMesh();
   void                checkEnfMeshIsDefined();
+  void                onRadioButtonSelect();
+  void                onNumOfThreadsCheck();
   
 signals:
   void                vertexDefined(bool);
@@ -219,9 +229,23 @@ private:
 private:
   QWidget*              myStdGroup;
   QLineEdit*            myName;
-  QCheckBox*            myToMeshHolesCheck;
-  QCheckBox*            myToMakeGroupsOfDomains;
+  // main
   QComboBox*            myOptimizationLevelCombo;
+  QCheckBox*            myMinSizeCheck;
+  QCheckBox*            myMaxSizeCheck;
+  SMESHGUI_SpinBox*     myMinSizeSpin;
+  SMESHGUI_SpinBox*     myMaxSizeSpin;
+  QCheckBox*            myNumOfThreadsCheck;
+  SalomeApp_IntSpinBox* myNumOfThreadsSpin;
+  mutable double        myMinSizeDefault, myMaxSizeDefault;
+  // proximity
+  QCheckBox*            myGradationCheck;
+  SMESHGUI_SpinBox*     myGradationSpin;
+  QGroupBox*            myUseProximityGroup;
+  SalomeApp_IntSpinBox* myNbProximityLayers;
+  // other
+  QCheckBox*            myToMakeGroupsOfDomains;
+  QCheckBox*            myToMeshHolesCheck;
 
   QComboBox*            myOptimizationCombo;
   QComboBox*            mySplitOverConstrainedCombo;
@@ -229,9 +253,14 @@ private:
   SalomeApp_IntSpinBox* myNumberOfThreadsSpin;
   QCheckBox*            mySmoothOffSliversCheck;
   QCheckBox*            myCreateNewNodesCheck;
+  QComboBox*            myPthreadMode;
+  QComboBox*            myParallelMode;
+  QButtonGroup*         myRadioBottomGroup;
 
   QWidget*                  myAdvGroup;
   GHS3DPluginGUI_AdvWidget* myAdvWidget;
+  mutable GHS3DPlugin::string_array_var myOptions, myCustomOptions;
+
   
   QWidget*              myEnfGroup;
   QPixmap               iconVertex, iconCompound;