From d9b70538644d78d4defa84cb64d7b28aa526e000 Mon Sep 17 00:00:00 2001 From: eap Date: Fri, 14 Feb 2014 15:53:14 +0400 Subject: [PATCH] 0022362: EDF SMESH: Quadrangle (mapping) algorithm: enforced vortices Create GUI --- .../SMESH/images/hypo_quad_params_dialog.png | Bin 21190 -> 23161 bytes .../images/hypo_quad_params_dialog_enf.png | Bin 0 -> 22819 bytes .../images/hypo_quad_params_dialog_vert.png | Bin 0 -> 17141 bytes .../images/hypo_quad_params_enfnodes_algo.png | Bin 0 -> 7233 bytes .../gui/SMESH/input/2d_meshing_hypo.doc | 90 ++-- src/SMESHGUI/SMESH_msg_en.ts | 23 +- src/StdMeshers/StdMeshers_Quadrangle_2D.cxx | 9 +- .../StdMeshersGUI_QuadrangleParamWdg.cxx | 408 +++++++++++++++++- .../StdMeshersGUI_QuadrangleParamWdg.h | 86 +++- src/StdMeshersGUI/StdMeshers_msg_en.ts | 23 + 10 files changed, 601 insertions(+), 38 deletions(-) create mode 100644 doc/salome/gui/SMESH/images/hypo_quad_params_dialog_enf.png create mode 100644 doc/salome/gui/SMESH/images/hypo_quad_params_dialog_vert.png create mode 100755 doc/salome/gui/SMESH/images/hypo_quad_params_enfnodes_algo.png diff --git a/doc/salome/gui/SMESH/images/hypo_quad_params_dialog.png b/doc/salome/gui/SMESH/images/hypo_quad_params_dialog.png index 3cd442a8d4317a1b4defb0151b3ff6ded3b00dcb..62dc9f41534af164fa62659434f387e5369566fb 100644 GIT binary patch literal 23161 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 literal 21190 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 o-wxH1?8Y-n7A2MzA-9^BpC-QAnJ*#9~2 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/images/hypo_quad_params_dialog_vert.png b/doc/salome/gui/SMESH/images/hypo_quad_params_dialog_vert.png new file mode 100644 index 0000000000000000000000000000000000000000..5c75853368846670c3abc2a566741d7e00c6a1e9 GIT binary patch literal 17141 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 A3jhEB literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/images/hypo_quad_params_enfnodes_algo.png b/doc/salome/gui/SMESH/images/hypo_quad_params_enfnodes_algo.png new file mode 100755 index 0000000000000000000000000000000000000000..adddf842c984eb3a613e888e43d52676f94ce4f6 GIT binary patch literal 7233 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 parameters is a hypothesis for Quadrangle (Mapping). +Quadrangle parameters is a hypothesis for Quadrangle (Mapping) algorithm. -Base vertex parameter allows using Quadrangle (Mapping) -algorithm for meshing of trilateral faces. In this case it is -necessary to select the vertex, which will be used as the fourth edge -(degenerated). - -\image html hypo_quad_params_1.png "A face built from 3 edges" - -\image html hypo_quad_params_res.png "The resulting mesh" - -This parameter can be also used to mesh a segment of a circular face. -Please, consider that there is a limitation on the selection of the -vertex for the faces built with the angle > 180 degrees (see the picture). - -\image html hypo_quad_params_2.png "3/4 of a circular face" - -In this case, selection of a wrong vertex for the Base vertex -parameter will generate a wrong mesh. The picture below -shows the good (left) and the bad (right) results of meshing. - -\image html hypo_quad_params_res_2.png "The resulting meshes" - -Type parameter is used on faces with a different number of -segments on opposite sides to define the algorithm of transition -between them. The following types are available: +Transition tab is used to define the algorithm of transition +between opposite sides of faces with a different number of +segments on opposite sides. The following types of transition +algorithms are available: - Standard is the default case, when both triangles and quadrangles are possible in the transition area along the finer meshed sides. @@ -92,7 +72,65 @@ between them. The following types are available: to Nmin segments is log3( Nmax / Nmin ). The number of face rows is equal to the number of segments on each of equally discretized sides. - \image html reduce_three_to_one.png "The fastest transition pattern: 3 to 1" + +\image html reduce_three_to_one.png "The fastest transition pattern: 3 to 1" + +Base vertex tab allows using Quadrangle (Mapping) +algorithm for meshing of trilateral faces. In this case it is +necessary to select the vertex, which will be used as the fourth edge +(degenerated). + +\image html hypo_quad_params_dialog_vert.png "Base Vertex tab of Quadrangle parameters creation/edition dialog" + +\image html hypo_quad_params_1.png "A face built from 3 edges" + +\image html hypo_quad_params_res.png "The resulting mesh" + +This parameter can be also used to mesh a segment of a circular face. +Please, consider that there is a limitation on the selection of the +vertex for the faces built with the angle > 180 degrees (see the picture). + +\image html hypo_quad_params_2.png "3/4 of a circular face" + +In this case, selection of a wrong vertex for the Base vertex +parameter will generate a wrong mesh. The picture below +shows the good (left) and the bad (right) results of meshing. + +\image html hypo_quad_params_res_2.png "The resulting meshes" + +\image html hypo_quad_params_dialog_enf.png "Enforced nodes tab of Quadrangle parameters creation/edition dialog" + +Enforced nodes tab allows for defining points where the +algorithm should create nodes. There are two ways to define positions +of the enforced nodes. +
    +
  • \b Vertices group allows to set up shapes whose vertices will + define positions of the enforced nodes. Only vertices successfully + projected to the meshed face and located close enough to the + meshed face will be used to create the enforced nodes.
  • +
  • \b Points group allows to explicitly define coordinates of + points used to create the enforced nodes. Only points successfully + projected to the meshed face and located close enough to the + meshed face will be used to create the enforced nodes.
  • +
+Algorithm of creation of the enforced nodes is following. + +\image html hypo_quad_params_enfnodes_algo.png "Steps of the algorithm of creation of the enforced nodes" +
    +
  1. Left image: Positions of nodes are computed without taking into + account the enforced vertex (yellow point).
  2. +
  3. Middle image: A node closest to the enforced vertex is + detected. Extreme nodes of the row and column of the detected node + are used to create virtual edges (yellow lines) ending at the + enforced vertex.
  4. +
  5. Right image: The meshed face is thus divided by the virtual + edges into four quadrilateral sub-domains each of which is meshed + as usually: the nodes of the row and column of detected node are + moved to the virtual edges and the quadrilateral elements are + constructed. +
+If there are several enforced vertices, the algorithm is applied +recursively to the formed sub-domains. See Also a sample TUI Script of a \ref tui_quadrangle_parameters "Quadrangle Parameters" hypothesis. diff --git a/src/SMESHGUI/SMESH_msg_en.ts b/src/SMESHGUI/SMESH_msg_en.ts index 8bb38cd7c..4f87f5cf5 100644 --- a/src/SMESHGUI/SMESH_msg_en.ts +++ b/src/SMESHGUI/SMESH_msg_en.ts @@ -6002,10 +6002,15 @@ Please specify them and try again No sense in creating a submesh ignored by global algorithm "%1" - GEOMETRY_OBJECT_IS_NOT_DEFINED + GEOMETRY_OBJECT_IS_NOT_DEFINED_MESH Geometry object is not defined. Do you want to create an empty mesh without algorithms and hypotheses? + + + GEOMETRY_OBJECT_IS_NOT_DEFINED_SUBMESH + Geometry object is not defined. +Please specify it and try again GEOMETRY_OBJECT_IS_NULL @@ -6071,6 +6076,14 @@ Please enter valid name and try again There is no object for editing. Please select mesh or sub-mesh and try again + + CONCURRENT_SUBMESH_APPEARS + +The assigned algorithm has the same priority as one assigned to an +adjacent sub-mesh, hence it's undefined which algorithm to use for +meshing boundary shared by two sub-meshes. Would you like to set +the order of sub-mesh computation? + SMESHGUI_MeshPatternDlg @@ -6233,6 +6246,14 @@ It is impossible to read point coordinates from file NONE <None> + + DEFAULT + <Default> + + + SELECT + <Select> + SMESHGUI_MultiEditDlg diff --git a/src/StdMeshers/StdMeshers_Quadrangle_2D.cxx b/src/StdMeshers/StdMeshers_Quadrangle_2D.cxx index fd0cdb6ca..2c4ce511f 100644 --- a/src/StdMeshers/StdMeshers_Quadrangle_2D.cxx +++ b/src/StdMeshers/StdMeshers_Quadrangle_2D.cxx @@ -42,8 +42,10 @@ #include "StdMeshers_QuadrangleParams.hxx" #include "StdMeshers_ViscousLayers2D.hxx" +#include #include #include +#include #include #include #include @@ -3736,6 +3738,8 @@ void StdMeshers_Quadrangle_2D::smooth (FaceQuadStruct::Ptr quad) // Get nodes to smooth + // TODO: do not smooth fixed nodes + typedef map< const SMDS_MeshNode*, TSmoothNode, TIDCompare > TNo2SmooNoMap; TNo2SmooNoMap smooNoMap; @@ -4205,6 +4209,9 @@ bool StdMeshers_Quadrangle_2D::getEnforcedUV() surf->Bounds( u1,u2,v1,v2 ); GeomAPI_ProjectPointOnSurf project; project.Init(surf, u1,u2, v1,v2, tol ); + Bnd_Box bbox; + BRepBndLib::Add( face, bbox ); + double farTol = 0.01 * sqrt( bbox.SquareExtent() ); for ( size_t iP = 0; iP < points.size(); ++iP ) { @@ -4217,7 +4224,7 @@ bool StdMeshers_Quadrangle_2D::getEnforcedUV() << points[ iP ].X() << ", "<< points[ iP ].Y() << ", "<< points[ iP ].Z() << " )"); continue; } - if ( project.LowerDistance() > tol*1000 ) + if ( project.LowerDistance() > farTol ) { if ( isStrictCheck && iP < nbPoints ) return error diff --git a/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.cxx b/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.cxx index bbde9200c..4d98ef2b9 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.cxx @@ -23,29 +23,401 @@ #include "StdMeshersGUI_QuadrangleParamWdg.h" #include "SMESHGUI.h" +#include "SMESHGUI_SpinBox.h" +#include "StdMeshersGUI_SubShapeSelectorWdg.h" -#include "SUIT_ResourceMgr.h" +#include +#include +#include +#include +#include // Qt includes #include -#include -#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include // IDL includes #include #include CORBA_CLIENT_HEADER(SMESH_BasicHypothesis) +#include CORBA_CLIENT_HEADER(GEOM_Gen) + #define SPACING 6 -#define MARGIN 0 +#define MARGIN 11 + +enum { TAB_TRANSITION, TAB_VERTEX, TAB_ENF_POINTS }; + +//================================================================================ +// function : Constructor +// purpose : +//================================================================================ + +StdMeshersGUI_QuadrangleParamCreator::StdMeshersGUI_QuadrangleParamCreator(const QString& aHypType) + : StdMeshersGUI_StdHypothesisCreator( aHypType ) +{ +} + +//======================================================================= +//function : helpPage +//purpose : +//======================================================================= + +QString StdMeshersGUI_QuadrangleParamCreator::helpPage() const +{ + return "a2d_meshing_hypo_page.html#hypo_quad_params_anchor"; +} + +//======================================================================= +//function : buildFrame +//purpose : +//======================================================================= + +QFrame* StdMeshersGUI_QuadrangleParamCreator::buildFrame() +{ + QFrame* fr = new QFrame(); + + QGridLayout* lay = new QGridLayout( fr ); + lay->setMargin( MARGIN ); + lay->setSpacing( SPACING ); + int row = 0; + + myName = 0; + if ( isCreation() ) + { + myName = new QLineEdit( fr ); + QLabel* nameLab = new QLabel( tr("SMESH_NAME")); + lay->addWidget( nameLab, row, 0 ); + lay->addWidget( myName, row, 1 ); + ++row; + } + + // Transition type + + myTypeWdg = new StdMeshersGUI_QuadrangleParamWdg( fr ); + + // Vertexes + + myVertexSelWdg = new StdMeshersGUI_SubShapeSelectorWdg( fr, TopAbs_VERTEX ); + myVertexSelWdg->layout()->setMargin( MARGIN ); + + // Enforced Points + + QWidget* pointsFrame = new QWidget( fr ); + QVBoxLayout* pointsLay = new QVBoxLayout( pointsFrame ); + pointsLay->setMargin(MARGIN); + pointsLay->setSpacing(SPACING); + + // shapes + QGroupBox* shapesGroup = new QGroupBox( tr("SHAPES"), pointsFrame ); + myShapesList = new QListWidget( shapesGroup ); + myAddShapeBut = new QPushButton( tr("SMESH_BUT_ADD"), shapesGroup ); + QPushButton* remShapeBut = new QPushButton( tr("SMESH_BUT_REMOVE"), shapesGroup ); + // + QGridLayout* shapesLay = new QGridLayout( shapesGroup ); + shapesLay->setMargin(MARGIN); + shapesLay->setSpacing(SPACING); + shapesLay->addWidget( myShapesList, 0, 0, 3, 2 ); + shapesLay->addWidget( myAddShapeBut, 0, 2 ); + shapesLay->addWidget( remShapeBut, 1, 2 ); + shapesLay->setColumnStretch( 0, 1 ); + shapesLay->setRowStretch ( 2, 1 ); + + // coords + QGroupBox* coordsGroup = new QGroupBox( tr("POINTS"), pointsFrame ); + myCoordsTreeWdg = new QTreeWidget( coordsGroup ); + myCoordsTreeWdg->setColumnCount ( 3 ); + myCoordsTreeWdg->setHeaderLabels( QStringList() << "X" << "Y" << "Z" ); + myCoordsTreeWdg->setItemDelegate( new ItemDelegate( myCoordsTreeWdg )); + QPushButton* addCoordBut = new QPushButton( tr("SMESH_BUT_ADD"), coordsGroup ); + QPushButton* remCoordBut = new QPushButton( tr("SMESH_BUT_REMOVE"), coordsGroup ); + // + QGridLayout* coordsLay = new QGridLayout( coordsGroup ); + coordsLay->setMargin(MARGIN); + coordsLay->setSpacing(SPACING); + coordsLay->addWidget( myCoordsTreeWdg, 0, 0, 3, 2 ); + coordsLay->addWidget( addCoordBut, 0, 2 ); + coordsLay->addWidget( remCoordBut, 1, 2 ); + coordsLay->setColumnStretch( 0, 1 ); + coordsLay->setRowStretch ( 2, 1 ); + + pointsLay->addWidget( shapesGroup ); + pointsLay->addWidget( coordsGroup ); + + // Tabs + myTabs = new QTabWidget( fr ); + myTabs->addTab( myTypeWdg, tr("TRANSITION")); + myTabs->addTab( myVertexSelWdg, tr("SMESH_BASE_VERTEX")); + myTabs->addTab( pointsFrame, tr("ENF_NODES")); + + lay->addWidget( myTabs, row, 0, 2, 3 ); + + // signals + connect( myTypeWdg, SIGNAL( typeChanged(int)), SLOT( onTypeChanged(int))); + connect( myAddShapeBut, SIGNAL( clicked()), SLOT( onAddShape() )); + connect( remShapeBut, SIGNAL( clicked()), SLOT( onRemoveShape() )); + connect( addCoordBut, SIGNAL( clicked()), SLOT( onAddPoint() )); + connect( remCoordBut, SIGNAL( clicked()), SLOT( onRemovePoint() )); + connect( myTabs, SIGNAL( currentChanged(int)),SLOT( onTabChanged(int))); + + LightApp_SelectionMgr* selMgr = SMESHGUI::GetSMESHGUI()->selectionMgr(); + connect( selMgr, SIGNAL(currentSelectionChanged()), SLOT( onSelectionChanged())); + + return fr; +} + +//======================================================================= +//function : retrieveParams +//purpose : +//======================================================================= + +void StdMeshersGUI_QuadrangleParamCreator::retrieveParams() const +{ + StdMeshers::StdMeshers_QuadrangleParams_var h = + StdMeshers::StdMeshers_QuadrangleParams::_narrow( initParamsHypothesis() ); + + // name + if( myName ) + myName->setText( hypName() ); + + // main shape + myVertexSelWdg->SetMaxSize(1); + QString anEntry = SMESHGUI_GenericHypothesisCreator::getShapeEntry(); + QString aMainEntry = SMESHGUI_GenericHypothesisCreator::getMainShapeEntry(); + if ( anEntry.isEmpty() ) + anEntry = h->GetObjectEntry(); + myVertexSelWdg->SetGeomShapeEntry(anEntry); + myVertexSelWdg->SetMainShapeEntry(aMainEntry); + + if ( !isCreation()) + { + // type + myTypeWdg->SetType(int(h->GetQuadType())); + + // vertex + int vertID = h->GetTriaVertex(); + if (vertID > 0) { + SMESH::long_array_var aVec = new SMESH::long_array; + aVec->length(1); + aVec[0] = vertID; + myVertexSelWdg->SetListOfIDs(aVec); + } + + // enforced nodes + GEOM::ListOfGO_var shapes; + SMESH::nodes_array_var points; + h->GetEnforcedNodes( shapes, points ); + for ( int i = 0; i < shapes->length(); ++i ) + { + CORBA::String_var name = shapes[i]->GetName(); + CORBA::String_var entry = shapes[i]->GetStudyEntry(); + QListWidgetItem* item = new QListWidgetItem( name.in() ); + item->setData( Qt::UserRole, entry.in() ); + myShapesList->addItem( item ); + } + for ( int i = 0; i < points->length(); ++i ) + { + QTreeWidgetItem* item = new QTreeWidgetItem + ( QStringList() + << QString::number( points[i].x ) + << QString::number( points[i].y ) + << QString::number( points[i].z )); + item->setFlags( item->flags() | Qt::ItemIsEditable ); + myCoordsTreeWdg->addTopLevelItem( item ); + } + } + ((StdMeshersGUI_QuadrangleParamCreator*) this)->onSelectionChanged(); +} + +//======================================================================= +//function : storeParams +//purpose : +//======================================================================= + +QString StdMeshersGUI_QuadrangleParamCreator::storeParams() const +{ + StdMeshers::StdMeshers_QuadrangleParams_var h = + StdMeshers::StdMeshers_QuadrangleParams::_narrow( hypothesis() ); + + // name + if( myName ) + SMESH::SetName( SMESH::FindSObject( h ), myName->text().toLatin1().constData() ); + + // transition + h->SetQuadType( StdMeshers::QuadType( myTypeWdg->GetType()) ); + + // vertex + if ( myVertexSelWdg->GetListSize() > 0 ) + { + h->SetTriaVertex( myVertexSelWdg->GetListOfIDs()[0] ); // getlist must be called once + h->SetObjectEntry( myVertexSelWdg->GetMainShapeEntry() ); + } + else + { + h->SetTriaVertex( -1 ); + } + + // enfored nodes + + GEOM::ListOfGO_var goList = new GEOM::ListOfGO; + int nbShapes = 0; + goList->length( myShapesList->count() ); + for ( int i = 0; i < myShapesList->count(); ++i ) + { + QListWidgetItem* item = myShapesList->item(i); + QString entry = item->data( Qt::UserRole ).toString(); + Handle(SALOME_InteractiveObject) io = + new SALOME_InteractiveObject( entry.toStdString().c_str(), "GEOM" ); + GEOM::GEOM_Object_var go = GEOMBase::ConvertIOinGEOMObject( io ); + if ( !go->_is_nil() ) + goList[ nbShapes++ ] = go; + } + goList->length( nbShapes ); + + SMESH::nodes_array_var points = new SMESH::nodes_array; + points->length( myCoordsTreeWdg->topLevelItemCount() ); + for ( int i = 0; i < myCoordsTreeWdg->topLevelItemCount(); ++i ) + { + QTreeWidgetItem* item = myCoordsTreeWdg->topLevelItem( i ); + points[i].x = item->text(0).toInt(); + points[i].y = item->text(1).toInt(); + points[i].z = item->text(2).toInt(); + } + h->SetEnforcedNodes( goList, points ); + + return ""; +} + +//======================================================================= +//function : onTypeChanged +//purpose : +//======================================================================= + +void StdMeshersGUI_QuadrangleParamCreator::onTypeChanged(int type) +{ + myTabs->setTabEnabled( TAB_ENF_POINTS, ( type != StdMeshers::QUAD_REDUCED )); +} + +//======================================================================= +//function : onAddShape +//purpose : +//======================================================================= + +void StdMeshersGUI_QuadrangleParamCreator::onAddShape() +{ + if ( !mySelectedShapeIO.IsNull() ) + { + QListWidgetItem* item = new QListWidgetItem( mySelectedShapeIO->getName() ); + item->setData( Qt::UserRole, mySelectedShapeIO->getEntry() ); + myShapesList->addItem( item ); + mySelectedShapeIO.Nullify(); + myAddShapeBut->setEnabled( false ); + } +} + +//======================================================================= +//function : onRemoveShape +//purpose : +//======================================================================= + +void StdMeshersGUI_QuadrangleParamCreator::onRemoveShape() +{ + if ( QListWidgetItem * item = myShapesList->currentItem() ) + delete item; + onSelectionChanged(); +} + +//======================================================================= +//function : onAddPoint +//purpose : +//======================================================================= + +void StdMeshersGUI_QuadrangleParamCreator::onAddPoint() +{ + QTreeWidgetItem* item = new QTreeWidgetItem( QStringList() << "0" << "0" << "0" ); + item->setFlags( item->flags() | Qt::ItemIsEditable ); + myCoordsTreeWdg->addTopLevelItem( item ); +} + +//======================================================================= +//function : onRemovePoint +//purpose : +//======================================================================= + +void StdMeshersGUI_QuadrangleParamCreator::onRemovePoint() +{ + if ( myCoordsTreeWdg->topLevelItemCount() ) + delete myCoordsTreeWdg->currentItem(); +} + +//======================================================================= +//function : onSelectionChanged +//purpose : +//======================================================================= + +void StdMeshersGUI_QuadrangleParamCreator::onSelectionChanged() +{ + mySelectedShapeIO.Nullify(); + + // find a sole selected geometry + LightApp_SelectionMgr* selMgr = SMESHGUI::GetSMESHGUI()->selectionMgr(); + SALOME_ListIO selList; + selMgr->selectedObjects( selList ); + SALOME_ListIteratorOfListIO selIt( selList ); + for ( ; selIt.More(); selIt.Next() ) + { + GEOM::GEOM_Object_var go = GEOMBase::ConvertIOinGEOMObject( selIt.Value() ); + if ( !go->_is_nil() ) + { + if ( !mySelectedShapeIO.IsNull() ) + { + mySelectedShapeIO.Nullify(); + break; + } + mySelectedShapeIO = selIt.Value(); + if ( !mySelectedShapeIO->getName() || !mySelectedShapeIO->getName()[0] ) + mySelectedShapeIO.Nullify(); + } + } + // check if a selected geometry is not already in myShapesList + if ( !mySelectedShapeIO.IsNull() ) + { + for ( int i = 0; i < myShapesList->count(); ++i ) + if ( myShapesList->item(i)->data( Qt::UserRole ) == mySelectedShapeIO->getEntry() ) + { + mySelectedShapeIO.Nullify(); + break; + } + } + myAddShapeBut->setEnabled( !mySelectedShapeIO.IsNull() ); +} + +//======================================================================= +//function : onTabChanged +//purpose : +//======================================================================= + +void StdMeshersGUI_QuadrangleParamCreator::onTabChanged(int i) +{ + myVertexSelWdg->showPreview( i == TAB_VERTEX ); +} //================================================================================ // function : Constructor // purpose : //================================================================================ + StdMeshersGUI_QuadrangleParamWdg::StdMeshersGUI_QuadrangleParamWdg (QWidget * parent) - : QWidget(parent), - myType(0) + : QWidget(parent), myType(0) { myType = new QButtonGroup (this); @@ -71,6 +443,8 @@ StdMeshersGUI_QuadrangleParamWdg::StdMeshersGUI_QuadrangleParamWdg (QWidget * pa setLayout(typeLay); setMinimumWidth(300); + + connect( myType, SIGNAL( buttonClicked(int)), this, SIGNAL( typeChanged(int))); } //================================================================================ @@ -98,3 +472,25 @@ int StdMeshersGUI_QuadrangleParamWdg::GetType() { return myType->checkedId(); } + +//================================================================================ +/*! + \brief Constructor +*/ +StdMeshersGUI_QuadrangleParamCreator:: +ItemDelegate::ItemDelegate( QObject* parent ) : QItemDelegate( parent ) +{ +} +//================================================================================ +/*! + \brief Create item editor widget +*/ +QWidget* StdMeshersGUI_QuadrangleParamCreator:: +ItemDelegate::createEditor( QWidget* parent, + const QStyleOptionViewItem& option, + const QModelIndex& index ) const +{ + SMESHGUI_SpinBox* sb = new SMESHGUI_SpinBox( parent ); + sb->RangeStepAndValidator( COORD_MIN, COORD_MAX, 10 ); + return sb; +} diff --git a/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.h b/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.h index 7ce5b314d..539c83167 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.h +++ b/src/StdMeshersGUI/StdMeshersGUI_QuadrangleParamWdg.h @@ -24,26 +24,104 @@ // SMESH includes #include "SMESH_StdMeshersGUI.hxx" +#include "StdMeshersGUI_StdHypothesisCreator.h" + +#include // Qt includes #include +#include + class QButtonGroup; +class QLineEdit; +class QListWidget; +class QPushButton; +class QTabWidget; +class QTreeWidget; +class StdMeshersGUI_QuadrangleParamWdg; +class StdMeshersGUI_SubShapeSelectorWdg; + +//================================================================================ +/*! + * \brief Quadrangle Parameters Creator + */ +class STDMESHERSGUI_EXPORT StdMeshersGUI_QuadrangleParamCreator : public StdMeshersGUI_StdHypothesisCreator +{ + Q_OBJECT + + class ItemDelegate; + + public: + StdMeshersGUI_QuadrangleParamCreator( const QString& aHypType ); + + //virtual bool checkParams( QString& ) const; + virtual QString helpPage() const; + + protected: + virtual QFrame* buildFrame(); + virtual void retrieveParams() const; + virtual QString storeParams() const; + + private slots: + + void onTypeChanged(int type); + void onAddShape(); + void onRemoveShape(); + void onAddPoint(); + void onRemovePoint(); + void onSelectionChanged(); + void onTabChanged(int); + + private: + QLineEdit* myName; + StdMeshersGUI_QuadrangleParamWdg* myTypeWdg; + StdMeshersGUI_SubShapeSelectorWdg* myVertexSelWdg; + QListWidget* myShapesList; + QPushButton* myAddShapeBut; + QTreeWidget* myCoordsTreeWdg; + QTabWidget* myTabs; + Handle(SALOME_InteractiveObject) mySelectedShapeIO; +}; + +//================================================================================ +/*! + * \brief Transition type widget + */ class STDMESHERSGUI_EXPORT StdMeshersGUI_QuadrangleParamWdg : public QWidget { Q_OBJECT -public: + public: StdMeshersGUI_QuadrangleParamWdg (QWidget* parent = 0); ~StdMeshersGUI_QuadrangleParamWdg(); void SetType (int theType); int GetType (); -private: - // Quadranle preference, Triangle preference, Reduced - QButtonGroup* myType; + GEOM::ListOfGO* GetShapes(); + SMESH::nodes_array* GetPoints(); + void Set( GEOM::ListOfGO_var shapes, SMESH::nodes_array_var points ); + + signals: + + void typeChanged(int); + + private: + QButtonGroup* myType; // Quadranle preference, Triangle preference, Reduced +}; + +//================================================================================ +/*! + * \brief Item delegate for a tree widget + */ +class StdMeshersGUI_QuadrangleParamCreator::ItemDelegate : public QItemDelegate +{ + Q_OBJECT +public: + ItemDelegate( QObject* ); + QWidget* createEditor( QWidget*, const QStyleOptionViewItem&, const QModelIndex& ) const; }; #endif // STDMESHERSGUI_QUADRANGLEPARAMWDG_H diff --git a/src/StdMeshersGUI/StdMeshers_msg_en.ts b/src/StdMeshersGUI/StdMeshers_msg_en.ts index 8b94762e7..08dcd5671 100644 --- a/src/StdMeshersGUI/StdMeshers_msg_en.ts +++ b/src/StdMeshersGUI/StdMeshers_msg_en.ts @@ -492,6 +492,29 @@ Reduced + + StdMeshersGUI_QuadrangleParamCreator + + POINTS + Points + + + SHAPES + Vertices + + + TRANSITION + Transition + + + ENF_NODES + Enforced nodes + + + + + + StdMeshersGUI_LayerDistributionParamWdg -- 2.39.2