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_3DSketcherDlg.h
Go to the documentation of this file.
1
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
2
//
3
// This library is free software; you can redistribute it and/or
4
// modify it under the terms of the GNU Lesser General Public
5
// License as published by the Free Software Foundation; either
6
// version 2.1 of the License, or (at your option) any later version.
7
//
8
// This library is distributed in the hope that it will be useful,
9
// but WITHOUT ANY WARRANTY; without even the implied warranty of
10
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
// Lesser General Public License for more details.
12
//
13
// You should have received a copy of the GNU Lesser General Public
14
// License along with this library; if not, write to the Free Software
15
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
//
17
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18
//
19
20
// GEOM GEOMGUI : GUI for Geometry component
21
// File : EntityGUI_3DSketcherDlg.h
22
// Author : DMV, OCN
23
24
#ifndef ENTITYGUI_3DSKETCHERDLG_H
25
#define ENTITYGUI_3DSKETCHERDLG_H
26
27
#include <
GEOMBase_Skeleton.h
>
28
29
class
QButtonGroup;
30
class
QDoubleSpinBox;
31
class
EntityGUI_3Spin
;
32
class
EntityGUI_Type
;
33
class
EntityGUI_Angles
;
34
class
EntityGUI_Controls
;
35
class
SOCC_Prs;
36
class
gp_Dir;
37
38
#include <AIS_ListOfInteractive.hxx>
39
#include <AIS_AngleDimension.hxx>
40
#include <AIS_LengthDimension.hxx>
41
42
#ifndef COORD_MIN
43
# define COORD_MIN -1e+15
44
# define COORD_MAX +1e+15
45
# define MAX_NUMBER 100000
46
# define DBL_DIGITS_DISPLAY 16
47
#endif // COORD_MIN
48
49
// For convenience
50
bool
isSame
(
double
d1,
double
d2);
51
52
//=================================================================================
53
// class : EntityGUI_Dlg
54
// purpose :
55
//=================================================================================
56
class
EntityGUI_3DSketcherDlg
:
public
GEOMBase_Skeleton
57
{
58
Q_OBJECT
59
60
struct
XYZ
61
{
62
XYZ
() {
x
=
y
=
z
= 0.0;
command
=
params
=
""
;
L
=
A
=
T
=0; }
63
double
x
,
y
,
z
;
// for preview only
64
int
L
,
A
,
T
;
// for preview only
65
QString
command
;
66
QString
params
;
67
};
68
69
struct
prsType
70
{
71
prsType
(){
L
=
A
=
T
=0;}
72
int
L
;
73
int
A
;
74
int
T
;
75
};
76
77
typedef
QList<XYZ>
XYZList
;
78
79
public
:
80
EntityGUI_3DSketcherDlg
(
GeometryGUI
*,
QWidget
* = 0,
bool
=
false
, Qt::WindowFlags = 0,
const
double
= 2.);
81
~EntityGUI_3DSketcherDlg
();
82
83
protected
:
84
85
// redefined from GEOMBase_Helper
86
virtual
GEOM::GEOM_IOperations_ptr
createOperation
();
87
virtual
bool
isValid
( QString& );
88
virtual
bool
execute
(
ObjectList
& );
89
90
private
:
91
void
Init
();
92
void
enterEvent
( QEvent* );
93
94
virtual
void
displayPreview
( GEOM::GEOM_Object_ptr,
95
const
bool
=
false
,
96
const
bool
=
false
,
97
const
bool
=
true
,
98
const
double
= -1,
99
const
int
= -1,
100
const
int
= -1);
101
102
Handle
(AIS_LengthDimension) createAISLengthDimension(
double
theLength,
103
gp_Pnt
P1
,
104
gp_Pnt
P2
,
105
gp_Dir
theNormal
);
106
107
Handle
(
AIS_AngleDimension
) createAISAngleDimension(
double
theAngle,
108
gp_Pnt
P0
,
109
gp_Pnt P1,
110
gp_Pnt P2);
111
112
void
displayAngle
(
double
theAngle,
113
gp_Pnt P0,
114
gp_Pnt P1,
115
gp_Pnt P2,
116
bool
store = false);
117
118
void
displayLength
(gp_Pnt P1,
119
gp_Pnt P2,
120
gp_Dir theNormal,
121
bool
store = false);
122
123
void
displayText
(std::
string
theText,
124
gp_Pnt P,
125
bool
store = false);
126
127
void
displayTrihedron
(
int
);
128
129
void
displayDimensions
(
bool
store = false);
130
131
bool
createShapes
( GEOM::GEOM_Object_ptr,
132
TopoDS_Shape&,
133
TopoDS_Shape& );
134
135
XYZ
getLastPoint
() const;
136
XYZ
getPenultimatePoint
() const;
137
XYZ
getCurrentPoint
() const;
138
139
gp_Dir
getPresentationPlane
() const;
140
141
std::
string
doubleToString
(
double
);
142
143
gp_Trsf
toReferenceSystem
(gp_Pnt origin) const;
144
gp_Trsf
toCurrentSystem
(gp_Pnt origin) const;
145
146
void
removeLastIOFromPrs
();
147
void
restoreLastIOToPrs
();
148
149
double
radius
(gp_Pnt) const;
150
double
height
(gp_Pnt) const;
151
double
longitude
(gp_Pnt) const;
152
double
latitude
(gp_Pnt) const;
153
154
private:
155
XYZList
myPointsList
;
156
XYZList
myRedoList
;
157
AIS_ListOfInteractive
myLengthIORedoList
;
158
AIS_ListOfInteractive
myAngleIORedoList
;
159
AIS_ListOfInteractive
myTextIORedoList
;
160
prsType
myPrsType
;
161
162
EntityGUI_3Spin
*
Group3Spin
;
163
EntityGUI_Angles
*
GroupAngles
;
164
EntityGUI_Controls
*
GroupControls
;
165
EntityGUI_Type
*
GroupType
;
166
QButtonGroup*
myTypeGroup1
;
167
QButtonGroup*
myTypeGroup2
;
168
169
int
myMode
;
170
int
myCoordType
;
171
int
myOrientation
;
172
bool
myOK
;
173
bool
isLengthVisible
;
174
bool
isAngleVisible
;
175
176
double
myLineWidth
;
177
GeometryGUI
*
myGeometryGUI
;
178
SOCC_Prs*
myAnglePrs
;
179
SOCC_Prs*
myLengthPrs
;
180
SOCC_Prs*
myTextPrs
;
181
bool
myIsUndoRedo
;
182
XYZ
myWorkPoint
;
183
184
private slots:
185
void
ClickOnOk
();
186
void
ClickOnAddPoint
();
187
bool
ClickOnApply
();
188
// bool isSameAsPrevious();
189
void
UpdateButtonsState
();
190
void
UpdatePointCoordinates
();
191
192
void
ClickOnUndo
();
193
void
ClickOnRedo
();
194
195
void
SelectionIntoArgument
();
196
void
DeactivateActiveDialog
();
197
void
ActivateThisDialog
();
198
void
TypeClicked
(
int
);
199
void
ValueChangedInSpinBox
(
double
);
200
void
ButtonClicked
(
bool
);
201
void
BoxChecked
(
bool
);
202
void
SetDoubleSpinBoxStep
(
double
);
203
};
204
205
#endif // ENTITYGUI_SKETCHERDLG_H
src
EntityGUI
EntityGUI_3DSketcherDlg.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