+ // Algorithm selection
+ QGroupBox* radioBottomGroup = new QGroupBox( tr("GHS3D_ALGO_SELECTION"), myStdGroup );
+ myRadioBottomGroup = new QButtonGroup( radioBottomGroup );
+
+ QRadioButton * GM_MSH = new QRadioButton(tr("GHS3D_ALGO_MGTETRA"), radioBottomGroup );
+ QRadioButton * GM_MSH_HPC = new QRadioButton(tr("GHS3D_ALGO_MGTETRAHPC"), radioBottomGroup );
+
+ myRadioBottomGroup->addButton( GM_MSH, 1 );
+ myRadioBottomGroup->addButton( GM_MSH_HPC, 0 );
+ GM_MSH->setChecked( true );
+
+ QGridLayout* radioBottomLayout = new QGridLayout( radioBottomGroup );
+ radioBottomLayout->setSpacing( 4 );
+ radioBottomLayout->setMargin( 11 );
+ radioBottomLayout->addWidget( GM_MSH, 0, 0, 1, 1 );
+ radioBottomLayout->addWidget( GM_MSH_HPC, 0, 1, 1, 1 );
+
+ // Main parameters
+ QGroupBox* mainGroup = new QGroupBox( tr("GHS3D_MAIN_PARAMS"), myStdGroup );
+ QLabel* optimizatiolLevelLbl = new QLabel( tr( "GHS3D_OPTIMIZATIOL_LEVEL" ), mainGroup );
+ QLabel* pthreadModeLbl = new QLabel( tr( "GHS3D_PTHREAD_MODE" ), mainGroup );
+ QLabel* parallelStrat = new QLabel( tr( "GHS3D_PARALLE_STRAT" ), mainGroup );
+
+ myOptimizationLevelCombo = new QComboBox( mainGroup );
+ myMinSizeCheck = new QCheckBox( tr("GHS3D_MIN_SIZE"), mainGroup );
+ myMaxSizeCheck = new QCheckBox( tr("GHS3D_MAX_SIZE"), mainGroup );
+ myNumOfThreadsCheck = new QCheckBox( tr("GHS3D_THREADS_SIZE"), mainGroup );
+ myPthreadMode = new QComboBox( mainGroup );
+ myParallelMode = new QComboBox( mainGroup );
+
+ myMinSizeSpin = new SMESHGUI_SpinBox( mainGroup );
+ myMaxSizeSpin = new SMESHGUI_SpinBox( mainGroup );
+ myNumOfThreadsSpin = new SalomeApp_IntSpinBox( 1, 128, 1, mainGroup );
+
+ myMinSizeCheck->setChecked( false );
+ myMaxSizeCheck->setChecked( false );
+ myNumOfThreadsCheck->setChecked( false );
+
+ myMinSizeSpin->RangeStepAndValidator(0, COORD_MAX, 10.0, "length_precision");
+ myMaxSizeSpin->RangeStepAndValidator(0, COORD_MAX, 10.0, "length_precision");
+ myNumOfThreadsSpin->setValue( 4 );
+
+ myMinSizeSpin ->setEnabled( false );
+ myMaxSizeSpin ->setEnabled( false );
+ myNumOfThreadsSpin->setEnabled(false);
+ myPthreadMode ->setEnabled( false );
+ myParallelMode->setEnabled( false );
+
+ // ACTIONS ON BUTTOMS
+ connect( myMinSizeCheck, SIGNAL( toggled(bool)), myMinSizeSpin, SLOT( setEnabled(bool)));
+ connect( myMaxSizeCheck, SIGNAL( toggled(bool)), myMaxSizeSpin, SLOT( setEnabled(bool)));
+ connect( myNumOfThreadsCheck, SIGNAL( toggled(bool)), myNumOfThreadsSpin, SLOT( setEnabled(bool)));
+ connect( myNumOfThreadsCheck, SIGNAL( toggled(bool)), this, SLOT( onNumOfThreadsCheck() ));
+ connect( myNumOfThreadsCheck, SIGNAL( toggled(bool)), this, SLOT( onNumOfThreadsCheck() ));
+ connect( GM_MSH, SIGNAL( toggled( bool )),this, SLOT( onRadioButtomSelect() ));
+
+ QGridLayout* mainLayout = new QGridLayout( mainGroup );
+ mainLayout->setSpacing( 12 );
+ mainLayout->setMargin( 11 );
+ mainLayout->addWidget( optimizatiolLevelLbl, 0, 0, 1, 1 );
+ mainLayout->addWidget( myOptimizationLevelCombo, 0, 1, 1, 1 );
+ mainLayout->addWidget( myMinSizeCheck, 1, 0, 1, 1 );
+ mainLayout->addWidget( myMinSizeSpin, 1, 1, 1, 1 );
+ mainLayout->addWidget( myMaxSizeCheck, 2, 0, 1, 1 );
+ mainLayout->addWidget( myMaxSizeSpin, 2, 1, 1, 1 );
+ mainLayout->addWidget( myNumOfThreadsCheck, 3, 0, 1, 1 );
+ mainLayout->addWidget( myNumOfThreadsSpin, 3, 1, 1, 1 );
+ mainLayout->addWidget( pthreadModeLbl, 4, 0, 1, 1 );
+ mainLayout->addWidget( myPthreadMode, 4, 1, 1, 1 );
+ mainLayout->addWidget( parallelStrat, 5, 0, 1, 1 );
+ mainLayout->addWidget( myParallelMode, 5, 1, 1, 1 );
+
+ // Volume proximity
+
+ QGroupBox* proxyGroup = new QGroupBox( tr("GHS3D_VOLUME_PROXIMITY"), myStdGroup );
+ myGradationCheck = new QCheckBox( tr("GHS3D_GRADATION"), proxyGroup );
+ myGradationSpin = new SMESHGUI_SpinBox( proxyGroup );
+ myGradationSpin->RangeStepAndValidator(1, COORD_MAX, 0.1, "length_precision");
+ myGradationSpin->setEnabled( false );
+ connect( myGradationCheck, SIGNAL( toggled(bool)), myGradationSpin, SLOT( setEnabled(bool)));
+ myUseProximityGroup = new QGroupBox( tr("GHS3D_USE_VOLUME_PROXIMITY"), proxyGroup );
+ myUseProximityGroup->setCheckable( true );
+ //myUseProximityGroup->setChecked( false );
+ QLabel* nbProximityLayersLabel = new QLabel( tr("GHS3D_NB_LAYERS"));
+ myNbProximityLayers = new SalomeApp_IntSpinBox( 2, 1e6, 1, proxyGroup );
+
+ QHBoxLayout* useProxyLayout = new QHBoxLayout( myUseProximityGroup );
+ useProxyLayout->addWidget( nbProximityLayersLabel );
+ useProxyLayout->addWidget( myNbProximityLayers );
+
+ QGridLayout* proxyLayout = new QGridLayout( proxyGroup );
+ proxyLayout->setSpacing( 6 );
+ proxyLayout->setMargin( 11 );
+ proxyLayout->addWidget( myGradationCheck, 0, 0, 1, 1 );
+ proxyLayout->addWidget( myGradationSpin, 0, 1, 1, 1 );
+ proxyLayout->addWidget( myUseProximityGroup, 1, 0, 1, 2 );
+
+ // Other parameters
+
+ QGroupBox* otherGroup = new QGroupBox( tr("GHS3D_OTHER_PARAMETERS"), myStdGroup );
+ myToMeshHolesCheck = new QCheckBox( tr( "GHS3D_TO_MESH_HOLES" ), otherGroup );
+ myToMakeGroupsOfDomains = new QCheckBox( tr( "GHS3D_TO_MAKE_DOMAIN_GROUPS" ), otherGroup );
+
+ QGridLayout* otherLayout = new QGridLayout( otherGroup );
+ otherLayout->setSpacing( 6 );
+ otherLayout->setMargin( 11 );
+ otherLayout->addWidget( myToMeshHolesCheck, 0, 0 );
+ otherLayout->addWidget( myToMakeGroupsOfDomains, 1, 0 );
+
+ aStdLayout->addWidget( radioBottomGroup,row++, 0, 1, 2 );
+ aStdLayout->addWidget( mainGroup, row++, 0, 1, 2 );
+ aStdLayout->addWidget( proxyGroup, row++, 0, 1, 2 );
+ aStdLayout->addWidget( otherGroup, row++, 0, 1, 2 );
+
+ myPthreadMode->addItems( QStringList() << tr( "MODE_NONE" ) << tr( "MODE_AGGRESSIVE" ) << tr( "MODE_SAFE" ) );
+ myParallelMode->addItems( QStringList() << tr( "MODE_NONE" ) << tr( "MODE_REPRODUCIBLE_GIVEN_MAX_THREADS" ) << tr( "MODE_REPRODUCIBLE" ) << tr( "MODE_AGGRESSIVE" ) );