iRoCS Toolbox  1.1.0
lviewermainwindow.hh
Go to the documentation of this file.
1 #ifndef LVIEWERMAINWINDOW_H
2 #define LVIEWERMAINWINDOW_H
3 
4 #ifdef HAVE_CONFIG_H
5 #include <config.hh>
6 #endif
7 
8 #include <QtGui/QMainWindow>
9 #include <QtGui/QScrollArea>
10 
11 #include "lviewer.hh"
12 
13 #include "lblitzDataExplorer.hh"
14 
15 class QAction;
16 class QListWidget;
17 class QMenu;
18 class QTextEdit;
19 
20 class lViewerMainWindow : public QMainWindow
21 {
22 Q_OBJECT
23 
24 public:
27 
28 template<typename DataT, int Dim>
29  void
30  setData(blitz::Array<DataT, Dim>& data)
31  {
32  if (explorer != NULL)
33  {
34  delete explorer;
35  }
36  explorer = new BlitzDataExplorer(data);
37  refreshImage();
38  }
39 
40 template<typename DataT, int Dim>
41  void
42  setRefData(blitz::Array<DataT, Dim>& data)
43  {
44  if (explorer != NULL)
45  {
46  if (explorerRef != NULL)
47  {
48  delete explorerRef;
49  }
50  explorerRef = new BlitzDataExplorer(data);
51  blitz::TinyVector< double, 3 > pos;
52  pos = explorer->getCurrentPos();
53  explorerRef->setDataPos(pos(2), pos(1), pos(0));
54  lvF->show((explorerRef)->getXYView());
55  int x = explorerRef->getCurrentX();
56  int y = explorerRef->getCurrentY();
57  lvF->scrollArea->ensureVisible(x, y, 100, 100);
58  }
59  }
60 
61 template<typename DataT, int Dim>
62  void
63  updateData(blitz::Array<DataT, Dim>& data)
64  {
65  explorer->updateData(data);
66  refreshImage();
67  }
68 
69 template<typename DataT, int Dim>
70  void
71  updateData(blitz::Array<bool, Dim>& mask, blitz::TinyVector<DataT, 3>& color, blitz::RectDomain<Dim> domain)
72  {
73  explorer->updateData(mask, color, domain);
74  refreshImage();
75  }
76 
77 template<typename DataT, int Dim>
78  void
79  updateData(blitz::Array<DataT, Dim>& image, blitz::RectDomain<Dim> domain)
80  {
81  explorer->updateData(image, domain);
82  refreshImage();
83  }
84 
85 void
86 refreshImage();
87 
88 void
89 alignRefImage(int dim);
90 
91 void
92 setST(int s)
93 {
94  if (explorer != NULL)
95  explorer->setST(s);
96  if (explorerRef != NULL)
97  explorerRef->setST(s);
98  // LOG << s << std::endl;
99 }
100 
101 public slots:
102 void
103 receiveWheelXY(int delta);
104 void
105 receiveWheelZY(int delta);
106 void
107 receiveWheelXZ(int delta);
108 void
109 zoom(int delta);
110 void
111 moveXY(int x, int y, int flag);
112 void
113 moveZY(int z, int y, int flag);
114 void
115 moveXZ(int x, int z, int flag);
116 
117 void
118 pointXY(int x, int y, int flag);
119 void
120 pointZY(int z, int y, int flag);
121 void
122 pointXZ(int x, int z, int flag);
123 
124 void
125 status(int delta);
126 
127 void
128 open();
129 signals:
130 void
131 modify(int x, int y, int z, int flag);
132 void
133 query(int x, int y, int z, int flag);
134 void
135 close();
136 void
137 wheel(int);
138 
139 protected:
140 void
141 showEvent(QShowEvent * event);
142 
143 // void keyPressEvent(QKeyEvent *event);
144 // void mouseMoveEvent(QTimerEvent *event);
145 void
146 wheelEvent(QWheelEvent *event);
147 // void mouseReleaseEvent ( QMouseEvent * event ) ;
148 
149 private:
150 
151 void
152 createActions();
153 void
154 createMenus();
155 void
156 createStatusBar();
157 void
158 createDockWindows();
159 void
160 closeEvent(QCloseEvent * event);
161 public:
164 public:
169 int oldDim;
170 private:
171 QMenu *fileMenu;
172 QMenu *editMenu;
173 QMenu *viewMenu;
174 QMenu *helpMenu;
175 
176 QAction *newAct;
177 QAction *saveAct;
178 QAction *printAct;
179 QAction *undoAct;
180 QAction *quitAct;
181 
182 QAction *openAct;
183 
184 int iStatus;
185 };
186 
187 #endif // LVIEWERMAINWINDOW_H
void alignRefImage(int dim)
BlitzDataExplorer * explorer
void updateData(blitz::Array< DataT, Dim > &data)
void setDataPos(int x, int y, int z)
void receiveWheelZY(int delta)
void setData(blitz::Array< DataT, Dim > &data)
void status(int delta)
void zoom(int delta)
void pointXZ(int x, int z, int flag)
void setRefData(blitz::Array< DataT, Dim > &data)
void wheelEvent(QWheelEvent *event)
void show(QImage image)
void updateData(blitz::Array< bool, 3 > &mask, blitz::TinyVector< DataT, 3 > &color, blitz::RectDomain< 3 > &domain)
void modify(int x, int y, int z, int flag)
BlitzDataExplorer * explorerRef
void updateData(blitz::Array< DataT, Dim > &image, blitz::RectDomain< Dim > domain)
void query(int x, int y, int z, int flag)
void pointZY(int z, int y, int flag)
blitz::TinyVector< double, 3 > getCurrentPos()
void showEvent(QShowEvent *event)
QScrollArea * scrollArea
Definition: lviewer.hh:43
void pointXY(int x, int y, int flag)
void receiveWheelXY(int delta)
void moveXY(int x, int y, int flag)
void receiveWheelXZ(int delta)
void moveZY(int z, int y, int flag)
void moveXZ(int x, int z, int flag)
void updateData(blitz::Array< bool, Dim > &mask, blitz::TinyVector< DataT, 3 > &color, blitz::RectDomain< Dim > domain)