Version: 9.16.0
SMESHGUI_MultiEditDlg.h
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, OPEN CASCADE
2//
3// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5//
6// This library is free software; you can redistribute it and/or
7// modify it under the terms of the GNU Lesser General Public
8// License as published by the Free Software Foundation; either
9// version 2.1 of the License, or (at your option) any later version.
10//
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14// Lesser General Public License for more details.
15//
16// You should have received a copy of the GNU Lesser General Public
17// License along with this library; if not, write to the Free Software
18// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19//
20// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21//
22
23// File : SMESHGUI_MultiEditDlg.h
24// Author : Sergey LITONIN, Open CASCADE S.A.S.
25//
26#ifndef SMESHGUI_MULTIEDITDLG_H
27#define SMESHGUI_MULTIEDITDLG_H
28
29// SMESH includes
30#include "SMESH_SMESHGUI.hxx"
31#include "SMESHGUI_PreviewDlg.h"
32
33// Qt includes
34#include <QDialog>
35
36// OCCT includes
37#include <TColStd_MapOfInteger.hxx>
38
39// IDL includes
40#include <SALOMEconfig.h>
41#include CORBA_SERVER_HEADER(SMESH_Mesh)
42#include CORBA_SERVER_HEADER(SMESH_MeshEditor)
43
44#include <smIdType.hxx>
45
46class SMESHGUI;
49
50class SMESH_Actor;
51
52class LightApp_SelectionMgr;
53class SALOME_Actor;
54class SVTK_Selector;
55
56class QListWidget;
57class QComboBox;
58class QCheckBox;
59class QGroupBox;
60class QLineEdit;
61class QPushButton;
62class QButtonGroup;
63
71{
72 Q_OBJECT
73
74public:
76 const int theMode,
77 const bool the3d2d = false,
78 bool theDoInit = true );
79 virtual ~SMESHGUI_MultiEditDlg();
80
81 void Init();
82
83 bool eventFilter( QObject*, QEvent* );
84
85signals:
87
88protected slots:
89 void onOk();
90 virtual bool onApply();
91 virtual void reject();
92 void onHelp();
93
94 void onDeactivate();
95 virtual void onSelectionDone();
96
97 void onFilterBtn();
98 void onAddBtn();
99 void onRemoveBtn();
100 void onSortListBtn();
101 void onListSelectionChanged();
102 void onSubmeshChk();
103 void onGroupChk();
104 virtual void onToAllChk();
105 void onFilterAccepted();
106 virtual void on3d2dChanged(int);
107 void onOpenView();
108 void onCloseView();
109
110 SMESH::NumericalFunctor_ptr getNumericalFunctor();
111
112protected:
113 void enterEvent( QEvent * );
114 void keyPressEvent( QKeyEvent* );
115 QWidget* createButtonFrame( QWidget* );
116 QWidget* createMainFrame( QWidget*, const bool );
117 virtual bool isValid( const bool );
118 SMESH::smIdType_array_var getIds(SMESH::SMESH_IDSource_var& obj);
119 void updateButtons();
120 virtual void setSelectionMode();
121 virtual bool isIdValid( const int ) const;
122 virtual bool process( SMESH::SMESH_MeshEditor_ptr,
123 const SMESH::smIdType_array& ,
124 SMESH::SMESH_IDSource_ptr obj) = 0;
125 virtual smIdType nbElemsInMesh() = 0;
126 int entityType();
127
128protected:
129 QPushButton* myOkBtn;
130 QPushButton* myApplyBtn;
131 QPushButton* myCloseBtn;
132 QPushButton* myHelpBtn;
134 SMESH::SMESH_Mesh_var myMesh;
135
136 LightApp_SelectionMgr* mySelectionMgr;
137 SVTK_Selector* mySelector;
139
142
144 QButtonGroup* myGroupChoice;
146
147 QListWidget* myListBox;
148 QPushButton* myFilterBtn;
149 QPushButton* myAddBtn;
150 QPushButton* myRemoveBtn;
151 QPushButton* mySortBtn;
152
153 QCheckBox* myToAllChk;
154 QButtonGroup* myEntityTypeGrp;
155
156 QCheckBox* mySubmeshChk;
157 QPushButton* mySubmeshBtn;
158 QLineEdit* mySubmesh;
159
160 QCheckBox* myGroupChk;
161 QPushButton* myGroupBtn;
162 QLineEdit* myGroup;
163
165 TColStd_MapOfInteger myIds;
167 bool myBusy;
169
173};
174
180{
181 Q_OBJECT
182
183public:
186
187protected:
188 virtual bool process( SMESH::SMESH_MeshEditor_ptr,
189 const SMESH::smIdType_array& ,
190 SMESH::SMESH_IDSource_ptr obj);
191 virtual smIdType nbElemsInMesh();
192};
193
199{
200 Q_OBJECT
201
202public:
205
206protected:
207 virtual bool isValid( const bool );
208 virtual bool process( SMESH::SMESH_MeshEditor_ptr,
210 SMESH::SMESH_IDSource_ptr obj );
211 virtual smIdType nbElemsInMesh();
212
213protected slots:
214 virtual void onDisplaySimulation( bool );
215
216private:
218};
219
220/*
221 Class : SMESHGUI_CuttingOfQuadsDlg
222 Description : Construction of quadrangles by automatic association of triangles
223*/
225{
226 Q_OBJECT
227
228public:
231
232protected:
233 virtual bool process( SMESH::SMESH_MeshEditor_ptr,
234 const SMESH::smIdType_array& ,
235 SMESH::SMESH_IDSource_ptr obj);
236 virtual smIdType nbElemsInMesh();
237
238protected slots:
239 virtual void reject();
240 void onCriterionRB();
241 void onPreviewChk();
242
243private:
244 void displayPreview();
245 void erasePreview();
246
247private:
249 QCheckBox* myPreviewChk;
250};
251
257{
258 Q_OBJECT
259
260public:
263
264protected slots:
265
266 virtual void on3d2dChanged(int);
267 virtual void onSelectionDone();
268
269 void onFacetSelection(bool);
270 void onSetDir();
271 void updateNormalPreview(const QString& s="");
272
273protected:
274
275 virtual bool process( SMESH::SMESH_MeshEditor_ptr,
277 SMESH::SMESH_IDSource_ptr obj );
278 virtual smIdType nbElemsInMesh();
279
280 virtual void setSelectionMode();
281 void showFacetByElement( int id );
282 bool isIntoPrisms();
283
287 QPushButton* myFacetSelBtn;
288 QPushButton* myAxisBtn[3];
289 QCheckBox* myAllDomainsChk;
290
292};
293
294#endif // SMESHGUI_MULTIEDITDLG_H
#define SMESHGUI_EXPORT
Definition: SMESH_SMESHGUI.hxx:36
Class : SMESHGUI_ChangeOrientationDlg Description : Modification of orientation of faces.
Definition: SMESHGUI_MultiEditDlg.h:180
virtual bool process(SMESH::SMESH_MeshEditor_ptr, const SMESH::smIdType_array &, SMESH::SMESH_IDSource_ptr obj)
Definition: SMESHGUI_MultiEditDlg.cxx:1102
SMESHGUI_ChangeOrientationDlg(SMESHGUI *)
Class : SMESHGUI_ChangeOrientationDlg Description : Modification of orientation of faces.
Definition: SMESHGUI_MultiEditDlg.cxx:1091
virtual ~SMESHGUI_ChangeOrientationDlg()
Definition: SMESHGUI_MultiEditDlg.cxx:1098
virtual smIdType nbElemsInMesh()
Definition: SMESHGUI_MultiEditDlg.cxx:1112
Definition: SMESHGUI_MultiEditDlg.h:225
SALOME_Actor * myPreviewActor
Definition: SMESHGUI_MultiEditDlg.h:248
virtual bool process(SMESH::SMESH_MeshEditor_ptr, const SMESH::smIdType_array &, SMESH::SMESH_IDSource_ptr obj)
Definition: SMESHGUI_MultiEditDlg.cxx:1304
SMESHGUI_CuttingOfQuadsDlg(SMESHGUI *)
Class : SMESHGUI_CuttingOfQuadsDlg Description : Automatic splitting of quadrangles into triangles.
Definition: SMESHGUI_MultiEditDlg.cxx:1262
virtual void reject()
Definition: SMESHGUI_MultiEditDlg.cxx:1298
virtual smIdType nbElemsInMesh()
Definition: SMESHGUI_MultiEditDlg.cxx:1330
virtual ~SMESHGUI_CuttingOfQuadsDlg()
Definition: SMESHGUI_MultiEditDlg.cxx:1294
void displayPreview()
Definition: SMESHGUI_MultiEditDlg.cxx:1374
QCheckBox * myPreviewChk
Definition: SMESHGUI_MultiEditDlg.h:249
void onPreviewChk()
Definition: SMESHGUI_MultiEditDlg.cxx:1356
void onCriterionRB()
Definition: SMESHGUI_MultiEditDlg.cxx:1336
void erasePreview()
Definition: SMESHGUI_MultiEditDlg.cxx:1361
Class : SMESHGUI_FilterDlg Description : Dialog to specify filters for VTK viewer.
Definition: SMESHGUI_FilterDlg.h:217
Class : SMESHGUI_MultiEditDlg Description : Base class for dialogs of diagonal inversion and union of...
Definition: SMESHGUI_MultiEditDlg.h:71
SMESH::SMESH_Mesh_var myMesh
Definition: SMESHGUI_MultiEditDlg.h:134
QPushButton * mySortBtn
Definition: SMESHGUI_MultiEditDlg.h:151
QButtonGroup * myGroupChoice
Definition: SMESHGUI_MultiEditDlg.h:144
QGroupBox * myCriterionGrp
Definition: SMESHGUI_MultiEditDlg.h:141
QGroupBox * myAdvancedGrp
Definition: SMESHGUI_MultiEditDlg.h:171
SMESHGUI * mySMESHGUI
Definition: SMESHGUI_MultiEditDlg.h:138
QLineEdit * myGroup
Definition: SMESHGUI_MultiEditDlg.h:162
LightApp_SelectionMgr * mySelectionMgr
Definition: SMESHGUI_MultiEditDlg.h:136
QPushButton * myHelpBtn
Definition: SMESHGUI_MultiEditDlg.h:132
QCheckBox * myGroupChk
Definition: SMESHGUI_MultiEditDlg.h:160
QString myHelpFileName
Definition: SMESHGUI_MultiEditDlg.h:170
QPushButton * myApplyBtn
Definition: SMESHGUI_MultiEditDlg.h:130
SMESHGUI_FilterDlg * myFilterDlg
Definition: SMESHGUI_MultiEditDlg.h:164
QLineEdit * mySubmesh
Definition: SMESHGUI_MultiEditDlg.h:158
QPushButton * myFilterBtn
Definition: SMESHGUI_MultiEditDlg.h:148
QCheckBox * myAvoidOverConstrainedChk
Definition: SMESHGUI_MultiEditDlg.h:172
QPushButton * myOkBtn
Definition: SMESHGUI_MultiEditDlg.h:129
QButtonGroup * myEntityTypeGrp
Definition: SMESHGUI_MultiEditDlg.h:154
SVTK_Selector * mySelector
Definition: SMESHGUI_MultiEditDlg.h:137
QPushButton * mySubmeshBtn
Definition: SMESHGUI_MultiEditDlg.h:157
QCheckBox * myToAllChk
Definition: SMESHGUI_MultiEditDlg.h:153
QCheckBox * mySubmeshChk
Definition: SMESHGUI_MultiEditDlg.h:156
int myFilterType
Definition: SMESHGUI_MultiEditDlg.h:166
QComboBox * myComboBoxFunctor
Definition: SMESHGUI_MultiEditDlg.h:145
QPushButton * myAddBtn
Definition: SMESHGUI_MultiEditDlg.h:149
virtual bool process(SMESH::SMESH_MeshEditor_ptr, const SMESH::smIdType_array &, SMESH::SMESH_IDSource_ptr obj)=0
QPushButton * myRemoveBtn
Definition: SMESHGUI_MultiEditDlg.h:150
TColStd_MapOfInteger myIds
Definition: SMESHGUI_MultiEditDlg.h:165
QWidget * myChoiceWidget
Definition: SMESHGUI_MultiEditDlg.h:143
QPushButton * myGroupBtn
Definition: SMESHGUI_MultiEditDlg.h:161
QGroupBox * mySelGrp
Definition: SMESHGUI_MultiEditDlg.h:140
int myEntityType
Definition: SMESHGUI_MultiEditDlg.h:168
QPushButton * myCloseBtn
Definition: SMESHGUI_MultiEditDlg.h:131
bool myBusy
Definition: SMESHGUI_MultiEditDlg.h:167
QListWidget * myListBox
Definition: SMESHGUI_MultiEditDlg.h:147
SMESH_Actor * myActor
Definition: SMESHGUI_MultiEditDlg.h:133
virtual smIdType nbElemsInMesh()=0
Definition: SMESHGUI_PreviewDlg.h:44
void onOpenView()
Definition: SMESHGUI_PreviewDlg.cxx:144
void onCloseView()
Definition: SMESHGUI_PreviewDlg.cxx:132
Definition: SMESHGUI_SpinBox.h:48
Class : SMESHGUI_SplitVolumesDlg Description : Split all volumes into tetrahedrons.
Definition: SMESHGUI_MultiEditDlg.h:257
SMESHGUI_SpinBox * myDirSpin[3]
Definition: SMESHGUI_MultiEditDlg.h:286
double myCellSize
Definition: SMESHGUI_MultiEditDlg.h:291
QPushButton * myFacetSelBtn
Definition: SMESHGUI_MultiEditDlg.h:287
virtual bool process(SMESH::SMESH_MeshEditor_ptr, const SMESH::smIdType_array &, SMESH::SMESH_IDSource_ptr obj)
Definition: SMESHGUI_MultiEditDlg.cxx:1661
QPushButton * myAxisBtn[3]
Definition: SMESHGUI_MultiEditDlg.h:288
void onFacetSelection(bool)
Slot called when facet selection button is clicked.
Definition: SMESHGUI_MultiEditDlg.cxx:1989
SMESHGUI_SplitVolumesDlg(SMESHGUI *)
Class : SMESHGUI_SplitVolumesDlg Description : Spliter of volumes into tetrahedra or prisms.
Definition: SMESHGUI_MultiEditDlg.cxx:1550
virtual smIdType nbElemsInMesh()
Definition: SMESHGUI_MultiEditDlg.cxx:1723
virtual ~SMESHGUI_SplitVolumesDlg()
Definition: SMESHGUI_MultiEditDlg.cxx:1657
QCheckBox * myAllDomainsChk
Definition: SMESHGUI_MultiEditDlg.h:289
void onSetDir()
Slot called when an || axis button is clicked.
Definition: SMESHGUI_MultiEditDlg.cxx:2002
SMESHGUI_SpinBox * myPointSpin[3]
Definition: SMESHGUI_MultiEditDlg.h:285
void showFacetByElement(int id)
Show facet normal by a selected element.
Definition: SMESHGUI_MultiEditDlg.cxx:1867
virtual void on3d2dChanged(int)
Slot called when a target element type changes.
Definition: SMESHGUI_MultiEditDlg.cxx:1739
bool isIntoPrisms()
Definition: SMESHGUI_MultiEditDlg.cxx:1728
void updateNormalPreview(const QString &s="")
SLOT called when a point or a normal changes.
Definition: SMESHGUI_MultiEditDlg.cxx:1951
QGroupBox * myFacetSelGrp
Definition: SMESHGUI_MultiEditDlg.h:284
virtual void onSelectionDone()
SLOT called when selection changed.
Definition: SMESHGUI_MultiEditDlg.cxx:1826
virtual void setSelectionMode()
Set selection mode.
Definition: SMESHGUI_MultiEditDlg.cxx:1775
Class : SMESHGUI_UnionOfTrianglesDlg Description : Construction of quadrangles by automatic associati...
Definition: SMESHGUI_MultiEditDlg.h:199
virtual smIdType nbElemsInMesh()
Definition: SMESHGUI_MultiEditDlg.cxx:1210
virtual void onDisplaySimulation(bool)
Definition: SMESHGUI_MultiEditDlg.cxx:1215
SMESHGUI_UnionOfTrianglesDlg(SMESHGUI *)
Class : SMESHGUI_UnionOfTrianglesDlg Description : Construction of quadrangles by automatic associati...
Definition: SMESHGUI_MultiEditDlg.cxx:1123
virtual bool isValid(const bool)
Definition: SMESHGUI_MultiEditDlg.cxx:1170
SMESHGUI_SpinBox * myMaxAngleSpin
Definition: SMESHGUI_MultiEditDlg.h:217
virtual bool process(SMESH::SMESH_MeshEditor_ptr, const SMESH::smIdType_array &, SMESH::SMESH_IDSource_ptr obj)
Definition: SMESHGUI_MultiEditDlg.cxx:1191
virtual ~SMESHGUI_UnionOfTrianglesDlg()
Definition: SMESHGUI_MultiEditDlg.cxx:1166
Definition: SMESHGUI.h:84
Definition: SMESH_Actor.h:56
sequence< smIdType > smIdType_array
Definition: SMESH_Mesh.idl:45