Version: 8.3.0
Main Page
Namespaces
Classes
Files
File List
File Members
SALOME Geometry Developer
Namespaces
Classes
Files
File List
idl
src
AdvancedEngine
AdvancedGUI
ARCHIMEDE
BasicGUI
BlockFix
BlocksGUI
BooleanGUI
BREPPlugin
BuildGUI
CurveCreator
DependencyTree
DisplayGUI
DlgRef
EntityGUI
EntityGUI.cxx
EntityGUI.h
EntityGUI_3DSketcherDlg.cxx
EntityGUI_3DSketcherDlg.h
EntityGUI_FeatureDetectorDlg.cxx
EntityGUI_FeatureDetectorDlg.h
EntityGUI_FieldDlg.cxx
EntityGUI_FieldDlg.h
EntityGUI_IsolineDlg.cxx
EntityGUI_IsolineDlg.h
EntityGUI_PictureImportDlg.cxx
EntityGUI_PictureImportDlg.h
EntityGUI_PolylineDlg.cxx
EntityGUI_PolylineDlg.h
EntityGUI_SketcherDlg.cxx
EntityGUI_SketcherDlg.h
EntityGUI_SubShapeDlg.cxx
EntityGUI_SubShapeDlg.h
EntityGUI_SurfFromFaceDlg.cxx
EntityGUI_SurfFromFaceDlg.h
EntityGUI_Widgets.cxx
EntityGUI_Widgets.h
GenerationGUI
GEOM
GEOM_I
GEOM_I_Superv
GEOM_SWIG_WITHIHM
GEOMAlgo
GEOMBase
GEOMClient
GEOMFiltersSelection
GEOMGUI
GEOMImpl
GEOMToolsGUI
GEOMUtils
GroupGUI
IGESPlugin
Material
MeasureGUI
OBJECT
OCC2VTK
OperationGUI
PrimitiveGUI
RepairGUI
ShapeRecognition
ShHealOper
SKETCHER
STEPPlugin
STLPlugin
TransformationGUI
VTKPlugin
XAO
XAOPlugin
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
EntityGUI_SketcherDlg.h
Go to the documentation of this file.
1
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, 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
// GEOM GEOMGUI : GUI for Geometry component
24
// File : EntityGUI_SketcherDlg.h
25
// Author : Damien COQUERET, Open CASCADE S.A.S.
26
//
27
#ifndef ENTITYGUI_SKETCHERDLG_H
28
#define ENTITYGUI_SKETCHERDLG_H
29
30
#include <
GEOMBase_Helper.h
>
31
32
#include <QGroupBox>
33
#include <QComboBox>
34
#include <QDialog>
35
#include <QLabel>
36
37
#include <gp_Ax3.hxx>
38
39
class
QLineEdit;
40
class
SalomeApp_DoubleSpinBox;
41
class
EntityGUI_1Sel
;
42
class
EntityGUI_2Sel1Check
;
43
class
EntityGUI_1Sel1Spin1Check
;
44
class
EntityGUI_1Spin
;
45
class
EntityGUI_2Spin
;
46
class
EntityGUI_3Spin1Check
;
47
class
EntityGUI_4Spin1Check
;
48
class
EntityGUI_Point
;
49
class
EntityGUI_Dir1
;
50
class
EntityGUI_Dir2
;
51
class
EntityGUI_Skeleton
;
52
class
DlgRef_4Spin
;
53
class
GeometryGUI
;
54
55
#ifndef COORD_MIN
56
# define COORD_MIN -1e+15
57
# define COORD_MAX +1e+15
58
# define MAX_NUMBER 100000
59
# define DBL_DIGITS_DISPLAY 16
60
#endif // COORD_MIN
61
62
//=================================================================================
63
// class : EntityGUI_Dlg
64
// purpose :
65
//=================================================================================
66
class
EntityGUI_SketcherDlg
:
public
QDialog
,
GEOMBase_Helper
67
{
68
Q_OBJECT
69
70
public
:
71
EntityGUI_SketcherDlg
(
GeometryGUI
*,
QWidget
* = 0,
bool
=
false
, Qt::WindowFlags = 0,
72
const
double
= -1 );
73
~EntityGUI_SketcherDlg
();
74
75
bool
eventFilter
(
QObject
*
object
, QEvent* event);
76
77
bool
acceptMouseEvent
()
const
;
// called by EntityGUI::OnMousePress()
78
void
OnPointSelected
( Qt::KeyboardModifiers,
const
gp_Pnt&,
bool
isStart =
true
);
79
80
protected
:
81
void
initSpinBox
( SalomeApp_DoubleSpinBox*,
82
double
,
double
,
double
= 0.1,
83
const
char
* quantity =
"length_precision"
);
84
85
// redefined from GEOMBase_Helper
86
virtual
GEOM::GEOM_IOperations_ptr
createOperation
();
87
virtual
bool
isValid
( QString& );
88
virtual
bool
execute
(
ObjectList
& );
89
virtual
void
addSubshapesToStudy
();
90
91
void
closeEvent
( QCloseEvent* );
92
void
keyPressEvent
( QKeyEvent* );
93
94
private
:
95
void
Init
();
96
void
enterEvent
( QEvent* );
97
void
InitClick
();
98
void
setEnabledUndo
(
bool
);
99
void
setEnabledRedo
(
bool
);
100
101
QString
GetNewCommand
( QString& );
102
103
virtual
void
displayPreview
( GEOM::GEOM_Object_ptr,
104
const
bool
=
false
,
105
const
bool
=
false
,
106
const
bool
=
true
,
107
const
double
= -1,
108
const
int
= -1,
109
const
int
= -1);
110
111
void
displayPntPreview
(
const
double
= 0.0,
112
const
double
= 0.0,
113
bool
/*append*/
=
true
,
114
bool
/*update*/
=
true
115
);
116
117
bool
createShapes
( GEOM::GEOM_Object_ptr,
118
TopoDS_Shape&,
119
TopoDS_Shape& );
120
int
getPnt1ConstructorId
()
const
;
121
int
getPnt2ConstructorId
()
const
;
122
void
OnFirstPoint
();
123
void
OnNextPoint
();
124
125
126
private
:
127
int
myConstructorId
;
128
int
myConstructorDirId
;
129
int
myConstructorPntId
;
130
int
mySketchType
;
131
int
mySketchState
;
132
133
bool
myIsAllAdded
;
134
bool
myIsApply
;
135
bool
autoApply
;
136
137
QLineEdit*
myEditCurrentArgument
;
/* Current LineEdit */
138
139
QStringList
myCommand
;
140
QStringList
myUndoCommand
;
141
142
QStringList
myParameters
;
143
QStringList
myUndoParameters
;
144
145
Standard_Real
myX
,
myY
,
myDX
,
myDY
;
146
Standard_Real
myX1
,
myY1
,
myX2
,
myY2
;
147
Standard_Real
myXc
,
myYc
,
myDXc
,
myDYc
;
148
Standard_Real
myLength
,
myAngle
,
myRadius
;
149
Standard_Real
myLastX1
,
myLastY1
;
150
Standard_Real
myLastX2
,
myLastY2
;
151
152
QString
myXStr
,
myYStr
,
myDXStr
,
myDYStr
;
153
QString
myX1Str
,
myY1Str
,
myX2Str
,
myY2Str
;
154
QString
myXcStr
,
myYcStr
,
myDXcStr
,
myDYcStr
;
155
QString
myLengthStr
,
myAngleStr
,
myRadiusStr
;
156
QString
myLastX1Str
,
myLastY1Str
;
157
QString
myLastX2Str
,
myLastY2Str
;
158
159
EntityGUI_Skeleton
*
MainWidget
;
160
161
EntityGUI_Point
*
GroupPt
;
162
EntityGUI_Point
*
GroupPt2
;
163
EntityGUI_Dir1
*
GroupD1
;
164
EntityGUI_Dir2
*
GroupD2
;
165
166
EntityGUI_1Sel
*
Group1Sel
;
167
EntityGUI_2Sel1Check
*
Group2Sel
;
168
EntityGUI_1Sel1Spin1Check
*
Group1Sel1Spin
;
169
EntityGUI_1Spin
*
Group1Spin
;
170
EntityGUI_2Spin
*
Group2Spin
;
171
EntityGUI_3Spin1Check
*
Group3Spin
;
172
EntityGUI_4Spin1Check
*
Group4Spin
;
173
DlgRef_4Spin
*
GroupRect
;
174
175
QLabel*
myErrLabel
;
176
177
QGroupBox
*
GroupBox1
;
178
QComboBox*
ComboBox1
;
179
QPushButton*
planeButton
;
180
QPushButton*
selButton
;
181
182
QLineEdit*
WPlaneLineEdit
;
183
184
GeometryGUI
*
myGeometryGUI
;
185
186
QString
myHelpFileName
;
187
188
double
myLineWidth
;
189
190
QList<gp_Ax3>
myLCSList
;
191
GEOM::GEOM_Object_var
myGlobalCS
;
192
GEOM::GEOM_Object_var
myWPlane
;
193
QList< GEOM::GEOM_Object_var >
myWPlaneList
;
194
195
int
myCheckFlag
;
196
197
TopAbs_ShapeEnum
myNeedType
;
198
199
private
:
200
enum
SketchState
{
FIRST_POINT
,
NEXT_POINT
};
201
202
enum
SketchType
{
PT_ABS
,
PT_RELATIVE
,
PT_SEL
,
203
PT_ABS_RADIUS
,
PT_REL_RADIUS
,
PT_SEL_RADIUS
,
204
PT_ABS_CENTER
,
PT_REL_CENTER
,
PT_SEL_CENTER
,
205
DIR_ANGLE_LENGTH
,
DIR_ANGLE_X
,
DIR_ANGLE_Y
,
206
DIR_PER_LENGTH
,
DIR_PER_X
,
DIR_PER_Y
,
207
DIR_TAN_LENGTH
,
DIR_TAN_X
,
DIR_TAN_Y
,
208
DIR_DXDY_LENGTH
,
DIR_DXDY_X
,
DIR_DXDY_Y
};
209
210
private
slots:
211
void
ClickOnEnd
();
212
void
ClickOnCancel
();
213
bool
ClickOnApply
();
214
void
ClickOnUndo
();
215
void
ClickOnRedo
();
216
void
ClickOnHelp
();
217
void
LineEditReturnPressed
();
218
void
SelectionIntoArgument
();
219
void
SetEditCurrentArgument
();
220
void
DeactivateActiveDialog
();
221
void
ActivateThisDialog
();
222
void
TypeClicked
(
int
);
223
void
RectClicked
();
224
void
DestClicked
(
int
);
225
void
PointClicked
(
int
);
226
void
Point2Clicked
(
int
);
227
void
Dir1Clicked
(
int
);
228
void
Dir2Clicked
(
int
);
229
void
CheckBoxClicked
(
int
);
230
void
ValueChangedInSpinBox
(
double
);
231
void
SetDoubleSpinBoxStep
(
double
);
232
void
AddLocalCS
( GEOM::GEOM_Object_var );
233
void
FindLocalCS
();
234
gp_Ax3
GetActiveLocalCS
();
235
gp_Ax3
WPlaneToLCS
( GEOM::GEOM_Object_var );
236
void
ActivateLocalCS
();
237
};
238
239
#endif // ENTITYGUI_SKETCHERDLG_H
src
EntityGUI
EntityGUI_SketcherDlg.h
Copyright © 2007-2017 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS