GEMC  1.8
Geant4 Monte-Carlo Framework
camera_control.h
Go to the documentation of this file.
1 #ifndef camera_control_H
2 #define camera_control_H 1
3 
4 // %%%%%%%%%%
5 // Qt headers
6 // %%%%%%%%%%
7 #include <QWidget>
8 #include <QSlider>
9 #include <QComboBox>
10 
11 
12 // %%%%%%%%%%%%%
13 // gemc headers
14 // %%%%%%%%%%%%%
15 #include "usage.h"
16 
17 // %%%%%%%%%%
18 // G4 headers
19 // %%%%%%%%%%
20 #include "G4UImanager.hh"
21 
22 // %%%%%%%%%%%
23 // C++ headers
24 // %%%%%%%%%%%
25 #include <string>
26 #include <map>
27 using namespace std;
28 
29 
30 // %%%%%%%%%%%%%%%%
31 // Class definition
32 // %%%%%%%%%%%%%%%%
33 class camera_control : public QWidget
34 {
35  // metaobject required for non-qt slots
36  Q_OBJECT
37 
38  public:
39  camera_control(QWidget *parent, gemc_opts*);
40  ~camera_control();
41 
43  G4UImanager *UImanager;
44 
45  private:
46  int theta_hall, phi_hall;
47  double zoom_value;
48 
49  QSlider *theta_slider;
50  QSlider *phi_slider;
51  vector<string> ThetaSet;
52  vector<string> PhiSet;
53 
54  QSlider *pan_slider;
55  QSlider *zoom_slider;
56 
57  QComboBox *moveCombo;
58  QComboBox *projCombo;
59 
60  QComboBox *aliasing;
61  QComboBox *sides_per_circle;
62  QComboBox *auxiliary;
63 
64  private slots:
65  void change_theta(int);
66  void change_theta_s(int);
67  void set_theta(int);
68  void change_phi(int);
69  void change_phi_s(int);
70  void set_phi(int);
71  void clickpan_left();
72  void clickpan_right();
73  void clickpan_up();
74  void clickpan_down();
75  void zoom(int);
76  void update_angles();
77  void set_perspective(int);
78  void change_background_color();
79  void switch_antialiasing(int);
80  void switch_auxiliary_edges(int);
81  void switch_sides_per_circle(int);
82  void take_screenshot();
83 
84 };
85 
86 #endif
87 
88 
89 
90 
91 
92 
93 
94 
G4UImanager * UImanager
STL namespace.
gemc_opts * gemcOpt