From: dmv Date: Thu, 11 Feb 2010 12:08:34 +0000 (+0000) Subject: 0020631: EDF 1195 SMESH : Merge Node : Optional display of the nodes of the mesh X-Git-Tag: V5_1_4a1~95 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=9e7387ef244e18c624bd77d8ff6d1e8c675fece7;p=modules%2Fsmesh.git 0020631: EDF 1195 SMESH : Merge Node : Optional display of the nodes of the mesh --- diff --git a/doc/salome/gui/SMESH/images/mergeelems.png b/doc/salome/gui/SMESH/images/mergeelems.png index c5e160884..eaa5a9323 100755 Binary files a/doc/salome/gui/SMESH/images/mergeelems.png and b/doc/salome/gui/SMESH/images/mergeelems.png differ diff --git a/doc/salome/gui/SMESH/images/mergeelems_auto.png b/doc/salome/gui/SMESH/images/mergeelems_auto.png new file mode 100644 index 000000000..f8ef74f13 Binary files /dev/null and b/doc/salome/gui/SMESH/images/mergeelems_auto.png differ diff --git a/doc/salome/gui/SMESH/images/mergenodes.png b/doc/salome/gui/SMESH/images/mergenodes.png index d14620101..024bc22e8 100755 Binary files a/doc/salome/gui/SMESH/images/mergenodes.png and b/doc/salome/gui/SMESH/images/mergenodes.png differ diff --git a/doc/salome/gui/SMESH/images/mergenodes_auto.png b/doc/salome/gui/SMESH/images/mergenodes_auto.png new file mode 100644 index 000000000..b2920867c Binary files /dev/null and b/doc/salome/gui/SMESH/images/mergenodes_auto.png differ diff --git a/doc/salome/gui/SMESH/input/merging_elements.doc b/doc/salome/gui/SMESH/input/merging_elements.doc index 821f6f9f2..230b3f759 100644 --- a/doc/salome/gui/SMESH/input/merging_elements.doc +++ b/doc/salome/gui/SMESH/input/merging_elements.doc @@ -5,42 +5,55 @@ \n This functionality allows to merge coincident elements of a mesh selectable in the dialog box. +
    +
  1. From the \b Modification choose \b Transformation and from its +sub-menu select the Merge elements item. The following dialog box +shall appear:
  2. \image html mergeelems_ico.png "Merge elements button" +\image html mergeelems_auto.png + +
  3. Automatic mode: +
      +
    • \b Name is the name of the mesh whose elements will be merged.
    • +
    • \b Automatic Mode or \b Manual Mode is to switch the dialog +controls type. +
    • In \b Automatic Mode the elements that were created on the same nodes will be merged.
    • +
    +

  4. \image html mergeelems.png + +
  5. If the \b Manual Mode is selected there are additional controls to +manage the elements to be merged in more detail:
      -
    • \b Name is the name of the mesh whose elements will be merged.
    • -
    • \b Tolerance is a maximum distance between elements sufficient for merging. -
        -
      • \b Detect button generates the list of coincident elements for the given \b Tolerance.
      • -
    • -
    • Coincident elements is a list of groupes of elements for - merging. All elements of each group will form one after the operation. -
        -
      • \b Remove button deletes the selected group from the list.
      • -
      • \b Add button adds to the list a group of elements selected in the - viewer with pressed "Shift" key.
      • -
      • Select all checkbox selects all groups.
      • -
    • -
    • Edit selected group list allows editing the selected group: -

      - \image html add.png -
      adds to the group the element selected in the viewer.
      -
      - \image html remove.png -
      removes from the group the selected element.
      -
      - \image html sort.png -
      moves the selected element to the first position in the - group. This means that all other elements will be merged into this - one.
      -
      -
    • -
    • To confirm your choice click \b Apply or Apply and Close button.
    • -
    +
  6. \b Detect button generates the list of coincident elements for the given \b Tolerance.
  7. +
  8. Coincident elements is a list of groupes of elements for +merging. All elements of each group will form one after the operation. +
      +
    • \b Remove button deletes the selected group from the list.
    • +
    • \b Add button adds to the list a group of elements selected in the +viewer with pressed "Shift" key.
    • +
    • Select all checkbox selects all groups.
    • +
  9. +
  10. Edit selected group list allows editing the selected group: +

    +\image html add.png +
    adds to the group the element selected in the viewer.
    +
    +\image html remove.png +
    removes from the group the selected element.
    +
    +\image html sort.png +
    moves the selected element to the first position in the +group. This means that all other elements will be merged into this +one.
    +
    +
  11. +
  12. To confirm your choice click \b Apply or Apply and Close button.
  13. +
In this picture you see a triangle which coincides with one of the elements of the mesh. After we apply Merge Elements functionality, the diff --git a/doc/salome/gui/SMESH/input/merging_nodes.doc b/doc/salome/gui/SMESH/input/merging_nodes.doc index fb88fb89e..f4ef2ab1f 100644 --- a/doc/salome/gui/SMESH/input/merging_nodes.doc +++ b/doc/salome/gui/SMESH/input/merging_nodes.doc @@ -11,19 +11,29 @@ with desirable tolerance, edit these groups and merge.
  1. From the \b Modification choose \b Transformation and from its sub-menu select the Merge nodes item. The following dialog box -shall appear: +shall appear:
  2. -\image html mergenodes.png +\image html mergenodes_auto.png +
  3. Automatic mode:
    • \b Name is the name of the mesh whose nodes will be merged.
    • +
    • \b Automatic Mode or \b Manual Mode is to switch the dialog +controls type.
    • \b Tolerance is a maximum distance between nodes sufficient for -merging. +merging, that is able in both dialog modes.
    • +
    • In \b Automatic Mode to merge the Nodes, just input the tolerance +value and confirm by \b Apply button.
    • +
    +

  4. + +\image html mergenodes.png + +
  5. If the \b Manual Mode is selected there are additional controls to +manage the nodes to be merged in more detail:
    • \b Detect button generates the list of coincident nodes for the given \b Tolerance.
    • -
    -
  6. Coincident nodes is a list of groupes of nodes for merging. All nodes of each group will form one after the operation. @@ -60,4 +70,4 @@ one.

    See Also a sample TUI Script of a \ref tui_merging_nodes "Merge Nodes" operation. -*/ \ No newline at end of file +*/ diff --git a/src/SMESHGUI/SMESHGUI_EditMeshDlg.cxx b/src/SMESHGUI/SMESHGUI_EditMeshDlg.cxx index 392ae1445..ac4ce0550 100644 --- a/src/SMESHGUI/SMESHGUI_EditMeshDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_EditMeshDlg.cxx @@ -365,6 +365,24 @@ SMESHGUI_EditMeshDlg::SMESHGUI_EditMeshDlg (SMESHGUI* theModule, GroupMeshLayout->addWidget(SelectMeshButton); GroupMeshLayout->addWidget(LineEditMesh); + /***************************************************************/ + // Controls for switch dialog behaviour + + TypeBox = new QGroupBox( tr( "SMESH_MODE" ), this ); + GroupType = new QButtonGroup( this ); + QHBoxLayout* aTypeBoxLayout = new QHBoxLayout( TypeBox ); + aTypeBoxLayout->setMargin( MARGIN ); + aTypeBoxLayout->setSpacing( SPACING ); + + QRadioButton* rb1 = new QRadioButton( tr( "SMESH_AUTOMATIC" ), TypeBox ); + QRadioButton* rb2 = new QRadioButton( tr( "SMESH_MANUAL" ), TypeBox ); + GroupType->addButton( rb1, 0 ); + GroupType->addButton( rb2, 1 ); + aTypeBoxLayout->addWidget( rb1 ); + aTypeBoxLayout->addWidget( rb2 ); + + myTypeId = 0; + /***************************************************************/ // Controls for coincident elements detecting GroupCoincident = new QGroupBox(myAction == 1 ? @@ -372,41 +390,54 @@ SMESHGUI_EditMeshDlg::SMESHGUI_EditMeshDlg (SMESHGUI* theModule, tr("COINCIDENT_NODES"), this); - QGridLayout* GroupCoincidentLayout = new QGridLayout(GroupCoincident); - GroupCoincidentLayout->setSpacing(SPACING); - GroupCoincidentLayout->setMargin(MARGIN); + QVBoxLayout* aCoincidentLayout = new QVBoxLayout(GroupCoincident); + + GroupCoincident->setLayout(aCoincidentLayout); + + QHBoxLayout* aSpinBoxLayout = new QHBoxLayout( GroupCoincident ); if (myAction == 0) { // case merge nodes TextLabelTolerance = new QLabel(tr("SMESH_TOLERANCE"), GroupCoincident); SpinBoxTolerance = new SMESHGUI_SpinBox(GroupCoincident); SpinBoxTolerance->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed)); - GroupCoincidentLayout->addWidget(TextLabelTolerance, 0, 0); - GroupCoincidentLayout->addWidget(SpinBoxTolerance, 0, 1); + aSpinBoxLayout->addWidget(TextLabelTolerance); + aSpinBoxLayout->addWidget(SpinBoxTolerance); + aCoincidentLayout->addLayout(aSpinBoxLayout); } else { TextLabelTolerance = 0; SpinBoxTolerance = 0; } - int row = GroupCoincidentLayout->rowCount(); + GroupCoincidentWidget = new QWidget(GroupCoincident); + QGridLayout* GroupCoincidentLayout = new QGridLayout(GroupCoincidentWidget); + GroupCoincidentLayout->setSpacing(SPACING); + GroupCoincidentLayout->setMargin(MARGIN); - ListCoincident = new QListWidget(GroupCoincident); + ListCoincident = new QListWidget(GroupCoincidentWidget); ListCoincident->setSelectionMode(QListWidget::ExtendedSelection); - DetectButton = new QPushButton(tr("DETECT"), GroupCoincident); - AddGroupButton = new QPushButton(tr("SMESH_BUT_ADD"), GroupCoincident); - RemoveGroupButton = new QPushButton(tr("SMESH_BUT_REMOVE"), GroupCoincident); + DetectButton = new QPushButton(tr("DETECT"), GroupCoincidentWidget); + AddGroupButton = new QPushButton(tr("SMESH_BUT_ADD"), GroupCoincidentWidget); + RemoveGroupButton = new QPushButton(tr("SMESH_BUT_REMOVE"), GroupCoincidentWidget); - SelectAllCB = new QCheckBox(tr("SELECT_ALL"), GroupCoincident); + SelectAllCB = new QCheckBox(tr("SELECT_ALL"), GroupCoincidentWidget); - GroupCoincidentLayout->addWidget(ListCoincident, row, 0, 4, 2); - GroupCoincidentLayout->addWidget(DetectButton, row, 2); - GroupCoincidentLayout->addWidget(AddGroupButton, row+2, 2); - GroupCoincidentLayout->addWidget(RemoveGroupButton, row+3, 2); - GroupCoincidentLayout->addWidget(SelectAllCB, row+4, 0, 1, 3); - GroupCoincidentLayout->setRowMinimumHeight(row+1, 10); - GroupCoincidentLayout->setRowStretch(row+1, 5); + if (myAction == 0) + GroupCoincidentWidget->hide(); + else + GroupCoincident->hide(); + + GroupCoincidentLayout->addWidget(ListCoincident, 0, 0, 4, 2); + GroupCoincidentLayout->addWidget(DetectButton, 0, 2); + GroupCoincidentLayout->addWidget(AddGroupButton, 2, 2); + GroupCoincidentLayout->addWidget(RemoveGroupButton, 3, 2); + GroupCoincidentLayout->addWidget(SelectAllCB, 4, 0, 1, 3); + GroupCoincidentLayout->setRowMinimumHeight(1, 10); + GroupCoincidentLayout->setRowStretch(1, 5); + + aCoincidentLayout->addWidget(GroupCoincidentWidget); /***************************************************************/ // Controls for editing the selected group @@ -434,6 +465,8 @@ SMESHGUI_EditMeshDlg::SMESHGUI_EditMeshDlg (SMESHGUI* theModule, GroupEditLayout->addWidget(RemoveElemButton, 0, 2); GroupEditLayout->addWidget(SetFirstButton, 1, 1, 1, 2); + GroupEdit->hide(); + /***************************************************************/ GroupButtons = new QGroupBox(this); QHBoxLayout* GroupButtonsLayout = new QHBoxLayout(GroupButtons); @@ -461,10 +494,13 @@ SMESHGUI_EditMeshDlg::SMESHGUI_EditMeshDlg (SMESHGUI* theModule, /***************************************************************/ DlgLayout->addWidget(GroupConstructors); DlgLayout->addWidget(GroupMesh); + DlgLayout->addWidget(TypeBox); DlgLayout->addWidget(GroupCoincident); DlgLayout->addWidget(GroupEdit); DlgLayout->addWidget(GroupButtons); + this->resize(10,10); + Init(); // Initialisations } @@ -490,6 +526,8 @@ void SMESHGUI_EditMeshDlg::Init() RadioButton->setChecked(true); + GroupType->button(0)->setChecked(true); + myEditCurrentArgument = (QWidget*)LineEditMesh; myActor = 0; @@ -500,17 +538,6 @@ void SMESHGUI_EditMeshDlg::Init() mySMESHGUI->SetActiveDialogBox((QDialog*)this); myIsBusy = false; - // Costruction of the logical filter - SMESH_TypeFilter* aMeshOrSubMeshFilter = new SMESH_TypeFilter (MESHorSUBMESH); - SMESH_TypeFilter* aSmeshGroupFilter = new SMESH_TypeFilter (GROUP); - - QList aListOfFilters; - if (aMeshOrSubMeshFilter) aListOfFilters.append(aMeshOrSubMeshFilter); - if (aSmeshGroupFilter) aListOfFilters.append(aSmeshGroupFilter); - - myMeshOrSubMeshOrGroupFilter = - new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR); - /* signals and slots connections */ connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); @@ -527,20 +554,23 @@ void SMESHGUI_EditMeshDlg::Init() connect(AddElemButton, SIGNAL (clicked()), this, SLOT(onAddElement())); connect(RemoveElemButton, SIGNAL (clicked()), this, SLOT(onRemoveElement())); connect(SetFirstButton, SIGNAL( clicked() ), this, SLOT( onSetFirst() ) ); + connect(GroupType, SIGNAL(buttonClicked(int)), this, SLOT(onTypeChanged(int))); connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); /* to close dialog if study change */ connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); - SetFirstButton->setEnabled(false); - buttonOk->setEnabled(false); - buttonApply->setEnabled(false); - // Init Mesh field from selection SelectionIntoArgument(); - myHelpFileName = "merging_elements_page.html"; + // Update Buttons + updateControls(); + + if (myAction == 0) + myHelpFileName = "merging_nodes_page.html"; + else + myHelpFileName = "merging_elements_page.html"; } //================================================================================= @@ -588,12 +618,27 @@ bool SMESHGUI_EditMeshDlg::ClickOnApply() return false; try { + if (myTypeId == 0) + onDetect(); + SUIT_OverrideCursor aWaitCursor; SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditor(); SMESH::long_array_var anIds = new SMESH::long_array; SMESH::array_of_long_array_var aGroupsOfElements = new SMESH::array_of_long_array; + if ( ListCoincident->count() == 0) { + if (myAction == 0) + SUIT_MessageBox::warning(this, + tr("SMESH_WARNING"), + tr("SMESH_NO_NODES_DETECTED")); + else + SUIT_MessageBox::warning(this, + tr("SMESH_WARNING"), + tr("SMESH_NO_ELEMENTS_DETECTED")); + return false; + } + aGroupsOfElements->length(ListCoincident->count()); int anArrayNum = 0; @@ -612,12 +657,22 @@ bool SMESHGUI_EditMeshDlg::ClickOnApply() else aMeshEditor->MergeElements (aGroupsOfElements.inout()); + if ( myTypeId == 0 ) { + if (myAction ==0) + SUIT_MessageBox::information(SMESHGUI::desktop(), tr("SMESH_INFORMATION"), + tr("SMESH_MERGED_NODES").arg(QString::number(ListCoincident->count()).toLatin1().data())); + else + SUIT_MessageBox::information(SMESHGUI::desktop(), tr("SMESH_INFORMATION"), + tr("SMESH_MERGED_ELEMENTS").arg(QString::number(ListCoincident->count()).toLatin1().data())); + } + + } catch(...) { } SMESH::UpdateView(); - onDetect(); + return true; } @@ -706,7 +761,7 @@ void SMESHGUI_EditMeshDlg::updateControls() { if (ListEdit->count() == 0) SetFirstButton->setEnabled(false); - bool enable = !(myMesh->_is_nil()) && ListCoincident->count(); + bool enable = !(myMesh->_is_nil()) && (ListCoincident->count() || (myTypeId == 0)); buttonOk->setEnabled(enable); buttonApply->setEnabled(enable); } @@ -1005,7 +1060,8 @@ void SMESHGUI_EditMeshDlg::SetEditCurrentArgument() SMESH::SetPointRepresentation(false); if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) aViewWindow->SetSelectionMode(ActorSelection); - mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter); + if (myTypeId == 1) + mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter); } myEditCurrentArgument->setFocus(); @@ -1028,41 +1084,50 @@ void SMESHGUI_EditMeshDlg::SelectionIntoArgument() myActor = 0; int nbSel = SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString); - if (nbSel != 1) + if (nbSel != 1) { + myIdPreview->SetPointsLabeled(false); + SMESH::SetPointRepresentation(false); + mySelectionMgr->clearFilters(); + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->SetSelectionMode(ActorSelection); return; + } SALOME_ListIO aList; - mySelectionMgr->selectedObjects(aList, SVTK_Viewer::Type()); + mySelectionMgr->selectedObjects(aList); Handle(SALOME_InteractiveObject) IO = aList.First(); myMesh = SMESH::GetMeshByIO(IO); if (myMesh->_is_nil()) return; + + LineEditMesh->setText(aString); myActor = SMESH::FindActorByEntry(IO->getEntry()); if (!myActor) myActor = SMESH::FindActorByObject(myMesh); - if(!myActor) - return; - mySubMeshOrGroup = SMESH::SMESH_IDSource::_nil(); - - if ((!SMESH::IObjectToInterface(IO)->_is_nil() || //SUBMESH OR GROUP - !SMESH::IObjectToInterface(IO)->_is_nil()) && - !SMESH::IObjectToInterface(IO)->_is_nil()) - mySubMeshOrGroup = SMESH::IObjectToInterface(IO); - - LineEditMesh->setText(aString); - - if (myAction == 0) { - SMESH::SetPointRepresentation(true); - if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) - aViewWindow->SetSelectionMode(NodeSelection); + if ( myActor && myTypeId ==1 ) { + mySubMeshOrGroup = SMESH::SMESH_IDSource::_nil(); + mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter); + + if ((!SMESH::IObjectToInterface(IO)->_is_nil() || //SUBMESH OR GROUP + !SMESH::IObjectToInterface(IO)->_is_nil()) && + !SMESH::IObjectToInterface(IO)->_is_nil()) + mySubMeshOrGroup = SMESH::IObjectToInterface(IO); + + if (myAction == 0) { + SMESH::SetPointRepresentation(true); + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->SetSelectionMode(NodeSelection); + } + else + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->SetSelectionMode(CellSelection); } - else - if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) - aViewWindow->SetSelectionMode(CellSelection); + + updateControls(); } } @@ -1074,6 +1139,7 @@ void SMESHGUI_EditMeshDlg::DeactivateActiveDialog() { if (GroupConstructors->isEnabled()) { GroupConstructors->setEnabled(false); + TypeBox->setEnabled(false); GroupMesh->setEnabled(false); GroupCoincident->setEnabled(false); GroupEdit->setEnabled(false); @@ -1095,6 +1161,7 @@ void SMESHGUI_EditMeshDlg::ActivateThisDialog() /* Emit a signal to deactivate the active dialog */ mySMESHGUI->EmitSignalDeactivateDialog(); GroupConstructors->setEnabled(true); + TypeBox->setEnabled(true); GroupMesh->setEnabled(true); GroupCoincident->setEnabled(true); GroupEdit->setEnabled(true); @@ -1150,3 +1217,63 @@ void SMESHGUI_EditMeshDlg::keyPressEvent( QKeyEvent* e) ClickOnHelp(); } } + +//================================================================================= +// function : onTypeChanged() +// purpose : the type radio button management +//================================================================================= +void SMESHGUI_EditMeshDlg::onTypeChanged (int id) +{ + if (myTypeId == id) + return; + + myTypeId = id; + switch (id) { + case 0: + myIdPreview->SetPointsLabeled(false); + SMESH::SetPointRepresentation(false); + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->SetSelectionMode(ActorSelection); + mySelectionMgr->clearFilters(); + if (myAction == 0) + GroupCoincidentWidget->hide(); + else + GroupCoincident->hide(); + GroupEdit->hide(); + break; + case 1: + SMESH::UpdateView(); + + // Costruction of the logical filter + SMESH_TypeFilter* aMeshOrSubMeshFilter = new SMESH_TypeFilter (MESHorSUBMESH); + SMESH_TypeFilter* aSmeshGroupFilter = new SMESH_TypeFilter (GROUP); + + QList aListOfFilters; + if (aMeshOrSubMeshFilter) aListOfFilters.append(aMeshOrSubMeshFilter); + if (aSmeshGroupFilter) aListOfFilters.append(aSmeshGroupFilter); + + myMeshOrSubMeshOrGroupFilter = + new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR); + + if (myAction == 0) { + GroupCoincidentWidget->show(); + SMESH::SetPointRepresentation(true); + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->SetSelectionMode(NodeSelection); + } + else { + GroupCoincident->show(); + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->SetSelectionMode(CellSelection); + } + GroupEdit->show(); + break; + } + updateControls(); + + qApp->processEvents(); + updateGeometry(); + resize(10,10); + + SelectionIntoArgument(); +} diff --git a/src/SMESHGUI/SMESHGUI_EditMeshDlg.h b/src/SMESHGUI/SMESHGUI_EditMeshDlg.h index 14b3d9ff7..2a9c487ae 100644 --- a/src/SMESHGUI/SMESHGUI_EditMeshDlg.h +++ b/src/SMESHGUI/SMESHGUI_EditMeshDlg.h @@ -49,6 +49,7 @@ class QPushButton; class QRadioButton; class QCheckBox; class QListWidget; +class QButtonGroup; class SMESHGUI; class SMESHGUI_SpinBox; class SMESH_Actor; @@ -102,6 +103,7 @@ private: int myAction; bool myIsBusy; + int myTypeId; // Widgets QGroupBox* GroupConstructors; @@ -119,6 +121,7 @@ private: QLineEdit* LineEditMesh; QGroupBox* GroupCoincident; + QWidget* GroupCoincidentWidget; QLabel* TextLabelTolerance; SMESHGUI_SpinBox* SpinBoxTolerance; QPushButton* DetectButton; @@ -132,6 +135,9 @@ private: QPushButton* AddElemButton; QPushButton* RemoveElemButton; QPushButton* SetFirstButton; + + QGroupBox* TypeBox; + QButtonGroup* GroupType; QString myHelpFileName; @@ -154,6 +160,7 @@ private: void SelectionIntoArgument(); void DeactivateActiveDialog(); void ActivateThisDialog(); + void onTypeChanged(int); }; #endif // SMESHGUI_EDITMESHDLG_H diff --git a/src/SMESHGUI/SMESH_msg_en.ts b/src/SMESHGUI/SMESH_msg_en.ts index 025b4c561..f04580041 100644 --- a/src/SMESHGUI/SMESH_msg_en.ts +++ b/src/SMESHGUI/SMESH_msg_en.ts @@ -425,6 +425,7 @@ MEN_MERGE_ELEMENTS Merge Elements + MEN_MESH Mesh @@ -811,7 +812,7 @@ Please enter correct values and try again SMESH_ADD_HYP_WRN "%1" assigned but: - + SMESH_ADD_POLYGON @@ -1474,10 +1475,38 @@ add the exported data to its contents? SMESH_MEN_SubMeshesOnVertex SubMeshes On Vertex + + SMESH_AUTOMATIC + Automatic + + + SMESH_MANUAL + Manual + SMESH_MERGE_ELEMENTS Merge elements + + SMESH_MODE + Mode + + + SMESH_MERGED_ELEMENTS + %1 elements successfully merged. + + + SMESH_MERGED_NODES + %1 nodes successfully merged. + + + SMESH_NO_ELEMENTS_DETECTED + There are no elements to merge. + + + SMESH_NO_NODES_DETECTED + There are no nodes to merge. + SMESH_MERGE_NODES Merge nodes @@ -4810,6 +4839,7 @@ It is impossible to read point coordinates from file MERGE_EQUAL_ELEMENTS Merge equal elements + NODE1_TO_MERGE Node 1 To Merge