Kinetic Visualization
 All Classes Functions Variables Pages
OpenGLWidget.h
1 #pragma once
2 
3 #include <GL/glew.h>
4 #include <QGLWidget>
5 //#include <QtOpenGL>
6 #include <QColor>
7 #include <QGLContext>
8 #include <QGLFormat>
9 #include <QMouseEvent>
10 #include <QTime>
11 
12 #include "GLM/glm.hpp"
13 #include "SceneManager.h"
14 #include "Slicing.h"
15 #include "RayCasting.h"
16 #include "TransferPoints.h"
17 
18 class OpenGLWidget : public QGLWidget
19 {
20  Q_OBJECT
21 
22 public:
24  OpenGLWidget(QWidget* parent = 0);
26  ~OpenGLWidget();
27 
28 public slots:
33  void setPerspective(int tabIndex);
34 
36  void initSliceTexture();
37 
42  void setXSlicing(int x);
43 
48  void setYSlicing(int y);
49 
54  void setZSlicing(int z);
55 
60  void setXClipping(int x);
61 
66  void setYClipping(int y);
67 
72  void setZClipping(int z);
73 
79  void generateTransferTexture(float* rgbaValues, int textureSize, int type);
80 
82  void resetTransferTexture();
83 
88  void setLight(bool active);
89 
94  void setPhong(bool active);
95 
100  void setMip(bool active);
101 
106  void setAverage(bool active);
107 
112  void setCompositing(bool active);
113 
118  void setAdaptive(bool active);
119 
123  void setStepSize(double step);
124 
128  void changeIsoSurface(float val);
129 
130 signals:
136  void valuesUpdated(glm::vec2* t, int s);
137 
138 protected:
139  void setValuesUpdated(glm::vec2* values, int size);
140 
142  void initializeGL();
148  void resizeGL(int width,int height);
150  void paintGL();
151 
153  void mousePressEvent(QMouseEvent *event);
155  void mouseMoveEvent(QMouseEvent *event);
157  void mouseReleaseEvent(QMouseEvent *event);
159  void wheelEvent(QWheelEvent *event);
160 
161 private:
163  int screenWidth;
165  int screenHeight;
167  bool perspective;
169  Slicing* slice;
171  RayCasting* rayCasting;
173  GLuint transferFunctionTextureHandle;
175  GLuint transferFunctionTextureHandle2D;
177  GLuint transferFunctionTextureParticleHandle;
178 
180  bool moveVolume;
182  bool zoomVolume;
184  glm::vec2 lastMovePos;
186  int lastZoomYPos;
187 
189  void setCameraProjection();
190 
192  void checkGLError();
193 
195  QTime timer;
196  bool isStarted;
197 
198  int m_mode;
199 
200  CudaArray<float4>* m_volumeBlock;
201  CudaTexture<float4,3>* m_volumen;
202  CudaTexture<float4,3>* m_pcd;
203  CudaTexture<float4,2>* m_transferfunction;
204 
205  void OpenGLWidget::kMeans(glm::vec2** x, glm::vec2* m, float* mumCompForClass, float** g, int N, int K, int Iterations);
206 };