ImageD  v2_7_5 (24.06.22)
ImageD is an image processing software designed for rapid prototyping and implementing algorithms and solutions for science, research and teaching.
d_popup_rangeselector.h
Go to the documentation of this file.
1 /************************************
2  * added: 17.02.2021 *
3  * author: David Eilenstein *
4  * contact: D.Eilenstein@gsi.de *
5  * project: ImageD *
6  * facility: GSI Darmstadt, Ger *
7  ************************************/
8 
9 #ifndef D_POPUP_RANGESELECTOR_H
10 #define D_POPUP_RANGESELECTOR_H
11 
12 
13 //own
14 #include <d_enum.h>
15 #include <d_visdat_dim.h>
16 #include <d_visdat_range.h>
17 
18 //general
19 #include <vector>
20 
21 //Qt
22 #include <QDialog>
23 #include <QString>
24 #include <QDebug>
25 #include <QLabel>
26 #include <QSpinBox>
27 #include <QSlider>
28 #include <QGroupBox>
29 #include <QPushButton>
30 
31 //namespaces
32 using namespace std;
33 
34 namespace Ui {
36 }
37 
41 class D_PopUp_RangeSelector : public QDialog
42 {
43  Q_OBJECT
44 
45 public:
46  explicit D_PopUp_RangeSelector(
47  Vec<int, c_DIM_NUMBER_OF> *selected_start,
48  Vec<int, c_DIM_NUMBER_OF> *selected_end,
49  Vec<int, c_DIM_NUMBER_OF> limit_min,
50  Vec<int, c_DIM_NUMBER_OF> limit_max,
51  QString title,
52  bool select_x = false, bool select_y = false, bool select_z = false, bool select_t = false, bool select_s = false, bool select_p = false,
53  QWidget *parent = nullptr);
55 
56 private slots:
57  void on_spinBox_X_from_valueChanged(int arg1);
58  void on_spinBox_X_to_valueChanged(int arg1);
59  void on_spinBox_Y_from_valueChanged(int arg1);
60  void on_spinBox_Y_to_valueChanged(int arg1);
61  void on_spinBox_Z_from_valueChanged(int arg1);
62  void on_spinBox_Z_to_valueChanged(int arg1);
63  void on_spinBox_T_from_valueChanged(int arg1);
64  void on_spinBox_T_to_valueChanged(int arg1);
65  void on_spinBox_S_from_valueChanged(int arg1);
66  void on_spinBox_S_to_valueChanged(int arg1);
67  void on_spinBox_P_from_valueChanged(int arg1);
68  void on_spinBox_P_to_valueChanged(int arg1);
69 
70  void on_pushButton_Done_clicked();
71 
72 private:
73  Ui::D_PopUp_RangeSelector *ui;
74 
75  Vec<int, c_DIM_NUMBER_OF>* v_from_ext;
76  Vec<int, c_DIM_NUMBER_OF>* v_to_ext;
77 
78  vector<QSpinBox*> v_SpinFrom;
79  vector<QSpinBox*> v_SpinTo;
80  vector<QLabel*> v_LabelExtend;
81  vector<QLabel*> v_LabelImpact;
82 
83  int extent(size_t d);
84  double impact(size_t d);
85  int volume();
86  int dimensionality();
87 
88  void extend2ui(int d);
89  void impact2ui(int d);
90  void volume2ui();
91  void dimensionality2ui();
92 
93  void change_from(int d, int val);
94  void change_to(int d, int val);
95 };
96 
97 #endif // D_POPUP_RANGESELECTOR_H
D_PopUp_RangeSelector::D_PopUp_RangeSelector
D_PopUp_RangeSelector(Vec< int, c_DIM_NUMBER_OF > *selected_start, Vec< int, c_DIM_NUMBER_OF > *selected_end, Vec< int, c_DIM_NUMBER_OF > limit_min, Vec< int, c_DIM_NUMBER_OF > limit_max, QString title, bool select_x=false, bool select_y=false, bool select_z=false, bool select_t=false, bool select_s=false, bool select_p=false, QWidget *parent=nullptr)
Definition: d_popup_rangeselector.cpp:12
c_DIM_X
@ c_DIM_X
Definition: d_enum.h:235
c_DIM_Z
@ c_DIM_Z
Definition: d_enum.h:237
c_DIM_T
@ c_DIM_T
Definition: d_enum.h:238
c_DIM_Y
@ c_DIM_Y
Definition: d_enum.h:236
d_visdat_dim.h
c_DIM_S
@ c_DIM_S
Definition: d_enum.h:239
D_PopUp_RangeSelector::~D_PopUp_RangeSelector
~D_PopUp_RangeSelector()
Definition: d_popup_rangeselector.cpp:112
d_visdat_range.h
D_PopUp_RangeSelector
The D_PopUp_RangeSelector class popup to slect an abstract subvolume in a volume.
Definition: d_popup_rangeselector.h:42
Ui
Definition: d_analysiswindow.h:58
d_popup_rangeselector.h
c_DIM_P
@ c_DIM_P
Definition: d_enum.h:240
c_DIM_NUMBER_OF
@ c_DIM_NUMBER_OF
Definition: d_enum.h:241
d_enum.h
Vec
cv::Vec< T, N > Vec
Definition: d_opencv_typedefs.h:44