1 // GEOM GEOMGUI : GUI for Geometry component
3 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
20 // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
24 // File : BasicGUI_PointDlg.h
25 // Author : Lucien PIGNOLONI
29 #ifndef DIALOGBOX_POINT_H
30 #define DIALOGBOX_POINT_H
32 #include "GEOMBase_Skeleton.h"
33 #include "DlgRef_1Sel1Spin.h"
34 #include "DlgRef_3Spin.h"
38 #include "GEOM_ShapeTypeFilter.hxx"
39 #include <TopoDS_Edge.hxx>
41 //=================================================================================
42 // class : BasicGUI_PointDlg
44 //=================================================================================
45 class BasicGUI_PointDlg : public GEOMBase_Skeleton
50 BasicGUI_PointDlg(QWidget* parent = 0, const char* name = 0, BasicGUI* theBasicGUI = 0, SALOME_Selection* Sel = 0, const Handle(AIS_InteractiveContext)& ic = 0, bool modal = FALSE, WFlags fl = 0);
55 void Init(const Handle(AIS_InteractiveContext)& ic);
56 void enterEvent(QEvent* e);
57 void closeEvent(QCloseEvent* e);
63 Handle(GEOM_ShapeTypeFilter) myEdgeFilter; /* filter for selection */
65 gp_Pnt myPoint; /* Is 'mySimulationTopoDs' */
66 bool myOkEdge; /* true when an edge is selected by user */
67 double myParameter; /* Parameter used to create a vertex on edge (point on curve) */
69 /* Interactive and local context management see also : bool UseLocalContext() */
70 Handle(AIS_InteractiveContext) myIC; /* Interactive context from IAPP */
71 Standard_Integer myLocalContextId; /* identify a local context for this method */
72 TopAbs_ShapeEnum myLocalContextMode; /* identify a selection mode into local context */
73 bool myUseLocalContext; /* true when method as opened a local context */
75 DlgRef_1Sel1Spin* GroupDimensions;
76 DlgRef_3Spin* GroupPoints;
82 void ActivateThisDialog();
83 void DeactivateActiveDialog();
84 void LineEditReturnPressed();
85 void SelectionIntoArgument();
86 void SetEditCurrentArgument();
87 void ConstructorsClicked(int constructorId);
88 void ValueChangedInSpinBox(double newValue);
90 bool CalculateVertexOnCurve(const TopoDS_Edge& anEdge,
91 const Standard_Real aParameter,
92 TopoDS_Shape& resultVertex);
95 void PointIntoCoordinates(gp_Pnt P, bool displayPoint);
96 /* return true if method has opened a local context */
97 bool UseLocalContext(){return myUseLocalContext;};
101 #endif // DIALOGBOX_POINT_H