UltraScan III
us_plot3d.h
Go to the documentation of this file.
1 #ifndef US_PLOT3D_H
3 #define US_PLOT3D_H
4 
5 #include <QtGui>
6 
7 #include "us_extern.h"
8 #include "us_model.h"
9 #include "us_dataIO.h"
10 #include "us_plot.h"
11 #include "us_widgets_dialog.h"
12 #include "us_help.h"
13 #include "qwt3d_surfaceplot.h"
14 #include "qwt3d_function.h"
15 #include "qwt3d_plot.h"
16 
17 #ifndef DbgLv
18 #define DbgLv(a) if(dbg_level>=a)qDebug()
19 #endif
20 
22 
23 class US_GUI_EXTERN US_Plot3D : public QMainWindow
24 {
25  Q_OBJECT
26 
27  public:
31  US_Plot3D( QWidget*, US_Model* );
32 
37  void setTypes ( int, int, int );
45  void setParameters( double, double, double, double,
46  double = 1.0, double = 1.0 );
49  void calculateData( QVector< QVector< double > >& );
51  void replot ( void );
54  QGLWidget* dataWidgetP( void );
59  bool save_plot( const QString, const QString );
60 
61 
62  private:
63  QWidget* centralWidget;
64  QGridLayout* mainLayout;
65  QVBoxLayout* rightLayout;
66  QHBoxLayout* bottomLayout;
67  QGridLayout* rsliderLayout;
68  QGridLayout* bsliderLayout;
69 
70  QSlider* poffsSlider;
71  QSlider* resolSlider;
72  QSlider* normqSlider;
73  QSlider* normlSlider;
74 
75  QAction* openAct;
76  QAction* openffAct;
77  QAction* saveAct;
78  QAction* movieAct;
79  QAction* exitAct;
80  QAction* frameAct;
81  QAction* boxAct;
82  QAction* noneAct;
83  QAction* gridfrAct;
84  QAction* gridbAct;
85  QAction* gridrAct;
86  QAction* gridlAct;
87  QAction* gridcAct;
88  QAction* gridfAct;
89  QAction* scattdAct;
90  QAction* wirefrAct;
91  QAction* hiddlnAct;
92  QAction* polygnAct;
93  QAction* fdmeshAct;
94  QAction* nodataAct;
95  QAction* fldataAct;
96  QAction* flisolAct;
97  QAction* flemptAct;
98  QAction* normsAct;
99  QAction* coaxesAct;
100  QAction* cobackAct;
101  QAction* comeshAct;
102  QAction* conumbAct;
103  QAction* colablAct;
104  QAction* cocaptAct;
105  QAction* codataAct;
106  QAction* corsetAct;
107  QAction* fnnumbAct;
108  QAction* fnaxesAct;
109  QAction* fncaptAct;
110  QAction* fnrsetAct;
111  QAction* iconAct;
112  QAction* qwtpltAct;
113 
114  QActionGroup* frameGroup;
115  QActionGroup* gridGroup;
116  QActionGroup* dataGroup;
117  QActionGroup* floorGroup;
118 
119  QMenu* fileMenu;
120  QMenu* colorMenu;
121  QMenu* fontMenu;
122 
123  QToolBar* fileToolBar;
124 
125  QComboBox* cb_ifmt;
126 
127  QPushButton* pb_std;
128  QPushButton* pb_light;
129 
130  QCheckBox* ck_light;
131  QCheckBox* ck_ortho;
132  QCheckBox* ck_legend;
133  QCheckBox* ck_autosc;
134  QCheckBox* ck_mouse;
135  QCheckBox* ck_shade;
136 
137  QFont titleFont;
138 
139  bool have_ed;
140  bool skip_plot;
141 
142  int nrows;
143  int ncols;
144  int typex;
145  int typey;
146  int typez;
147  int powrx;
148  int powry;
151 
152  double xmin;
153  double xmax;
154  double ymin;
155  double ymax;
156  double zmin;
157  double zmax;
158  double zfloor;
159  double zscale;
160  double xscale;
161  double yscale;
162  double gridres;
163  double x_norm;
164  double y_norm;
165  double z_norm;
166  double x_scale;
167  double y_scale;
168  double z_scale;
169  double alpha;
170  double beta;
171 
172  QString xatitle;
173  QString yatitle;
174  QString zatitle;
175 
176  QFrame* frame;
177 
178  QTimer* timer;
179 
180  QVector< QVector< double > > zdata;
181 
182  Qwt3D::SurfacePlot* dataWidget;
183 
184  protected:
186 
187  private slots:
188 
189  void std_button( void );
190  void light_button( void );
191  void ifmt_chosen( int );
192  void light_check( int );
193  void ortho_check( int );
194  void legnd_check( int );
195  void autsc_check( int );
196  void mouse_check( int );
197  void shade_check( int );
198  void poffs_slide( int );
199  void resol_slide( int );
200  void norml_slide( int );
201  void normq_slide( int );
202  void movie_toggle( bool );
203  void frame_axes_on( bool );
204  void box_axes_on( bool );
205  void no_axes_on( bool );
206  void grid_front_on( bool );
207  void grid_back_on( bool );
208  void grid_left_on( bool );
209  void grid_right_on( bool );
210  void grid_ceil_on( bool );
211  void grid_floor_on( bool );
212  void set_grid_onoff( Qwt3D::SIDE, bool );
213  void data_points_on( bool );
214  void data_wirefr_on( bool );
215  void data_hidden_on( bool );
216  void data_polygn_on( bool );
217  void data_fimesh_on( bool );
218  void data_none_on( bool );
219  void floor_data_on( bool );
220  void floor_isol_on( bool );
221  void floor_empty_on( bool );
222  void normals_on( bool );
223  void rotate( void );
224  void open_file( void );
225  void close_all( void );
226  void pick_axes_co( void );
227  void pick_back_co( void );
228  void pick_mesh_co( void );
229  void pick_numb_co( void );
230  void pick_labl_co( void );
231  void pick_capt_co( void );
232  void pick_data_co( void );
233  void reset_colors( void );
234  void pick_numb_fn( void );
235  void pick_axes_fn( void );
236  void pick_capt_fn( void );
237  void reset_fonts( void );
238  void dump_contents( void );
239 
240  QString xyAxisTitle( int, double );
241  QString zAxisTitle( int );
242  void setStandardView( void );
243  void createActions( void );
244  void createMenus( void );
245  void createToolBar( void );
246  double comp_value( US_Model::SimulationComponent*, int, double );
247 
248 };
249 #endif
250