]> SALOME platform Git repositories - modules/gui.git/blob - src/OCCViewer/OCCViewer_ClippingDlg.h
Salome HOME
760115595f0dec99efb7ac1f117ca0b090c288ea
[modules/gui.git] / src / OCCViewer / OCCViewer_ClippingDlg.h
1 //  Copyright (C) 2007-2008  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.
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 #ifndef OCCVIEWER_CLIPPINGDLG_H
23 #define OCCVIEWER_CLIPPINGDLG_H
24
25 #include "OCCViewer.h"
26
27 #include <QDialog>
28
29 #include <AIS_Plane.hxx>
30 #include <V3d_Plane.hxx>
31
32 class QGroupBox;
33 class QLabel;
34 class QPushButton;
35 class QComboBox;
36 class QCheckBox;
37 class QtxDoubleSpinBox;
38 class QtxAction;
39
40 class OCCViewer_ViewWindow;
41
42
43 /*!
44   \class OCCViewer_ClippingDlg
45   \brief Dialog allowing to assign parameters of clipping plane
46 */
47 class OCCViewer_ClippingDlg : public QDialog
48 {
49     Q_OBJECT
50     
51     public:
52     OCCViewer_ClippingDlg(OCCViewer_ViewWindow* , QWidget* parent = 0, const char* name = 0, bool modal = FALSE, Qt::WindowFlags fl = 0);
53     ~OCCViewer_ClippingDlg();
54
55     void SetAction( QtxAction* theAction ) { myAction = theAction; }
56     
57 private :
58
59     virtual void closeEvent( QCloseEvent* e );
60     virtual void showEvent ( QShowEvent * );
61     virtual void hideEvent ( QHideEvent * );
62     void displayPreview();
63     void erasePreview();
64     void ReserveClippingPlane();
65
66     bool isValid();
67      
68     QGroupBox* GroupPoint;
69     QLabel* TextLabelX;
70     QLabel* TextLabelY;
71     QLabel* TextLabelZ;
72     QtxDoubleSpinBox* SpinBox_X;
73     QtxDoubleSpinBox* SpinBox_Y;
74     QtxDoubleSpinBox* SpinBox_Z;
75     QPushButton* resetButton;
76     
77     QGroupBox* GroupDirection;
78     QLabel* TextLabelDx;
79     QLabel* TextLabelDy;
80     QLabel* TextLabelDz;
81     QtxDoubleSpinBox* SpinBox_Dx;
82     QtxDoubleSpinBox* SpinBox_Dy;
83     QtxDoubleSpinBox* SpinBox_Dz;
84     QPushButton* invertButton;
85     
86     QComboBox* DirectionCB;
87
88     QCheckBox* PreviewChB;
89
90     QPushButton*    buttonApply;
91     QPushButton*    buttonClose;
92     
93     OCCViewer_ViewWindow* myView;
94
95     Handle(AIS_Plane) myPreviewPlane;
96     Handle(V3d_Plane) myClippingPlane;
97     
98     bool myBusy;
99
100     QtxAction* myAction;
101     
102 private slots:
103   void ClickOnApply();
104   void ClickOnClose();
105
106   void onReset();
107   void onInvert();
108   void onModeChanged( int mode );
109   void onValueChanged();
110   void onPreview( bool on );
111
112   void onViewShow();
113   void onViewHide();
114 };
115
116 #endif // OCCVIEWER_CLIPPINGDLG_H