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