aStdLayout->addWidget( myName, row++, 1, 1, 1 );
}
- myToMeshHolesCheck = new QCheckBox( tr( "HYBRID_TO_MESH_HOLES" ), myStdGroup );
- //aStdLayout->addWidget( myToMeshHolesCheck, row, 0, 1, 1 ); #stay, not view, may be used tomorrow...
- myToMeshHolesCheck->hide();
- myToMakeGroupsOfDomains = new QCheckBox( tr( "HYBRID_TO_MAKE_DOMAIN_GROUPS" ), myStdGroup );
- //aStdLayout->addWidget( myToMakeGroupsOfDomains, row++, 1, 1, 1 ); #stay, not view, may be used tomorrow...
- myToMakeGroupsOfDomains->hide();
- //aStdLayout->addWidget( new QLabel( tr( "HYBRID_OPTIMIZATIOL_LEVEL" ), myStdGroup ), row, 0, 1, 1 );
- myOptimizationLevelCombo = new QComboBox( myStdGroup );
- //aStdLayout->addWidget( myOptimizationLevelCombo, row++, 1, 1, 1 ); #stay, not view, may be used tomorrow...
- myOptimizationLevelCombo->hide();
-
- QStringList types;
- types << tr( "LEVEL_NONE" ) << tr( "LEVEL_LIGHT" ) << tr( "LEVEL_MEDIUM" ) << tr( "LEVEL_STANDARDPLUS" ) << tr( "LEVEL_STRONG" );
- myOptimizationLevelCombo->addItems( types );
-
- QLabel* aLabel = new QLabel( tr( "HYBRID_BOUNDARY_LAYERS_GROWTH" ), myStdGroup );
- aLabel->setToolTip(tr( "HYBRID_BOUNDARY_LAYERS_HELP" ));
- aStdLayout->addWidget( aLabel, row, 0, 1, 1 );
- myBoundaryLayersGrowthCombo = new QComboBox( myStdGroup );
- myBoundaryLayersGrowthCombo->setToolTip(tr( "HYBRID_BOUNDARY_LAYERS_HELP" ));
-
- aStdLayout->addWidget( myBoundaryLayersGrowthCombo, row++, 1, 1, 1 );
-
- QStringList typesBoundaryLayersGrowth;
- typesBoundaryLayersGrowth << tr( "HYBRID_LAYER_GROWTH_DOWNWARD" ) << tr( "HYBRID_LAYER_GROWTH_UPWARD" );
- myBoundaryLayersGrowthCombo->addItems( typesBoundaryLayersGrowth );
-
- aStdLayout->addWidget( new QLabel( tr( "HYBRID_HeightFirstLayer" ), myStdGroup ), row, 0, 1, 1 );
- myHeightFirstLayerSpin = new SMESHGUI_SpinBox( myStdGroup );
- myHeightFirstLayerSpin->RangeStepAndValidator(0., COORD_MAX, .1, "length_precision");
- aStdLayout->addWidget( myHeightFirstLayerSpin, row++, 1, 1, 1 );
-
- aStdLayout->addWidget( new QLabel( tr( "HYBRID_NbOfBoundaryLayers" ), myStdGroup ), row, 0, 1, 1 );
- myNbOfBoundaryLayersSpin = new QSpinBox( myStdGroup );
- aStdLayout->addWidget( myNbOfBoundaryLayersSpin, row++, 1, 1, 1 );
-
- aStdLayout->addWidget( new QLabel( tr( "HYBRID_BoundaryLayersProgression" ), myStdGroup ), row, 0, 1, 1 );
- myBoundaryLayersProgressionSpin = new SMESHGUI_SpinBox( myStdGroup );
- myBoundaryLayersProgressionSpin->RangeStepAndValidator(0., 10., .1, "length_precision");
- aStdLayout->addWidget( myBoundaryLayersProgressionSpin, row++, 1, 1, 1 );
-
- aStdLayout->addWidget( new QLabel( tr( "COLLISION_MODE" ), myStdGroup ), row, 0, 1, 1 );
- myCollisionModeCombo = new QComboBox( myStdGroup );
- aStdLayout->addWidget( myCollisionModeCombo, row++, 1, 1, 1 );
-
- QStringList typescoll;
- typescoll << tr( "COLLISION_DECREASE" ) << tr( "COLLISION_STOP" );
- myCollisionModeCombo->addItems( typescoll );
-
- aStdLayout->addWidget( new QLabel( tr( "HYBRID_GENERATION_ELEMENT" ), myStdGroup ), row, 0, 1, 1 );
- myElementGenerationCombo = new QComboBox( myStdGroup );
- aStdLayout->addWidget( myElementGenerationCombo, row++, 1, 1, 1 );
-
- QStringList typesElementGeneration;
- typesElementGeneration << tr( "HYBRID_GENERATION_TETRA_DOMINANT" ) << tr( "HYBRID_GENERATION_HEXA_DOMINANT" ) << tr( "HYBRID_GENERATION_CARTESIAN_CORE" );
- myElementGenerationCombo->addItems( typesElementGeneration );
-
- aStdLayout->addWidget( new QLabel( tr( "HYBRID_CORE_SIZE" ), myStdGroup ), row, 0, 1, 1 );
- myCoreSizeSpin = new SMESHGUI_SpinBox( myStdGroup );
- myCoreSizeSpin->RangeStepAndValidator(0., COORD_MAX, 10., "length_precision");
- aStdLayout->addWidget( myCoreSizeSpin, row++, 1, 1, 1 );
-
- myAddMultinormalsCheck = new QCheckBox( tr( "HYBRID_ADD_MULTINORMALS" ), myStdGroup );
- aStdLayout->addWidget( myAddMultinormalsCheck, row++, 0, 1, 1 );
-
- aStdLayout->addWidget( new QLabel( tr( "HYBRID_MULTINORMAL_ANGLE" ), myStdGroup ), row, 0, 1, 1 );
- myMultinormalsAngleSpin = new SMESHGUI_SpinBox( myStdGroup );
- myMultinormalsAngleSpin->RangeStepAndValidator(0., 90., 2., "threshold");
- aStdLayout->addWidget( myMultinormalsAngleSpin, row++, 1, 1, 1 );
-
- mySmoothNormalsCheck = new QCheckBox( tr( "HYBRID_SMOOTH_NORMALS" ), myStdGroup );
- aStdLayout->addWidget( mySmoothNormalsCheck, row++, 0, 1, 1 );
- aStdLayout->setRowStretch( row, 10 );
+ myStdWidget = new HYBRIDPluginGUI_StdWidget( myStdGroup );
+ myStdWidget->verticalLayout->setMargin( 0 );
+ aStdLayout->addWidget( myStdWidget, row++, 0, 1, 2 );
// advanced parameters
- myAdvGroup = new QWidget();
- QGridLayout* anAdvLayout = new QGridLayout( myAdvGroup );
- anAdvLayout->setSpacing( 6 );
- anAdvLayout->setMargin( 11 );
- myAdvWidget = new HYBRIDPluginGUI_AdvWidget(myAdvGroup);
- anAdvLayout->addWidget( myAdvWidget);
-
- myAdvWidget->maxMemoryCheck->setText(tr( "MAX_MEMORY_SIZE" ));
- myAdvWidget->initialMemoryCheck->setText(tr( "INIT_MEMORY_SIZE" ));
-
- myAdvWidget->maxMemorySpin->RangeStepAndValidator(20.0, 1e6, 10.0);
- myAdvWidget->maxMemorySpin->setValue( 128.0 );
-
- myAdvWidget->initialMemorySpin->RangeStepAndValidator(0.0, 1e6, 10.0);
- myAdvWidget->initialMemorySpin->setValue( 100.0 );
-
- myAdvWidget->initialMemoryLabel ->setText (tr( "MEGABYTE" ));
- myAdvWidget->maxMemoryLabel ->setText (tr( "MEGABYTE" ));
-
- myAdvWidget->workingDirectoryPushButton ->setText (tr( "SELECT_DIR" ));
- myAdvWidget->keepWorkingFilesCheck ->setText (tr( "KEEP_WORKING_FILES" ));
- myAdvWidget->verboseLevelLabel ->setText (tr( "VERBOSE_LEVEL" ));
- myAdvWidget->removeLogOnSuccessCheck ->setText (tr( "REMOVE_LOG_ON_SUCCESS" ));
- myAdvWidget->logInFileCheck ->setText (tr( "LOG_IN_FILE" ));
-
- myAdvWidget->memoryGroupBox ->setTitle(tr( "MEMORY_GROUP_TITLE" ));
- myAdvWidget->logGroupBox ->setTitle(tr( "LOG_GROUP_TITLE" ));
- myAdvWidget->advancedMeshingGroupBox ->setTitle(tr( "ADVANCED_MESHING_GROUP_TITLE" ));
-
- myAdvWidget->memoryGroupBox->hide();
-
- myAdvWidget->createNewNodesCheck->hide();
- //myAdvWidget->createNewNodesLabel->hide();
- myAdvWidget->removeInitialCentralPointCheck->hide();
- myAdvWidget->boundaryRecoveryCheck->hide();
- myAdvWidget->FEMCorrectionCheck->hide();
- myAdvWidget->gradationLabel->hide();
- myAdvWidget->gradationSpinBox->hide();
-
- myAdvWidget->createNewNodesCheck ->setText (tr( "TO_ADD_NODES" ));
- myAdvWidget->removeInitialCentralPointCheck->setText (tr( "NO_INITIAL_CENTRAL_POINT" ));
- myAdvWidget->boundaryRecoveryCheck ->setText (tr( "RECOVERY_VERSION" ));
- myAdvWidget->FEMCorrectionCheck ->setText (tr( "FEM_CORRECTION" ));
- myAdvWidget->gradationLabel ->setText (tr( "HYBRID_GRADATION" ));
- myAdvWidget->gradationSpinBox->RangeStepAndValidator(1.05, 5.0, 0.05, "length_precision");
+ myAdvWidget = new HYBRIDPluginGUI_AdvWidget( tab );
// Enforced vertices parameters
myEnfGroup = new QWidget();
// selection of faces for layers
QWidget* faceSelLayersGroup = new QWidget( dlg() );
- myLayersOnAllWrapCheck = new QCheckBox( tr( "HYBRID_LAYERS_ON_ALL_WRAP" ), faceSelLayersGroup );
+ //myLayersOnAllWrapCheck = new QCheckBox( tr( "HYBRID_LAYERS_ON_ALL_WRAP" ), faceSelLayersGroup );
QGridLayout* faceSelLayersLayout = new QGridLayout( faceSelLayersGroup );
- faceSelLayersLayout->addWidget(myLayersOnAllWrapCheck, 0, 0 );
+ //faceSelLayersLayout->addWidget(myLayersOnAllWrapCheck, 0, 0 );
myFacesLbl = new QLabel( tr("HYBRID_FACE_IDS"), faceSelLayersGroup );
faceSelLayersLayout->addWidget( myFacesLbl, 1, 0 );
// add tabs
tab->insertTab( STD_TAB, myStdGroup, tr( "SMESH_ARGUMENTS" ) );
- tab->insertTab( ADV_TAB, myAdvGroup, tr( "HYBRID_ADV_ARGS" ) );
+ tab->insertTab( ADV_TAB, myAdvWidget, tr( "HYBRID_ADV_ARGS" ) );
if ( aMainEntry.isEmpty() && aSubEntry.isEmpty() ) // mesh not based of geometry
faceSelLayersGroup->hide();
else {
// connections
connect( tab, SIGNAL( currentChanged ( int )), this, SLOT( onTabChanged( int ) ) );
- //connect( myLayersOnAllWrapCheck, SIGNAL( toggled( bool ) ), this, SLOT( onLayersOnAllWrap(bool)));
- connect( myLayersOnAllWrapCheck, SIGNAL( toggled( bool ) ), this, SLOT( updateWidgets() ) );
- //connect( myToMeshHolesCheck, SIGNAL( toggled( bool ) ), this, SLOT( onToMeshHoles(bool)));
- //connect( myAdvWidget->maxMemoryCheck, SIGNAL( toggled( bool ) ), this, SLOT( updateWidgets() ) );
- //connect( myAdvWidget->initialMemoryCheck, SIGNAL( toggled( bool ) ), this, SLOT( updateWidgets() ) );
- //connect( myAdvWidget->boundaryRecoveryCheck, SIGNAL( toggled( bool ) ), this, SLOT( updateWidgets() ) );
-
- //connect( myBoundaryLayersGrowthCombo, SIGNAL( toggled( bool ) ), this, SLOT( updateWidgets() ) );
- //connect( myElementGenerationCombo, SIGNAL( toggled( bool ) ), this, SLOT( updateWidgets() ) );
- connect( myAddMultinormalsCheck, SIGNAL( toggled( bool ) ), this, SLOT( updateWidgets() ) );
- connect( mySmoothNormalsCheck, SIGNAL( toggled( bool ) ), this, SLOT( updateWidgets() ) );
-
+ connect( myAdvWidget->addBtn, SIGNAL( clicked() ), this, SLOT( onAddOption() ) );
+ connect( myStdWidget->myBoundaryLayersSizeMode, SIGNAL( currentIndexChanged(int)), SLOT( updateWidgets()));
+ connect( myStdWidget->myImprinting, SIGNAL( currentIndexChanged(int)), SLOT( updateWidgets()));
+ connect( myStdWidget->mySnapping, SIGNAL( currentIndexChanged(int)), SLOT( updateWidgets()));
connect( myAdvWidget->logInFileCheck, SIGNAL( toggled( bool ) ), this, SLOT( updateWidgets() ) );
connect( myAdvWidget->keepWorkingFilesCheck, SIGNAL( toggled( bool ) ), this, SLOT( updateWidgets() ) );
connect( myAdvWidget->workingDirectoryPushButton, SIGNAL( clicked() ), this, SLOT( onDirBtnClicked() ) );
myEnfVertex = myEnfVertexWdg->GetObject< GEOM::GEOM_Object >(nbSelEnfVertex-1);
if (myEnfVertex == GEOM::GEOM_Object::_nil())
return;
- if (myEnfVertex->GetShapeType() == GEOM::VERTEX) {
- HYBRIDPluginGUI_HypothesisCreator* that = (HYBRIDPluginGUI_HypothesisCreator*)this;
+ if (myEnfVertex->GetShapeType() == GEOM::VERTEX)
+ {
GEOM::GEOM_IMeasureOperations_var measureOp = getGeomEngine()->GetIMeasureOperations();
if (CORBA::is_nil(measureOp))
return;
myEnforcedTableWidget->selectionModel()->clearSelection();
}
-void HYBRIDPluginGUI_HypothesisCreator::onLayersOnAllWrap(bool isOn)
-{
- // myToMakeGroupsOfDomains->setEnabled( isOn );
- // if ( !isOn )
- // myToMakeGroupsOfDomains->setChecked( false );
-}
-
-void HYBRIDPluginGUI_HypothesisCreator::onToMeshHoles(bool isOn)
-{
- // myToMakeGroupsOfDomains->setEnabled( isOn );
- // if ( !isOn )
- // myToMakeGroupsOfDomains->setChecked( false );
-}
-
void HYBRIDPluginGUI_HypothesisCreator::onDirBtnClicked()
{
QString dir = SUIT_FileDlg::getExistingDirectory( dlg(), myAdvWidget->workingDirectoryLineEdit->text(), QString() );
void HYBRIDPluginGUI_HypothesisCreator::updateWidgets()
{
- //customs automatic set
- //myToMakeGroupsOfDomains->setEnabled( myToMeshHolesCheck->isChecked() );
- //myAdvWidget->maxMemorySpin->setEnabled( myAdvWidget->maxMemoryCheck->isChecked() );
- //myAdvWidget->initialMemoryCheck->setEnabled( !myAdvWidget->boundaryRecoveryCheck->isChecked() );
- //myAdvWidget->initialMemorySpin->setEnabled( myAdvWidget->initialMemoryCheck->isChecked() && !myAdvWidget->boundaryRecoveryCheck->isChecked() );
- //myOptimizationLevelCombo->setEnabled( !myAdvWidget->boundaryRecoveryCheck->isChecked() );
- myMultinormalsAngleSpin->setEnabled( myAddMultinormalsCheck->isChecked() );
if ( sender() == myAdvWidget->logInFileCheck ||
sender() == myAdvWidget->keepWorkingFilesCheck )
{
- bool logFileRemovable = myAdvWidget->logInFileCheck->isChecked() &&
- !myAdvWidget->keepWorkingFilesCheck->isChecked();
-
+ bool logFileRemovable = ( myAdvWidget->logInFileCheck->isChecked() &&
+ !myAdvWidget->keepWorkingFilesCheck->isChecked() );
myAdvWidget->removeLogOnSuccessCheck->setEnabled( logFileRemovable );
}
- bool enabled = !myLayersOnAllWrapCheck->isChecked();
- myFacesLbl->setEnabled(enabled);
- myFaceSelectorLayers->setEnabled(enabled);
- if ( QTabWidget* tab = qobject_cast<QTabWidget*>( myStdGroup->parentWidget()->parentWidget() )) {
- tab->setTabEnabled( FACE_SEL_IMPRINTING_TAB, enabled );
- tab->setTabEnabled( FACE_SEL_SNAPPING_TAB, enabled );
+
+ myStdWidget->myCoreSize->setEnabled( myStdWidget->myCoreSizeEnabled->isChecked() );
+
+ if ( QTabWidget* tab = qobject_cast<QTabWidget*>( myStdGroup->parentWidget()->parentWidget() ))
+ {
+ bool isGlobal = myStdWidget->GetLayersOnAllWrap();
+ bool isImprinting = myStdWidget->myImprinting->currentIndex();
+ bool isSnapping = myStdWidget->mySnapping->currentIndex();
+ tab->setTabEnabled( FACE_SEL_LAYERS_TAB, !isGlobal );
+ tab->setTabEnabled( FACE_SEL_IMPRINTING_TAB, isImprinting );
+ tab->setTabEnabled( FACE_SEL_SNAPPING_TAB, isSnapping );
}
}
return false;
}
- return true;
+ HYBRIDPlugin::HYBRIDPlugin_Hypothesis_var h =
+ HYBRIDPlugin::HYBRIDPlugin_Hypothesis::_narrow( hypothesis() );
+
+ myAdvWidget->myOptionTable->setFocus();
+ QApplication::instance()->processEvents();
+
+ QString name, value;
+ bool isDefault, ok = true;
+ int iRow = 0, nbRows = myAdvWidget->myOptionTable->topLevelItemCount();
+ for ( ; iRow < nbRows; ++iRow )
+ {
+ QTreeWidgetItem* row = myAdvWidget->myOptionTable->topLevelItem( iRow );
+ myAdvWidget->GetOptionAndValue( row, name, value, isDefault );
+
+ if ( name.simplified().isEmpty() )
+ continue; // invalid custom option
+
+ if ( isDefault ) // not selected option
+ value.clear();
+
+ try {
+ h->SetOptionValue( name.toLatin1().constData(), value.toLatin1().constData() );
+ }
+ catch ( const SALOME::SALOME_Exception& ex )
+ {
+ msg = ex.details.text.in();
+ ok = false;
+ break;
+ }
+ }
+
+ if ( !ok )
+ {
+ h->SetOptionValues( myOptions ); // restore values
+ }
+
+ return ok;
}
void HYBRIDPluginGUI_HypothesisCreator::retrieveParams() const
if ( myName )
myName->setText( data.myName );
- myLayersOnAllWrapCheck ->setChecked ( data.myLayersOnAllWrap );
- myToMeshHolesCheck ->setChecked ( data.myToMeshHoles );
- myToMakeGroupsOfDomains ->setChecked ( data.myToMakeGroupsOfDomains );
- myOptimizationLevelCombo ->setCurrentIndex( data.myOptimizationLevel );
- myAdvWidget->maxMemoryCheck ->setChecked ( data.myMaximumMemory > 0 );
- myAdvWidget->maxMemorySpin ->setValue ( qMax( data.myMaximumMemory,
- myAdvWidget->maxMemorySpin->minimum() ));
- myAdvWidget->initialMemoryCheck ->setChecked ( data.myInitialMemory > 0 );
- myAdvWidget->initialMemorySpin ->setValue ( qMax( data.myInitialMemory,
- myAdvWidget->initialMemorySpin->minimum() ));
-
- myCollisionModeCombo ->setCurrentIndex( data.myCollisionMode );
- myBoundaryLayersGrowthCombo ->setCurrentIndex( data.myBoundaryLayersGrowth );
- myElementGenerationCombo ->setCurrentIndex( data.myElementGeneration );
- myAddMultinormalsCheck -> setChecked ( data.myAddMultinormals );
- mySmoothNormalsCheck -> setChecked ( data.mySmoothNormals );
- myHeightFirstLayerSpin -> setValue( data.myHeightFirstLayer );
- myNbOfBoundaryLayersSpin -> setValue( data.myNbOfBoundaryLayers );
- myBoundaryLayersProgressionSpin -> setValue( data.myBoundaryLayersProgression );
+ myStdWidget->SetLayersOnAllWrap( data.myLayersOnAllWrap );
+
+ myStdWidget->myNbOfBoundaryLayers ->setValue( data.myNbOfBoundaryLayers );
+ myStdWidget ->SetLayersOnAllWrap( data.myLayersOnAllWrap );
+ myStdWidget->myHeightFirstLayer ->setValue( data.myHeightFirstLayer );
+ myStdWidget->myHeightIsRelative ->setCurrentIndex( data.myHeightIsRelative );
+ myStdWidget->myBoundaryLayersGrowth ->setCurrentIndex( data.myBoundaryLayersGrowth );
+ myStdWidget->myBoundaryLayersMaxElemAngle->setValue( data.myBoundaryLayersMaxElemAngle );
+ myStdWidget->myBoundaryLayersProgression ->setValue( data.myBoundaryLayersProgression );
+ myStdWidget->myImprinting ->setCurrentIndex( data.myImprinting );
+ myStdWidget->mySnapping ->setCurrentIndex( data.mySnapping );
+ myStdWidget->myElementGeneration ->setCurrentIndex( data.myElementGeneration );
if (data.myCoreSize <= 0)
- myCoreSizeSpin->setText("");
+ myStdWidget->myCoreSize->setText("");
else
- myCoreSizeSpin -> setValue( data.myCoreSize );
- myMultinormalsAngleSpin -> setValue( data.myMultinormalsAngle );
+ myStdWidget->myCoreSize->setValue( data.myCoreSize );
+ myStdWidget->myCoreSizeEnabled->setChecked( data.myCoreSize > 0 );
+
myFaceSelectorLayers ->SetListOfIDs( data.myFaceWLIds );
myFaceSelectorImprinting ->SetListOfIDs( data.myFaceWIIds );
myFaceSelectorSnapping ->SetListOfIDs( data.myFaceWSIds );
myAdvWidget->workingDirectoryLineEdit ->setText ( data.myWorkingDir );
myAdvWidget->keepWorkingFilesCheck ->setChecked( data.myKeepFiles );
myAdvWidget->verboseLevelSpin ->setValue ( data.myVerboseLevel );
- myAdvWidget->createNewNodesCheck ->setChecked( data.myToCreateNewNodes );
- myAdvWidget->removeInitialCentralPointCheck ->setChecked( data.myRemoveInitialCentralPoint );
- myAdvWidget->boundaryRecoveryCheck ->setChecked( data.myBoundaryRecovery );
- myAdvWidget->FEMCorrectionCheck ->setChecked( data.myFEMCorrection );
- myAdvWidget->gradationSpinBox ->setValue ( data.myGradation );
- myAdvWidget->myAdvOptionsTable ->SetCustomOptions( data.myTextOption );
myAdvWidget->logInFileCheck ->setChecked( !data.myLogInStandardOutput );
myAdvWidget->removeLogOnSuccessCheck ->setChecked( data.myRemoveLogOnSuccess );
+ if ( myOptions.operator->() ) {
+ for ( int i = 0, nb = myOptions->length(); i < nb; ++i )
+ myAdvWidget->AddOption( that->myOptions[i].in() );
+ }
+ if ( myCustomOptions.operator->() ) {
+ for ( int i = 0, nb = myCustomOptions->length(); i < nb; ++i )
+ myAdvWidget->AddOption( that->myCustomOptions[i].in() );
+ }
+ myAdvWidget->myOptionTable->resizeColumnToContents( OPTION_NAME_COLUMN );
+
TEnfVertexList::const_iterator it;
int rowCount = 0;
myEnforcedTableWidget->clearContents();
storeParamsToHypo( data );
QString valStr = "";
-
- if ( !data.myBoundaryRecovery )
- valStr = "-c " + QString::number( !data.myToMeshHoles );
-
- if ( data.myOptimizationLevel >= 0 && data.myOptimizationLevel < 5 && !data.myBoundaryRecovery) {
- const char* level[] = { "none" , "light" , "standard" , "standard+" , "strong" };
- valStr += " -o ";
- valStr += level[ data.myOptimizationLevel ];
- }
- if ( data.myMaximumMemory > 0 ) {
- valStr += " -m ";
- valStr += QString::number( data.myMaximumMemory );
- }
- if ( data.myInitialMemory > 0 && !data.myBoundaryRecovery ) {
- valStr += " -M ";
- valStr += QString::number( data.myInitialMemory );
- }
- valStr += " -v ";
- valStr += QString::number( data.myVerboseLevel );
-
- if ( !data.myToCreateNewNodes )
- valStr += " -p0";
-
- if ( data.myRemoveInitialCentralPoint )
- valStr += " -no_initial_central_point";
-
- if ( data.myBoundaryRecovery )
- valStr += " -C";
-
- if ( data.myFEMCorrection )
- valStr += " -FEM";
-
- if ( data.myGradation != 1.05 ) {
- valStr += " -Dcpropa=";
- valStr += QString::number( data.myGradation );
- }
-
- valStr += " ";
- valStr += data.myTextOption;
-
- // valStr += " #BEGIN ENFORCED VERTICES#";
- // // Add size map parameters storage
- // for (int i=0 ; i<mySmpModel->rowCount() ; i++) {
- // valStr += " (";
- // double x = mySmpModel->data(mySmpModel->index(i,ENF_VER_X_COLUMN)).toDouble();
- // double y = mySmpModel->data(mySmpModel->index(i,ENF_VER_Y_COLUMN)).toDouble();
- // double z = mySmpModel->data(mySmpModel->index(i,ENF_VER_Z_COLUMN)).toDouble();
- // double size = mySmpModel->data(mySmpModel->index(i,ENF_VER_SIZE_COLUMN)).toDouble();
- // valStr += QString::number( x );
- // valStr += ",";
- // valStr += QString::number( y );
- // valStr += ",";
- // valStr += QString::number( z );
- // valStr += ")=";
- // valStr += QString::number( size );
- // if (i!=mySmpModel->rowCount()-1)
- // valStr += ";";
- // }
- // valStr += " #END ENFORCED VERTICES#";
return valStr;
}
HypothesisData* data = SMESH::GetHypothesisData( hypType() );
h_data.myName = isCreation() && data ? hypName() : "";
- h_data.myCollisionMode = h->GetCollisionMode();
- h_data.myBoundaryLayersGrowth = h->GetBoundaryLayersGrowth();
- h_data.myElementGeneration = h->GetElementGeneration();
- h_data.myAddMultinormals = h->GetAddMultinormals();
- h_data.mySmoothNormals = h->GetSmoothNormals();
+ h_data.myNbOfBoundaryLayers = h->GetNbOfBoundaryLayers();
+ h_data.myLayersOnAllWrap = h->GetLayersOnAllWrap();
h_data.myHeightFirstLayer = h->GetHeightFirstLayer();
+ h_data.myHeightIsRelative = h->GetHeightIsRelative();
+ h_data.myBoundaryLayersGrowth = h->GetBoundaryLayersGrowth();
+ h_data.myBoundaryLayersMaxElemAngle = h->GetBoundaryLayersMaxElemAngle();
h_data.myBoundaryLayersProgression = h->GetBoundaryLayersProgression();
+ h_data.myElementGeneration = h->GetElementGeneration();
h_data.myCoreSize = h->GetCoreSize();
- h_data.myMultinormalsAngle = h->GetMultinormalsAngle();
- h_data.myNbOfBoundaryLayers = h->GetNbOfBoundaryLayers();
+
h_data.myFaceWLIds = h->GetFacesWithLayers();
h_data.myFaceWIIds = h->GetFacesWithImprinting();
h_data.myFaceWSIds = h->GetFacesWithSnapping();
+ h_data.myImprinting = h_data.myFaceWIIds->length();//h->GetImprinting();
+ h_data.mySnapping = h_data.myFaceWSIds->length();//h->GetSnapping();
- h_data.myLayersOnAllWrap = h->GetLayersOnAllWrap();
- h_data.myToMeshHoles = h->GetToMeshHoles();
- h_data.myToMakeGroupsOfDomains = /*h->GetToMeshHoles() &&*/ h->GetToMakeGroupsOfDomains();
- h_data.myMaximumMemory = h->GetMaximumMemory();
- h_data.myInitialMemory = h->GetInitialMemory();
- h_data.myInitialMemory = h->GetInitialMemory();
+ h_data.myCollisionMode = h->GetCollisionMode();
h_data.myOptimizationLevel = h->GetOptimizationLevel();
-
+
h_data.myKeepFiles = h->GetKeepFiles();
h_data.myWorkingDir = h->GetWorkingDirectory();
h_data.myVerboseLevel = h->GetVerboseLevel();
- h_data.myToCreateNewNodes = h->GetToCreateNewNodes();
- h_data.myRemoveInitialCentralPoint = h->GetToRemoveCentralPoint();
- h_data.myBoundaryRecovery = h->GetToUseBoundaryRecoveryVersion();
- h_data.myFEMCorrection = h->GetFEMCorrection();
- h_data.myGradation = h->GetGradation();
- h_data.myTextOption = h->GetAdvancedOption();
h_data.myLogInStandardOutput = h->GetStandardOutputLog();
h_data.myRemoveLogOnSuccess = h->GetRemoveLogOnSuccess();
-
+
+ HYBRIDPluginGUI_HypothesisCreator* that = (HYBRIDPluginGUI_HypothesisCreator*)this;
+ that->myOptions = h->GetOptionValues();
+ that->myCustomOptions = h->GetAdvancedOptionValues();
+
+
HYBRIDPlugin::HYBRIDEnforcedVertexList_var vertices = h->GetEnforcedVertices();
h_data.myEnforcedVertices.clear();
for (CORBA::ULong i=0 ; i<vertices->length() ; i++) {
if( isCreation() )
SMESH::SetName( SMESH::FindSObject( h ), h_data.myName.toLatin1().constData() );
+ if ( h->GetNbOfBoundaryLayers() != h_data.myNbOfBoundaryLayers )
+ h->SetNbOfBoundaryLayers ( h_data.myNbOfBoundaryLayers );
if ( h->GetLayersOnAllWrap() != h_data.myLayersOnAllWrap ) // avoid duplication of DumpPython commands
h->SetLayersOnAllWrap ( h_data.myLayersOnAllWrap );
- if ( h->GetToMeshHoles() != h_data.myToMeshHoles ) // avoid duplication of DumpPython commands
- h->SetToMeshHoles ( h_data.myToMeshHoles );
- if ( h->GetToMakeGroupsOfDomains() != h_data.myToMakeGroupsOfDomains )
- h->SetToMakeGroupsOfDomains( h_data.myToMakeGroupsOfDomains );
- if ( h->GetMaximumMemory() != h_data.myMaximumMemory )
- h->SetMaximumMemory ( h_data.myMaximumMemory );
- if ( h->GetInitialMemory() != h_data.myInitialMemory )
- h->SetInitialMemory ( h_data.myInitialMemory );
- if ( h->GetInitialMemory() != h_data.myInitialMemory )
- h->SetInitialMemory ( h_data.myInitialMemory );
- if ( h->GetOptimizationLevel() != h_data.myOptimizationLevel )
- h->SetOptimizationLevel( h_data.myOptimizationLevel );
-
- if ( h->GetCollisionMode() != h_data.myCollisionMode )
- h->SetCollisionMode( h_data.myCollisionMode );
- if ( h->GetBoundaryLayersGrowth() != h_data.myBoundaryLayersGrowth )
- h->SetBoundaryLayersGrowth( h_data.myBoundaryLayersGrowth );
- if ( h->GetElementGeneration() != h_data.myElementGeneration )
- h->SetElementGeneration( h_data.myElementGeneration );
-
- if ( h->GetAddMultinormals() != h_data.myAddMultinormals )
- h->SetAddMultinormals ( h_data.myAddMultinormals );
- if ( h->GetSmoothNormals() != h_data.mySmoothNormals )
- h->SetSmoothNormals ( h_data.mySmoothNormals );
if ( h->GetHeightFirstLayer() != h_data.myHeightFirstLayer )
h->SetHeightFirstLayer ( h_data.myHeightFirstLayer );
+ h->SetHeightIsRelative( h_data.myHeightIsRelative );
+ if ( h->GetBoundaryLayersGrowth() != h_data.myBoundaryLayersGrowth )
+ h->SetBoundaryLayersGrowth( h_data.myBoundaryLayersGrowth );
+ h->SetBoundaryLayersMaxElemAngle( h_data.myBoundaryLayersMaxElemAngle );
if ( h->GetBoundaryLayersProgression() != h_data.myBoundaryLayersProgression )
h->SetBoundaryLayersProgression ( h_data.myBoundaryLayersProgression );
+ if ( h->GetElementGeneration() != h_data.myElementGeneration )
+ h->SetElementGeneration( h_data.myElementGeneration );
if ( h->GetCoreSize() != h_data.myCoreSize )
h->SetCoreSize ( h_data.myCoreSize );
- if ( h->GetMultinormalsAngle() != h_data.myMultinormalsAngle )
- h->SetMultinormalsAngle ( h_data.myMultinormalsAngle );
- if ( h->GetNbOfBoundaryLayers() != h_data.myNbOfBoundaryLayers )
- h->SetNbOfBoundaryLayers ( h_data.myNbOfBoundaryLayers );
+
+ // if ( h->GetOptimizationLevel() != h_data.myOptimizationLevel )
+ // h->SetOptimizationLevel( h_data.myOptimizationLevel );
+ // if ( h->GetCollisionMode() != h_data.myCollisionMode )
+ // h->SetCollisionMode( h_data.myCollisionMode );
+
h->SetFacesWithLayers( h_data.myFaceWLIds );
h->SetFacesWithImprinting( h_data.myFaceWIIds );
h->SetFacesWithSnapping( h_data.myFaceWSIds );
h->SetWorkingDirectory ( h_data.myWorkingDir.toLatin1().constData() );
if ( h->GetVerboseLevel() != h_data.myVerboseLevel )
h->SetVerboseLevel ( h_data.myVerboseLevel );
- if ( h->GetToCreateNewNodes() != h_data.myToCreateNewNodes )
- h->SetToCreateNewNodes ( h_data.myToCreateNewNodes );
- if ( h->GetToRemoveCentralPoint() != h_data.myRemoveInitialCentralPoint )
- h->SetToRemoveCentralPoint ( h_data.myRemoveInitialCentralPoint );
- if ( h->GetToUseBoundaryRecoveryVersion() != h_data.myBoundaryRecovery )
- h->SetToUseBoundaryRecoveryVersion ( h_data.myBoundaryRecovery );
- if ( h->GetFEMCorrection() != h_data.myFEMCorrection )
- h->SetFEMCorrection ( h_data.myFEMCorrection );
- if ( h->GetGradation() != h_data.myGradation )
- h->SetGradation ( h_data.myGradation );
- if ( h->GetTextOption() != h_data.myTextOption )
- h->SetAdvancedOption ( h_data.myTextOption.toLatin1().constData() );
if ( h->GetStandardOutputLog() != h_data.myLogInStandardOutput )
h->SetStandardOutputLog ( h_data.myLogInStandardOutput );
if ( h->GetRemoveLogOnSuccess() != h_data.myRemoveLogOnSuccess )
break;
}
- std::cout << "h->p_SetEnforcedMesh(theSource, "<< elementType <<", \""<< enfMesh->name << "\", \"" << enfMesh->groupName.c_str() <<"\")"<<std::endl;
ok = h->p_SetEnforcedMesh(theSource, elementType, enfMesh->name.c_str(), enfMesh->groupName.c_str());
} // for
} // try
bool HYBRIDPluginGUI_HypothesisCreator::readParamsFromWidgets( HYBRIDHypothesisData& h_data ) const
{
h_data.myName = myName ? myName->text() : "";
- h_data.myLayersOnAllWrap = myLayersOnAllWrapCheck->isChecked();
- h_data.myToMeshHoles = myToMeshHolesCheck->isChecked();
- h_data.myToMakeGroupsOfDomains = myToMakeGroupsOfDomains->isChecked();
- h_data.myMaximumMemory = myAdvWidget->maxMemoryCheck->isChecked() ? myAdvWidget->maxMemorySpin->value() : -1;
- h_data.myInitialMemory = myAdvWidget->initialMemoryCheck->isChecked() ? myAdvWidget->initialMemorySpin->value() : -1;
- h_data.myOptimizationLevel = myOptimizationLevelCombo->currentIndex();
-
- h_data.myCollisionMode = myCollisionModeCombo->currentIndex();
- h_data.myBoundaryLayersGrowth = myBoundaryLayersGrowthCombo->currentIndex();
- h_data.myElementGeneration = myElementGenerationCombo->currentIndex();
- h_data.myAddMultinormals = myAddMultinormalsCheck->isChecked();
- h_data.mySmoothNormals = mySmoothNormalsCheck->isChecked();
-
- h_data.myHeightFirstLayer = myHeightFirstLayerSpin -> value();
- h_data.myNbOfBoundaryLayers = myNbOfBoundaryLayersSpin -> value();
- h_data.myBoundaryLayersProgression = myBoundaryLayersProgressionSpin -> value();
- h_data.myCoreSize = myCoreSizeSpin->text().isEmpty() ? 0.0 : myCoreSizeSpin -> value();
- h_data.myMultinormalsAngle = myMultinormalsAngleSpin -> value();
+ h_data.myNbOfBoundaryLayers = myStdWidget->myNbOfBoundaryLayers -> value();
+ h_data.myLayersOnAllWrap = myStdWidget->GetLayersOnAllWrap();
+ h_data.myHeightFirstLayer = myStdWidget->myHeightFirstLayer -> value();
+ h_data.myHeightIsRelative = myStdWidget->myHeightIsRelative->currentIndex();
+ h_data.myBoundaryLayersGrowth = myStdWidget->myBoundaryLayersGrowth->currentIndex();
+ h_data.myBoundaryLayersMaxElemAngle = myStdWidget->myBoundaryLayersMaxElemAngle->value();
+ h_data.myBoundaryLayersProgression = myStdWidget->myBoundaryLayersProgression -> value();
+ h_data.myElementGeneration = myStdWidget->myElementGeneration->currentIndex();
+ h_data.myCoreSize = myStdWidget->myCoreSizeEnabled->isChecked() ? myStdWidget->myCoreSize -> value() : 0;
+
h_data.myFaceWLIds = myFaceSelectorLayers->GetListOfIDs();
h_data.myFaceWIIds = myFaceSelectorImprinting->GetListOfIDs();
h_data.myFaceWSIds = myFaceSelectorSnapping->GetListOfIDs();
h_data.myKeepFiles = myAdvWidget->keepWorkingFilesCheck->isChecked();
h_data.myWorkingDir = myAdvWidget->workingDirectoryLineEdit->text().trimmed();
h_data.myVerboseLevel = myAdvWidget->verboseLevelSpin->value();
- h_data.myToCreateNewNodes = myAdvWidget->createNewNodesCheck->isChecked();
- h_data.myRemoveInitialCentralPoint = myAdvWidget->removeInitialCentralPointCheck->isChecked();
- h_data.myBoundaryRecovery = myAdvWidget->boundaryRecoveryCheck->isChecked();
- h_data.myFEMCorrection = myAdvWidget->FEMCorrectionCheck->isChecked();
- h_data.myGradation = myAdvWidget->gradationSpinBox->value();
- h_data.myTextOption = myAdvWidget->myAdvOptionsTable->GetCustomOptions();
h_data.myLogInStandardOutput = !myAdvWidget->logInFileCheck->isChecked();
h_data.myRemoveLogOnSuccess = myAdvWidget->removeLogOnSuccessCheck->isChecked();
QComboBox* combo = qobject_cast<QComboBox*>(myEnforcedMeshTableWidget->cellWidget(row,ENF_MESH_CONSTRAINT_COLUMN));
myEnfMesh->elementType = combo->currentIndex();
h_data.myEnforcedMeshes.insert(myEnfMesh);
- std::cout << "h_data.myEnforcedMeshes.size(): " << h_data.myEnforcedMeshes.size() << std::endl;
}
return true;
{
return "hybrid_hypo_page.html";
}
+
+void HYBRIDPluginGUI_HypothesisCreator::onAddOption()
+{
+ myAdvWidget->AddOption( NULL, true );
+}