Image Utilities (IU)
 All Data Structures Namespaces Functions Variables Typedefs Enumerations Friends Groups Pages
qt5disparitymapgpuwidget.h
1 #pragma once
2 
3 #include <QOpenGLWidget>
4 #include <QOpenGLBuffer>
5 #include <QOpenGLShaderProgram>
6 #include <QOpenGLVertexArrayObject>
7 #include <QOpenGLFunctions_3_3_Core>
8 #include <QMouseEvent>
9 #include <QWheelEvent>
10 #include "../iucore.h"
11 
12 
13 namespace iu {
21 class Qt5DisparitymapGpuWidget : public QOpenGLWidget, protected QOpenGLFunctions_3_3_Core
22 {
23  Q_OBJECT
24 public:
35  explicit Qt5DisparitymapGpuWidget(const iu::Size<2> sz, float translation_z,
36  float f, float cx, float cy, float B=0.f, QWidget* parent = NULL);
37  virtual ~Qt5DisparitymapGpuWidget();
38 
39 public slots:
46 
47 protected:
48 
49  void paintGL();
50  void initializeGL();
51  void resizeGL(int w, int h);
52 
53  void mousePressEvent(QMouseEvent *event);
54  void mouseMoveEvent(QMouseEvent *event);
55  void wheelEvent(QWheelEvent* event);
56  void keyPressEvent(QKeyEvent* event);
57 
58  void init_cuda();
59 
60  //iu::ImageGpu_8u_C1& img_;
61  //GLuint positions_;
62  cudaGraphicsResource_t cuda_positions_;
63  QOpenGLBuffer vbo_;
64  iu::Size<2> image_size_;
65 
66  QOpenGLShaderProgram* shader_program_;
67  QOpenGLVertexArrayObject* vao_;
68 
69  QMatrix4x4 r_mat_;
70  QPoint rot_pos_;
71  QPoint trans_pos_;
72  float translation_z_,translation_x_,translation_y_;
73  float initial_translation_z_;
74  float point_size_;
75  bool data_set_;
76  // Baseline 0 = input is a depth map already
77  float f_,cx_,cy_,B_;
78 };
79 
80 } // namespace iu
81 
82 
void update_vertices(iu::ImageGpu_32f_C1 *depth, iu::ImageGpu_32f_C1 *im)
Qt5DisparitymapGpuWidget(const iu::Size< 2 > sz, float translation_z, float f, float cx, float cy, float B=0.f, QWidget *parent=NULL)
Allows to display disparity or depth maps in 3D with a built-in mouse and keyboard interaction...
Definition: qt5disparitymapgpuwidget.h:21
Template specialization for 2-d unsigned int vectors (size vectors).
Definition: vector.h:525
Device 2D image class (pitched memory).
Definition: image_gpu.h:34