Version: 9.16.0
SMESHGUI_Measurements.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// File : SMESHGUI_Measurements.h
23// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
24
25#ifndef SMESHGUI_MEASUREMENTS_H
26#define SMESHGUI_MEASUREMENTS_H
27
28#include "SMESH_SMESHGUI.hxx"
29
30#include <QDialog>
31
32class QButtonGroup;
33class QLineEdit;
34class QTabWidget;
35class QGroupBox;
37class SALOME_Actor;
38class SMESH_Actor;
41
42#include <SALOMEconfig.h>
43#include CORBA_SERVER_HEADER(SMESH_Mesh)
44
45#include <gp_Vec.hxx>
46
48{
49 Q_OBJECT
50
51 enum { NoTgt, FirstTgt, SecondTgt };
52 enum { OriginTgt, NodeTgt, ElementTgt, ObjectTgt };
53
54public:
57
58 bool eventFilter( QObject*, QEvent* );
59 void updateSelection();
60 void deactivate();
61
62private:
63 void setTarget( int );
64 void erasePreview();
65 void displayPreview();
66 void createPreview( double, double, double, double, double, double );
67
68private slots:
69 void selectionChanged();
70 void firstChanged();
71 void secondChanged();
72 void firstEdited();
73 void secondEdited();
74 void compute();
75 void clear();
76
77private:
78 QButtonGroup* myFirst;
79 QButtonGroup* mySecond;
80 QLineEdit* myFirstTgt;
81 QLineEdit* mySecondTgt;
82 QLineEdit* myDX;
83 QLineEdit* myDY;
84 QLineEdit* myDZ;
85 QLineEdit* myDistance;
87 SMESH::SMESH_IDSource_var myFirstSrc;
88 SMESH::SMESH_IDSource_var mySecondSrc;
94};
95
97{
98 Q_OBJECT
99
100 enum { ObjectsSrc, NodesSrc, ElementsSrc };
101
102public:
105
106 void updateSelection();
107 void deactivate();
108 void erasePreview();
109
110private:
111 void displayPreview();
112 void createPreview( double, double, double, double, double, double );
113
114private slots:
115 void selectionChanged();
116 void sourceChanged();
117 void sourceEdited();
118 void compute();
119 void clear();
120
121private:
122 typedef QList<SMESH::SMESH_IDSource_var> SourceList;
123 QButtonGroup* mySourceMode;
124 QLineEdit* mySource;
125 QLineEdit* myXmin;
126 QLineEdit* myXmax;
127 QLineEdit* myDX;
128 QLineEdit* myYmin;
129 QLineEdit* myYmax;
130 QLineEdit* myDY;
131 QLineEdit* myZmin;
132 QLineEdit* myZmax;
133 QLineEdit* myDZ;
137 QString myIDs;
140};
141
143{
144 Q_OBJECT
145
146public:
148 enum Mode { Length, Area, Volume };
149
152
153 void setMode( const Mode );
154
155 void updateSelection();
156 void deactivate();
157
158private slots:
159 void selectionChanged();
160 void modeChanged( int);
161 void compute();
162 void clear();
163
164private:
165 QButtonGroup* myMode;
166 QLineEdit* mySource;
168 QLineEdit* myResult;
169 SMESH::SMESH_IDSource_var mySrc;
171};
172
174{
175 Q_OBJECT
176
177public:
178
179 SMESHGUI_Angle( QWidget* = 0 );
181
183 void updateSelection();
184
185private slots:
186 void selectionChanged();
187 void nodesEdited();
188 void compute();
189 void clear();
190
191private:
192
193 bool addPointByActor( int id );
194 bool addPointByIDSource( int id );
195 gp_Vec getNormal(const gp_Vec& vec10 );
196
197 QLineEdit* myNodes;
198 QLineEdit* myResult;
199
200 SMESH::SMESH_IDSource_var myIDSrc;
202
203 std::vector< SMESH::PointStruct > myPoints;
205};
206
208{
209 Q_OBJECT
210
211 enum { NodeMode, ElemMode };
212
213public:
215 enum {
221 Angle
222 };
223
224 SMESHGUI_MeasureDlg( QWidget* = 0, int = MinDistance );
226
227 void reject();
228
229protected:
230 void keyPressEvent( QKeyEvent* );
231 void enterEvent( QEvent* );
232
233private slots:
234 void help();
235 void updateSelection();
236 void activate();
237 void deactivate();
238
239private:
240 QTabWidget* myTabWidget;
245};
246
247#endif // SMESHGUI_MEASUREMENTS_H
#define SMESHGUI_EXPORT
Definition: SMESH_SMESHGUI.hxx:36
Angle measurement widget.
Definition: SMESHGUI_Measurements.h:174
SMESH::SMESH_IDSource_var myIDSrc
Definition: SMESHGUI_Measurements.h:200
SMESH_Actor * myActor
Definition: SMESHGUI_Measurements.h:201
SMESHGUI_MeshEditPreview * myPreview
Definition: SMESHGUI_Measurements.h:204
QLineEdit * myNodes
Definition: SMESHGUI_Measurements.h:197
QLineEdit * myResult
Definition: SMESHGUI_Measurements.h:198
std::vector< SMESH::PointStruct > myPoints
Definition: SMESHGUI_Measurements.h:203
basic properties measurement widget.
Definition: SMESHGUI_Measurements.h:143
QLineEdit * mySource
Definition: SMESHGUI_Measurements.h:166
SMESH::SMESH_IDSource_var mySrc
Definition: SMESHGUI_Measurements.h:169
QGroupBox * myResultGrp
Definition: SMESHGUI_Measurements.h:167
SUIT_SelectionFilter * myFilter
Definition: SMESHGUI_Measurements.h:170
QButtonGroup * myMode
Definition: SMESHGUI_Measurements.h:165
QLineEdit * myResult
Definition: SMESHGUI_Measurements.h:168
Mode
Property type.
Definition: SMESHGUI_Measurements.h:148
@ Area
Definition: SMESHGUI_Measurements.h:148
Bounding box measurement widget.
Definition: SMESHGUI_Measurements.h:97
QLineEdit * myDY
Definition: SMESHGUI_Measurements.h:130
SMESH_Actor * myActor
Definition: SMESHGUI_Measurements.h:135
QLineEdit * myYmin
Definition: SMESHGUI_Measurements.h:128
SMESHGUI_IdValidator * myValidator
Definition: SMESHGUI_Measurements.h:136
QLineEdit * myYmax
Definition: SMESHGUI_Measurements.h:129
QLineEdit * myZmax
Definition: SMESHGUI_Measurements.h:132
QLineEdit * myDZ
Definition: SMESHGUI_Measurements.h:133
SUIT_SelectionFilter * myFilter
Definition: SMESHGUI_Measurements.h:138
QLineEdit * myDX
Definition: SMESHGUI_Measurements.h:127
QString myIDs
Definition: SMESHGUI_Measurements.h:137
SourceList mySrc
Definition: SMESHGUI_Measurements.h:134
QLineEdit * myZmin
Definition: SMESHGUI_Measurements.h:131
QList< SMESH::SMESH_IDSource_var > SourceList
Definition: SMESHGUI_Measurements.h:122
QLineEdit * mySource
Definition: SMESHGUI_Measurements.h:124
QLineEdit * myXmin
Definition: SMESHGUI_Measurements.h:125
SALOME_Actor * myPreview
Definition: SMESHGUI_Measurements.h:139
QButtonGroup * mySourceMode
Definition: SMESHGUI_Measurements.h:123
QLineEdit * myXmax
Definition: SMESHGUI_Measurements.h:126
Definition: SMESHGUI_IdValidator.h:39
Definition: SMESHGUI_Measurements.h:208
SMESHGUI_BoundingBox * myBndBox
Definition: SMESHGUI_Measurements.h:242
SMESHGUI_MinDistance * myMinDist
Definition: SMESHGUI_Measurements.h:241
SMESHGUI_Angle * myAngle
Definition: SMESHGUI_Measurements.h:244
QTabWidget * myTabWidget
Definition: SMESHGUI_Measurements.h:240
@ Length
length
Definition: SMESHGUI_Measurements.h:218
@ Volume
volume
Definition: SMESHGUI_Measurements.h:220
@ MinDistance
minimum distance
Definition: SMESHGUI_Measurements.h:216
@ BoundingBox
bounding box
Definition: SMESHGUI_Measurements.h:217
@ Area
area
Definition: SMESHGUI_Measurements.h:219
SMESHGUI_BasicProperties * myBasicProps
Definition: SMESHGUI_Measurements.h:243
Displayer of the mesh edition preview.
Definition: SMESHGUI_MeshEditPreview.h:47
Minimum distance measurement widget.
Definition: SMESHGUI_Measurements.h:48
QLineEdit * myFirstTgt
Definition: SMESHGUI_Measurements.h:80
QLineEdit * myDZ
Definition: SMESHGUI_Measurements.h:84
@ ElementTgt
Definition: SMESHGUI_Measurements.h:52
SMESHGUI_IdValidator * myValidator
Definition: SMESHGUI_Measurements.h:91
SMESH_Actor * myFirstActor
Definition: SMESHGUI_Measurements.h:89
QLineEdit * myDistance
Definition: SMESHGUI_Measurements.h:85
SMESH::SMESH_IDSource_var myFirstSrc
Definition: SMESHGUI_Measurements.h:87
QButtonGroup * myFirst
Definition: SMESHGUI_Measurements.h:78
SMESH::SMESH_IDSource_var mySecondSrc
Definition: SMESHGUI_Measurements.h:88
QLineEdit * mySecondTgt
Definition: SMESHGUI_Measurements.h:81
SMESH_Actor * mySecondActor
Definition: SMESHGUI_Measurements.h:90
QButtonGroup * mySecond
Definition: SMESHGUI_Measurements.h:79
QLineEdit * myDX
Definition: SMESHGUI_Measurements.h:82
@ FirstTgt
Definition: SMESHGUI_Measurements.h:51
QLineEdit * myDY
Definition: SMESHGUI_Measurements.h:83
int myCurrentTgt
Definition: SMESHGUI_Measurements.h:86
SALOME_Actor * myPreview
Definition: SMESHGUI_Measurements.h:93
SUIT_SelectionFilter * myFilter
Definition: SMESHGUI_Measurements.h:92
Definition: SMESH_Actor.h:56
@ Volume
Selection of volumes.
Definition: libSMESH_Swig.h:57
Mode
Definition: SMESHGUI_ClippingDlg.h:74