X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FStdMeshersGUI%2FStdMeshersGUI_CartesianParamCreator.cxx;h=2aa6c49f1a7e5c13b82c7d5e8373c0676619721f;hp=21f64ed4fd07b89dbc368316c4a339016a9a3a3b;hb=HEAD;hpb=eb75a450cceabb83064e079ca4f907bde33b38de diff --git a/src/StdMeshersGUI/StdMeshersGUI_CartesianParamCreator.cxx b/src/StdMeshersGUI/StdMeshersGUI_CartesianParamCreator.cxx index 21f64ed4f..675f377cc 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_CartesianParamCreator.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_CartesianParamCreator.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -177,7 +177,7 @@ namespace StdMeshersGUI myStepSpin->SetStep( 1. ); myStepSpin->SetValue( myStep = 1. ); - // 3) Coodrinates/Spacing group + // 3) Coordinates/Spacing group QFrame* csFrame = new QFrame( this ); QVBoxLayout* scLay = new QVBoxLayout( csFrame ); scLay->setMargin( 0 ); @@ -204,8 +204,8 @@ namespace StdMeshersGUI axisTabLayout->setSpacing( SPACING ); axisTabLayout->addWidget( modeBox , 0, 0, 1, 3 ); - axisTabLayout->addWidget( myInsertBtn , 1, 0, 1, 2 ); - axisTabLayout->addWidget( myDeleteBtn , 2, 0, 1, 2 ); + axisTabLayout->addWidget( myInsertBtn, 1, 0, 1, 2 ); + axisTabLayout->addWidget( myDeleteBtn, 2, 0, 1, 2 ); axisTabLayout->addWidget( myStepLabel, 3, 0 ); axisTabLayout->addWidget( myStepSpin , 3, 1 ); axisTabLayout->addWidget( csFrame , 1, 2, 4, 1 ); @@ -430,7 +430,7 @@ namespace StdMeshersGUI //================================================================================ /*! - * \brief Checks grid definintion mode + * \brief Checks grid definition mode */ //================================================================================ @@ -457,7 +457,7 @@ namespace StdMeshersGUI //================================================================================ /*! - * \brief Returms spacing to set to a hypothesis + * \brief Returns spacing to set to a hypothesis */ //================================================================================ @@ -534,7 +534,7 @@ namespace StdMeshersGUI //================================================================================ QWidget* LineDelegate::createEditor( QWidget* parent, - const QStyleOptionViewItem& opt, + const QStyleOptionViewItem& /*opt*/, const QModelIndex& index) const { QWidget* w = 0; @@ -821,6 +821,26 @@ QFrame* StdMeshersGUI_CartesianParamCreator::buildFrame() myAddEdges = new QCheckBox( tr("ADD_EDGES"), GroupC1 ); argGroupLayout->addWidget( myAddEdges, row, 0, 1, 2 ); row++; + myCreateFaces = new QCheckBox( tr("CREATE_FACES"), GroupC1 ); + argGroupLayout->addWidget( myCreateFaces, row, 0, 1, 2 ); + row++; + myConsiderInternalFaces = new QCheckBox( tr("CONSIDER_INTERNAL_FACES"), GroupC1 ); + argGroupLayout->addWidget( myConsiderInternalFaces, row, 0, 1, 2 ); + row++; + myUseThresholdForInternalFaces = new QCheckBox( tr("USE_THRESHOLD_FOR_INTERNAL_FACES"), GroupC1 ); + argGroupLayout->addWidget( myUseThresholdForInternalFaces, row, 0, 1, 2 ); + row++; + mySetQuanta = new QCheckBox( tr("SET_QUANTA"), GroupC1 ); + argGroupLayout->addWidget( mySetQuanta, row, 0, 1, 2 ); + row++; + + argGroupLayout->addWidget( new QLabel( tr("QUANTA_VALUE"), GroupC1 ), row, 0 ); + myQuanta = new SMESHGUI_SpinBox( GroupC1 ); + myQuanta->setAcceptNames( false ); + myQuanta->RangeStepAndValidator( 1e-6, 1, 0.05, "length_precision" ); + myQuanta->setEnabled(false); + argGroupLayout->addWidget( myQuanta, row, 1 ); + row++; // 3) Grid definition QTabWidget* tabWdg = new QTabWidget( fr ); @@ -924,6 +944,9 @@ QFrame* StdMeshersGUI_CartesianParamCreator::buildFrame() connect( myOrthogonalChk, SIGNAL( toggled(bool)), SLOT( onOrthogonalAxes(bool))); connect( optimBtn, SIGNAL( clicked(bool)), SLOT( onOptimalAxes(bool))); connect( resetBtn, SIGNAL( clicked(bool)), SLOT( onResetAxes(bool))); + connect( myConsiderInternalFaces, SIGNAL( toggled(bool)), + myUseThresholdForInternalFaces, SLOT( setEnabled(bool))); + connect( mySetQuanta, SIGNAL( clicked(bool)), SLOT( onSetQuanta(bool)) ); for ( int i = 0; i < 3; ++i ) { connect( myXDirSpin[i], SIGNAL(valueChanged (const QString&)), @@ -944,9 +967,7 @@ QFrame* StdMeshersGUI_CartesianParamCreator::buildFrame() if ( !shapeEntry.isEmpty() ) { // find origin - Handle(SALOME_InteractiveObject) io = - new SALOME_InteractiveObject( shapeEntry.toStdString().c_str(), "GEOM" ); - GEOM::GEOM_Object_var geomObj = SMESH::IObjectToInterface( io ); + GEOM::GEOM_Object_var geomObj = SMESH::EntryToInterface( shapeEntry ); if ( GEOMBase::GetShape( geomObj, shape ) && !shape.IsNull()) { Bnd_Box box; @@ -980,7 +1001,7 @@ QFrame* StdMeshersGUI_CartesianParamCreator::buildFrame() //================================================================================ /*! - * \brief Tranfer parameters from hypothesis to widgets + * \brief Transfer parameters from hypothesis to widgets */ //================================================================================ @@ -999,6 +1020,13 @@ void StdMeshersGUI_CartesianParamCreator::retrieveParams() const myThreshold->setText( varName ); myAddEdges->setChecked( h->GetToAddEdges() ); + myCreateFaces->setChecked( h->GetToCreateFaces() ); + myConsiderInternalFaces->setChecked( h->GetToConsiderInternalFaces() ); + myUseThresholdForInternalFaces->setChecked( h->GetToUseThresholdForInternalFaces() ); + mySetQuanta->setChecked( h->GetToUseQuanta() ); + myQuanta->setValue( h->GetQuanta() ); + if (h->GetToUseQuanta()) + myQuanta->setEnabled(true); // grid definition for ( int ax = 0; ax < 3; ++ax ) @@ -1068,7 +1096,7 @@ void StdMeshersGUI_CartesianParamCreator::retrieveParams() const //================================================================================ /*! - * \brief Tranfer parameters from widgets to hypothesis + * \brief Transfer parameters from widgets to hypothesis */ //================================================================================ @@ -1080,12 +1108,17 @@ QString StdMeshersGUI_CartesianParamCreator::storeParams() const try { if( isCreation() ) - SMESH::SetName( SMESH::FindSObject( h ), myName->text().toLatin1().constData() ); + SMESH::SetName( SMESH::FindSObject( h ), myName->text().toUtf8().constData() ); // threshold h->SetVarParameter( myThreshold->text().toLatin1().constData(), "SetSizeThreshold" ); h->SetSizeThreshold( myThreshold->text().toDouble() ); h->SetToAddEdges( myAddEdges->isChecked() ); + h->SetToCreateFaces( myCreateFaces->isChecked() ); + h->SetToConsiderInternalFaces( myConsiderInternalFaces->isChecked() ); + h->SetToUseThresholdForInternalFaces( myUseThresholdForInternalFaces->isChecked() ); + h->SetToUseQuanta( mySetQuanta->isChecked() ); + h->SetQuanta( myQuanta->text().toDouble() ); // grid for ( int ax = 0; ax < 3; ++ax ) @@ -1109,7 +1142,7 @@ QString StdMeshersGUI_CartesianParamCreator::storeParams() const params << myPointSpin[0]->text(); params << myPointSpin[1]->text(); params << myPointSpin[2]->text(); - h->SetVarParameter( params.join(":").toLatin1().constData(), "SetFixedPoint" ); + h->SetVarParameter( params.join(":").toUtf8().constData(), "SetFixedPoint" ); params.clear(); SMESH::PointStruct ps; @@ -1126,7 +1159,7 @@ QString StdMeshersGUI_CartesianParamCreator::storeParams() const params << spins[ax][1]->text(); params << spins[ax][2]->text(); } - h->SetVarParameter( params.join(":").toLatin1().constData(), "SetAxesDirs" ); + h->SetVarParameter( params.join(":").toUtf8().constData(), "SetAxesDirs" ); SMESH::DirStruct axDir[3]; for ( int ax = 0; ax < 3; ++ax ) @@ -1153,7 +1186,7 @@ QString StdMeshersGUI_CartesianParamCreator::storeParams() const QString StdMeshersGUI_CartesianParamCreator::helpPage() const { - return "cartesian_algo_page.html#cartesian_hyp_anchor"; + return "cartesian_algo.html#cartesian-hyp-anchor"; } //================================================================================ @@ -1377,9 +1410,7 @@ void StdMeshersGUI_CartesianParamCreator::onOptimalAxes(bool) if ( shapeEntry.isEmpty() ) return; - Handle(SALOME_InteractiveObject) io = - new SALOME_InteractiveObject( shapeEntry.toStdString().c_str(), "GEOM" ); - GEOM::GEOM_Object_var geomObj = SMESH::IObjectToInterface( io ); + GEOM::GEOM_Object_var geomObj = SMESH::EntryToInterface( shapeEntry ); if ( geomObj->_is_nil() ) return; @@ -1428,7 +1459,7 @@ void StdMeshersGUI_CartesianParamCreator::onResetAxes(bool) //================================================================================ /*! - * \brief SLOT called when the grid definintion mode changes + * \brief SLOT called when the grid definition mode changes */ //================================================================================ @@ -1440,3 +1471,19 @@ void StdMeshersGUI_CartesianParamCreator::onGridModeChanged(int) myFixedPointGrp->setEnabled( haveSpacing ); } + +//================================================================================ +/*! + * \brief Enable and disable quanta value combo box + */ +//================================================================================ + +void StdMeshersGUI_CartesianParamCreator::onSetQuanta(bool) +{ + StdMeshers::StdMeshers_CartesianParameters3D_var h = + StdMeshers::StdMeshers_CartesianParameters3D::_narrow( hypothesis() ); + if ( h->_is_nil() ) + return; + + myQuanta->setEnabled( mySetQuanta->isChecked() ); +}